WEBVTT

1
00:00:02.780 --> 00:00:03.270
Amazing.

2
00:00:03.270 --> 00:00:05.305
<00:00:03.270>Thank <00:00:03.620>you <00:00:03.969>very <00:00:04.320>much. <00:00:04.670>First

3
00:00:05.305 --> 00:00:07.265
<00:00:05.305>and <00:00:05.479>foremost, <00:00:05.654>thank <00:00:05.830>you <00:00:06.005>for <00:00:06.180>coming <00:00:06.354>to <00:00:06.529>this <00:00:06.705>session.

4
00:00:07.725 --> 00:00:10.945
<00:00:07.725>As <00:00:07.880>I <00:00:08.036>anticipated <00:00:08.191>we'll <00:00:08.347>be <00:00:08.502>talking <00:00:08.658>about <00:00:08.813>reasoning <00:00:08.969>about <00:00:09.125>RAs

5
00:00:10.945 --> 00:00:13.305
<00:00:10.945>code <00:00:11.145>and <00:00:11.345>RAs <00:00:11.545>doc's <00:00:11.745>chasm <00:00:11.945>format <00:00:12.145>in <00:00:12.345>particular.

6
00:00:13.975 --> 00:00:17.385
<00:00:13.975>Well, <00:00:14.208>uh, <00:00:14.441>I <00:00:14.674>was <00:00:14.908>already <00:00:15.141>partially <00:00:15.375>introduced

7
00:00:17.765 --> 00:00:21.625
<00:00:17.765>but <00:00:17.920>just <00:00:18.076>to <00:00:18.231>ref, <00:00:18.387>you <00:00:18.542>know, <00:00:18.698>restate <00:00:18.853>the <00:00:19.009>key <00:00:19.165>points.

8
00:00:22.055 --> 00:00:23.305
<00:00:22.055>Name <00:00:22.430>is <00:00:22.805>Luca <00:00:23.180>Ri.

9
00:00:23.325 --> 00:00:24.345
<00:00:23.325>You <00:00:23.508>can <00:00:23.692>find <00:00:23.875>me <00:00:24.059>on <00:00:24.243>Twitter,

10
00:00:24.555 --> 00:00:26.185
<00:00:24.555>especially <00:00:24.835>if <00:00:25.115>you <00:00:25.395>wanna <00:00:25.675>ask <00:00:25.955>questions

11
00:00:26.185 --> 00:00:28.145
<00:00:26.185>that <00:00:26.384>will <00:00:26.584>not <00:00:26.785>be <00:00:26.985>answered <00:00:27.185>during <00:00:27.384>this <00:00:27.584>presentation.

12
00:00:28.805 --> 00:00:31.145
<00:00:28.805>My <00:00:28.980>website <00:00:29.155>contains <00:00:29.330>most <00:00:29.505>of <00:00:29.680>the <00:00:29.855>things <00:00:30.030>I <00:00:30.205>do

13
00:00:31.565 --> 00:00:33.865
<00:00:31.565>and <00:00:31.720>as <00:00:31.876>a <00:00:32.031>day <00:00:32.187>job, <00:00:32.342>I'm <00:00:32.498>a <00:00:32.653>principal <00:00:32.809>engineering <00:00:32.965>consultant.

14
00:00:33.865 --> 00:00:37.665
<00:00:33.865>That <00:00:34.020>may <00:00:34.176>matter, <00:00:34.331>which <00:00:34.487>means <00:00:34.642>I <00:00:34.798>train <00:00:34.953>people <00:00:35.109>using <00:00:35.265>rest,

15
00:00:37.815 --> 00:00:39.385
<00:00:37.815>both <00:00:38.165>basics <00:00:38.515>and <00:00:38.864>advanced <00:00:39.214>topics.

16
00:00:39.945 --> 00:00:42.585
<00:00:39.945>I <00:00:40.178>do <00:00:40.411>staff <00:00:40.645>augmentation <00:00:40.878>and <00:00:41.111>consulting <00:00:41.345>engagements.

17
00:00:42.965 --> 00:00:45.025
<00:00:42.965>If <00:00:43.140>any <00:00:43.315>of <00:00:43.490>these <00:00:43.665>sounds <00:00:43.840>interesting, <00:00:44.015>you <00:00:44.190>know <00:00:44.365>where

18
00:00:45.025 --> 00:00:47.865
<00:00:45.025>to <00:00:45.199>find <00:00:45.375>me <00:00:45.550>In <00:00:45.725>Thera <00:00:45.900>community, <00:00:46.074>I've <00:00:46.250>been <00:00:46.425>around

19
00:00:47.925 --> 00:00:49.425
<00:00:47.925>for <00:00:48.195>six <00:00:48.464>years <00:00:48.735>at <00:00:49.004>this <00:00:49.275>point.

20
00:00:49.845 --> 00:00:53.145
<00:00:49.845>Uh, <00:00:50.125>I've <00:00:50.405>done <00:00:50.685>tools, <00:00:50.964>trainings, <00:00:51.245>libraries.

21
00:00:53.365 --> 00:00:54.705
<00:00:53.365>If <00:00:53.566>you <00:00:53.767>search <00:00:53.968>for <00:00:54.169>me <00:00:54.370>on <00:00:54.571>criteria,

22
00:00:54.705 --> 00:00:55.865
<00:00:54.705>you'll <00:00:54.913>find <00:00:55.122>a <00:00:55.331>variety <00:00:55.540>of <00:00:55.749>things.

23
00:00:56.485 --> 00:00:58.545
<00:00:56.485>But <00:00:56.640>I'm <00:00:56.796>best <00:00:56.951>known <00:00:57.107>for <00:00:57.262>being <00:00:57.418>the <00:00:57.573>Order <00:00:57.729>of <00:00:57.885>Zero

24
00:00:58.545 --> 00:01:01.185
<00:00:58.545>to <00:00:58.720>production <00:00:58.895>rest, <00:00:59.070>which <00:00:59.245>is <00:00:59.420>a <00:00:59.595>book <00:00:59.770>on <00:00:59.945>how

25
00:01:01.185 --> 00:01:02.545
<00:01:01.185>to <00:01:01.429>use <00:01:01.674>fast <00:01:01.919>for <00:01:02.164>backend <00:01:02.409>development.

26
00:01:02.775 --> 00:01:06.625
<00:01:02.775>It's <00:01:02.949>a <00:01:03.125>HandsOn <00:01:03.300>book <00:01:03.475>geared <00:01:03.650>towards <00:01:03.824>giving <00:01:04.000>you <00:01:04.175>experience

27
00:01:06.625 --> 00:01:09.385
<00:01:06.625>which <00:01:06.825>is <00:01:07.025>as <00:01:07.225>close <00:01:07.425>as <00:01:07.625>possible <00:01:07.825>to <00:01:08.025>um,

28
00:01:09.735 --> 00:01:11.425
<00:01:09.735>what <00:01:09.910>you <00:01:10.085>will <00:01:10.260>get <00:01:10.435>working <00:01:10.610>on <00:01:10.785>a <00:01:10.960>real <00:01:11.135>project.

29
00:01:12.605 --> 00:01:15.105
<00:01:12.605>Now <00:01:12.760>the <00:01:12.916>agenda <00:01:13.071>for <00:01:13.227>today <00:01:13.382>is <00:01:13.538>split <00:01:13.693>into <00:01:13.849>four <00:01:14.005>sections.

30
00:01:15.155 --> 00:01:17.905
<00:01:15.155>We're <00:01:15.355>first <00:01:15.555>gonna <00:01:15.755>start <00:01:15.955>by <00:01:16.155>framing <00:01:16.355>the <00:01:16.555>problem.

31
00:01:18.435 --> 00:01:19.865
<00:01:18.435>We'll <00:01:18.864>then <00:01:19.292>explore <00:01:19.722>why

32
00:01:19.925 --> 00:01:22.465
<00:01:19.925>or <00:01:20.125>why <00:01:20.325>not <00:01:20.524>macros <00:01:20.725>are <00:01:20.925>not <00:01:21.125>the <00:01:21.325>solution

33
00:01:22.765 --> 00:01:26.145
<00:01:22.765>and <00:01:22.905>then <00:01:23.045>we'll <00:01:23.185>go <00:01:23.325>into <00:01:23.465>rest <00:01:23.605>format, <00:01:23.745>both <00:01:23.885>the <00:01:24.025>benefits, <00:01:24.165>so

34
00:01:26.145 --> 00:01:29.305
<00:01:26.145>what <00:01:26.272>it <00:01:26.399>can <00:01:26.526>do <00:01:26.654>and <00:01:26.781>the <00:01:26.908>limitations, <00:01:27.035>what <00:01:27.163>it <00:01:27.290>can't <00:01:27.417>do <00:01:27.545>yet

35
00:01:29.605 --> 00:01:32.705
<00:01:29.605>or <00:01:29.760>ever <00:01:29.916>depending <00:01:30.071>on <00:01:30.227>the <00:01:30.382>specific <00:01:30.538>thing <00:01:30.693>we're <00:01:30.849>gonna <00:01:31.005>discuss.

36
00:01:33.685 --> 00:01:36.225
<00:01:33.685>Now <00:01:33.885>living <00:01:34.085>with <00:01:34.285>rest, <00:01:34.485>uh, <00:01:34.685>very <00:01:34.885>familiar <00:01:35.085>scenario,

37
00:01:36.405 --> 00:01:37.825
<00:01:36.405>you <00:01:36.660>are <00:01:36.916>working <00:01:37.171>with <00:01:37.427>your <00:01:37.683>employer

38
00:01:37.925 --> 00:01:39.345
<00:01:37.925>and <00:01:38.107>you <00:01:38.290>need <00:01:38.472>to <00:01:38.655>build <00:01:38.837>a <00:01:39.020>new <00:01:39.203>system.

39
00:01:39.965 --> 00:01:41.825
<00:01:39.965>You <00:01:40.140>are <00:01:40.315>the <00:01:40.490>person <00:01:40.665>on <00:01:40.840>the <00:01:41.015>team <00:01:41.190>which <00:01:41.365>has

40
00:01:41.825 --> 00:01:42.985
<00:01:41.825>been <00:01:42.173>observed <00:01:42.521>with <00:01:42.869>rest.

41
00:01:43.405 --> 00:01:47.305
<00:01:43.405>And <00:01:43.545>so <00:01:43.685>you <00:01:43.825>just <00:01:43.965>tire <00:01:44.105>them <00:01:44.245>down <00:01:44.385>discussion <00:01:44.525>of <00:01:44.665>the <00:01:44.805>discussion

42
00:01:47.305 --> 00:01:49.145
<00:01:47.305>until <00:01:47.445>they <00:01:47.585>agree <00:01:47.725>with <00:01:47.865>you <00:01:48.005>that <00:01:48.145>rest <00:01:48.285>is <00:01:48.425>a <00:01:48.565>good <00:01:48.705>fit

43
00:01:49.485 --> 00:01:50.985
<00:01:49.485>or <00:01:49.755>more <00:01:50.025>likely <00:01:50.295>and <00:01:50.565>more <00:01:50.835>productively.

44
00:01:51.175 --> 00:01:53.105
<00:01:51.175>Rest <00:01:51.302>is <00:01:51.429>a <00:01:51.556>good <00:01:51.684>fit <00:01:51.811>for <00:01:51.938>the <00:01:52.065>type <00:01:52.193>project <00:01:52.320>you <00:01:52.447>wanna <00:01:52.575>do.

45
00:01:53.845 --> 00:01:57.665
<00:01:53.845>So <00:01:53.961>you <00:01:54.078>go <00:01:54.195>in, <00:01:54.311>you <00:01:54.428>start <00:01:54.545>building <00:01:54.661>like <00:01:54.778>a <00:01:54.895>few <00:01:55.011>months <00:01:55.128>pass <00:01:55.245>by

46
00:01:57.845 --> 00:01:59.705
<00:01:57.845>and <00:01:58.078>you're <00:01:58.311>now <00:01:58.545>responsible <00:01:58.778>at <00:01:59.011>the <00:01:59.245>end

47
00:01:59.725 --> 00:02:01.705
<00:01:59.725>for <00:01:59.958>a <00:02:00.191>new <00:02:00.425>product <00:02:00.658>which <00:02:00.891>is <00:02:01.125>tens

48
00:02:01.705 --> 00:02:02.945
<00:02:01.705>of <00:02:01.928>thousands <00:02:02.151>of <00:02:02.374>lines <00:02:02.597>of <00:02:02.821>rest.

49
00:02:03.085 --> 00:02:05.985
<00:02:03.085>If <00:02:03.240>it's <00:02:03.396>fairly <00:02:03.551>complex <00:02:03.707>now <00:02:03.862>you <00:02:04.018>could <00:02:04.173>go <00:02:04.329>in <00:02:04.485>Reddit

50
00:02:06.045 --> 00:02:07.265
<00:02:06.045>and <00:02:06.264>people <00:02:06.484>will <00:02:06.703>clap <00:02:06.923>at <00:02:07.143>you

51
00:02:07.265 --> 00:02:09.865
<00:02:07.265>because <00:02:07.420>you've <00:02:07.576>got <00:02:07.731>a <00:02:07.887>very <00:02:08.042>nice <00:02:08.198>fast <00:02:08.353>project <00:02:08.509>in <00:02:08.664>production.

52
00:02:10.685 --> 00:02:12.905
<00:02:10.685>But <00:02:10.824>if <00:02:10.965>we <00:02:11.105>look <00:02:11.245>at <00:02:11.385>it <00:02:11.525>from <00:02:11.665>the <00:02:11.805>point <00:02:11.945>of <00:02:12.085>view

53
00:02:12.985 --> 00:02:16.465
<00:02:12.985>of <00:02:13.185>responsibility <00:02:13.385>and <00:02:13.585>burden, <00:02:13.785>one <00:02:13.985>might <00:02:14.185>say <00:02:14.385>condolences

54
00:02:16.465 --> 00:02:18.985
<00:02:16.465>because <00:02:16.581>now <00:02:16.698>you <00:02:16.815>have <00:02:16.931>a <00:02:17.048>lot <00:02:17.165>of <00:02:17.281>code <00:02:17.398>lines, <00:02:17.515>which <00:02:17.631>means <00:02:17.748>a <00:02:17.865>lot

55
00:02:18.985 --> 00:02:21.145
<00:02:18.985>of <00:02:19.185>liabilities <00:02:19.385>and <00:02:19.585>things <00:02:19.785>that <00:02:19.985>can <00:02:20.185>go <00:02:20.385>wrong.

56
00:02:22.285 --> 00:02:24.145
<00:02:22.285>So <00:02:22.518>when <00:02:22.751>you <00:02:22.984>have <00:02:23.218>so <00:02:23.451>much <00:02:23.685>code,

57
00:02:24.405 --> 00:02:27.665
<00:02:24.405>the <00:02:24.521>question <00:02:24.638>I <00:02:24.755>usually <00:02:24.871>ask <00:02:24.988>myself <00:02:25.105>is, <00:02:25.221>how <00:02:25.338>do <00:02:25.455>I <00:02:25.571>deal <00:02:25.688>with <00:02:25.805>it?

58
00:02:27.725 --> 00:02:28.865
<00:02:27.725>How <00:02:27.930>do <00:02:28.135>I <00:02:28.340>reason <00:02:28.545>about <00:02:28.751>it?

59
00:02:29.245 --> 00:02:31.545
<00:02:29.245>And <00:02:29.478>that's <00:02:29.711>because <00:02:29.945>a <00:02:30.178>lot <00:02:30.411>of <00:02:30.645>theistic

60
00:02:31.935 --> 00:02:34.225
<00:02:31.935>that <00:02:32.075>you <00:02:32.215>use <00:02:32.355>when <00:02:32.495>you <00:02:32.635>have <00:02:32.775>a <00:02:32.915>small <00:02:33.055>amount <00:02:33.195>of <00:02:33.335>code,

61
00:02:34.645 --> 00:02:38.145
<00:02:34.645>be <00:02:34.800>careful, <00:02:34.956>look <00:02:35.111>at <00:02:35.267>all <00:02:35.422>the, <00:02:35.578>you <00:02:35.733>know, <00:02:35.889>the <00:02:36.045>prs,

62
00:02:38.255 --> 00:02:40.905
<00:02:38.255>make <00:02:38.488>sure <00:02:38.721>the <00:02:38.954>certain <00:02:39.188>standards <00:02:39.421>are <00:02:39.655>upheld.

63
00:02:41.435 --> 00:02:43.505
<00:02:41.435>Break <00:02:41.668>down <00:02:41.901>what <00:02:42.135>the <00:02:42.368>amount <00:02:42.601>of <00:02:42.835>code

64
00:02:44.095 --> 00:02:45.465
<00:02:44.095>crosses <00:02:44.506>a <00:02:44.917>certain <00:02:45.328>threshold

65
00:02:45.465 --> 00:02:47.265
<00:02:45.465>because <00:02:45.665>there's <00:02:45.865>too <00:02:46.065>many <00:02:46.265>people <00:02:46.465>working <00:02:46.665>on <00:02:46.865>it

66
00:02:47.265 --> 00:02:48.345
<00:02:47.265>because <00:02:47.459>it <00:02:47.653>could <00:02:47.848>basically, <00:02:48.042>it's <00:02:48.237>too

67
00:02:48.345 --> 00:02:49.505
<00:02:48.345>complex <00:02:48.553>to <00:02:48.762>keep <00:02:48.971>it <00:02:49.180>in <00:02:49.389>mind.

68
00:02:49.965 --> 00:02:52.345
<00:02:49.965>You <00:02:50.198>name <00:02:50.431>it, <00:02:50.665>there <00:02:50.898>are <00:02:51.131>physical <00:02:51.365>limitations

69
00:02:52.455 --> 00:02:55.985
<00:02:52.454>that <00:02:52.654>we <00:02:52.855>humans <00:02:53.054>programmers <00:02:53.255>do <00:02:53.454>not <00:02:53.654>stretch <00:02:53.855>beyond

70
00:02:56.125 --> 00:02:57.265
<00:02:56.125>and <00:02:56.381>that's <00:02:56.638>when <00:02:56.894>unique <00:02:57.150>tooling,

71
00:02:57.445 --> 00:02:59.105
<00:02:57.445>and <00:02:57.644>we <00:02:57.845>know <00:02:58.045>this <00:02:58.245>from <00:02:58.445>the <00:02:58.644>last <00:02:58.845>experience,

72
00:02:59.140 --> 00:03:02.085
<00:02:59.140>right <00:02:59.279>you <00:02:59.420>we <00:02:59.559>know <00:02:59.700>about <00:02:59.839>the <00:02:59.980>cargo <00:03:00.119>and <00:03:00.260>the <00:03:00.399>compiler <00:03:00.540>rider

73
00:03:02.185 --> 00:03:04.605
<00:03:02.185>and <00:03:02.385>the <00:03:02.585>compiling <00:03:02.785>warnings <00:03:02.985>we <00:03:03.185>know <00:03:03.385>about <00:03:03.585>clippy,

74
00:03:04.625 --> 00:03:05.645
<00:03:04.625>the <00:03:05.084>standard <00:03:05.543>linter.

75
00:03:05.985 --> 00:03:08.605
<00:03:05.985>So <00:03:06.140>this <00:03:06.296>is <00:03:06.451>not <00:03:06.607>necessarily <00:03:06.762>something <00:03:06.918>I'm <00:03:07.073>familiar <00:03:07.229>to <00:03:07.385>you

76
00:03:08.665 --> 00:03:09.885
<00:03:08.665>as <00:03:08.939>a <00:03:09.214>line <00:03:09.488>of <00:03:09.762>reasoning.

77
00:03:10.705 --> 00:03:15.565
<00:03:10.705>And <00:03:10.905>so <00:03:11.105>what <00:03:11.305>my <00:03:11.505>line <00:03:11.705>of <00:03:11.905>questionings <00:03:12.105>tries

78
00:03:15.565 --> 00:03:18.255
<00:03:15.565>to <00:03:15.915>understand <00:03:16.265>is <00:03:16.615>what <00:03:16.965>type

79
00:03:18.255 --> 00:03:21.415
<00:03:18.255>of <00:03:18.454>questions <00:03:18.655>would <00:03:18.855>you <00:03:19.055>usually <00:03:19.255>want <00:03:19.454>answers <00:03:19.655>to,

80
00:03:21.745 --> 00:03:24.815
<00:03:21.745>which <00:03:21.920>are <00:03:22.095>not <00:03:22.270>already <00:03:22.445>answered <00:03:22.620>by <00:03:22.795>the <00:03:22.970>default <00:03:23.145>tooling.

81
00:03:25.655 --> 00:03:27.055
<00:03:25.655>Examples <00:03:25.970>that <00:03:26.285>come <00:03:26.600>to <00:03:26.915>mind

82
00:03:27.315 --> 00:03:30.535
<00:03:27.315>and <00:03:27.470>these <00:03:27.626>are <00:03:27.781>all <00:03:27.937>taken <00:03:28.092>from <00:03:28.248>like <00:03:28.403>real <00:03:28.559>world <00:03:28.715>projects.

83
00:03:31.195 --> 00:03:32.375
<00:03:31.195>You <00:03:31.407>are <00:03:31.619>maintaining <00:03:31.832>a <00:03:32.044>rust <00:03:32.257>library

84
00:03:32.675 --> 00:03:34.655
<00:03:32.675>for <00:03:33.025>example, <00:03:33.375>and <00:03:33.725>Rust <00:03:34.075>Library.

85
00:03:34.795 --> 00:03:37.935
<00:03:34.795>As <00:03:34.935>a <00:03:35.075>public <00:03:35.215>API <00:03:35.355>and <00:03:35.495>the <00:03:35.635>public <00:03:35.775>API <00:03:35.915>is <00:03:36.055>very <00:03:36.195>important.

86
00:03:38.155 --> 00:03:40.935
<00:03:38.155>If <00:03:38.310>you <00:03:38.466>make <00:03:38.621>changes <00:03:38.777>there <00:03:38.932>which <00:03:39.088>are <00:03:39.243>breaking, <00:03:39.399>you <00:03:39.555>need

87
00:03:40.935 --> 00:03:42.255
<00:03:40.935>to <00:03:41.172>bump <00:03:41.410>either <00:03:41.647>your <00:03:41.885>major <00:03:42.123>version

88
00:03:42.255 --> 00:03:44.855
<00:03:42.255>of <00:03:42.394>your <00:03:42.535>minor <00:03:42.674>version <00:03:42.815>if <00:03:42.954>it's <00:03:43.095>at <00:03:43.234>zero <00:03:43.375>point <00:03:43.515>x <00:03:43.655>library.

89
00:03:46.395 --> 00:03:49.455
<00:03:46.395>And <00:03:46.535>so <00:03:46.675>you <00:03:46.815>need <00:03:46.955>to <00:03:47.095>know <00:03:47.235>when <00:03:47.375>a <00:03:47.515>change <00:03:47.655>is <00:03:47.795>breaking.

90
00:03:50.055 --> 00:03:52.575
<00:03:50.055>A <00:03:50.288>particular <00:03:50.521>sneaky <00:03:50.755>category <00:03:50.988>of <00:03:51.221>breaking <00:03:51.455>changes

91
00:03:53.475 --> 00:03:55.055
<00:03:53.475>is <00:03:53.941>transitive <00:03:54.408>breaking <00:03:54.875>changes.

92
00:03:55.435 --> 00:03:56.935
<00:03:55.435>So <00:03:55.772>you're <00:03:56.110>exposing <00:03:56.447>your <00:03:56.785>public

93
00:03:57.775 --> 00:04:01.455
<00:03:57.775>a <00:03:57.975>PIA <00:03:58.175>type <00:03:58.375>from <00:03:58.575>another <00:03:58.775>party <00:03:58.975>from <00:03:59.175>a

94
00:04:01.465 --> 00:04:02.855
<00:04:01.465>dependency <00:04:01.882>of <00:04:02.299>your <00:04:02.715>library.

95
00:04:03.875 --> 00:04:07.575
<00:04:03.875>And <00:04:04.002>since <00:04:04.129>it's <00:04:04.256>in <00:04:04.384>your <00:04:04.511>public <00:04:04.638>API, <00:04:04.765>now <00:04:04.893>your <00:04:05.020>version <00:04:05.147>is <00:04:05.275>tied

96
00:04:07.835 --> 00:04:09.175
<00:04:07.835>to <00:04:08.007>the <00:04:08.179>version <00:04:08.351>of <00:04:08.524>the <00:04:08.696>third <00:04:08.868>party <00:04:09.041>library.

97
00:04:09.595 --> 00:04:11.935
<00:04:09.595>If <00:04:09.770>you <00:04:09.945>bump <00:04:10.120>that <00:04:10.295>dependency <00:04:10.470>in <00:04:10.645>a <00:04:10.820>breaking <00:04:10.995>way

98
00:04:12.115 --> 00:04:15.055
<00:04:12.115>and <00:04:12.255>that <00:04:12.395>type <00:04:12.535>makes, <00:04:12.675>you <00:04:12.815>know, <00:04:12.955>changes <00:04:13.095>in <00:04:13.235>a <00:04:13.375>breaking <00:04:13.515>way,

99
00:04:15.395 --> 00:04:17.375
<00:04:15.395>now <00:04:15.628>your <00:04:15.861>library's <00:04:16.095>API <00:04:16.328>has <00:04:16.561>been <00:04:16.795>broken.

100
00:04:18.035 --> 00:04:20.215
<00:04:18.035>So <00:04:18.235>as <00:04:18.435>a <00:04:18.635>library <00:04:18.835>author, <00:04:19.035>you <00:04:19.235>really <00:04:19.435>want

101
00:04:20.215 --> 00:04:23.455
<00:04:20.214>to <00:04:20.370>have <00:04:20.526>very <00:04:20.681>tight <00:04:20.837>control <00:04:20.992>over <00:04:21.148>what's <00:04:21.303>exposed <00:04:21.459>in <00:04:21.614>your

102
00:04:23.455 --> 00:04:26.865
<00:04:23.455>public <00:04:23.582>API <00:04:23.709>and <00:04:23.836>this <00:04:23.964>is <00:04:24.091>fairly <00:04:24.218>easy <00:04:24.345>when <00:04:24.473>you <00:04:24.600>have, <00:04:24.727>you <00:04:24.854>know,

103
00:04:27.325 --> 00:04:28.585
<00:04:27.325>two <00:04:27.608>types <00:04:27.892>and <00:04:28.175>10 <00:04:28.459>methods.

104
00:04:29.005 --> 00:04:32.065
<00:04:29.005>It <00:04:29.160>gets <00:04:29.316>fairly <00:04:29.471>complex <00:04:29.627>when <00:04:29.782>you <00:04:29.938>have <00:04:30.093>a <00:04:30.249>hundred <00:04:30.405>types

105
00:04:32.205 --> 00:04:34.185
<00:04:32.205>and <00:04:32.555>a <00:04:32.905>thousand <00:04:33.255>methods <00:04:33.604>example.

106
00:04:34.285 --> 00:04:36.145
<00:04:34.284>In <00:04:34.984>case <00:04:35.684>D-A-W-S-S-D-K,

107
00:04:36.695 --> 00:04:39.625
<00:04:36.695>like <00:04:36.928>this <00:04:37.161>gazillion <00:04:37.395>AWS <00:04:37.628>services <00:04:37.861>teaches <00:04:38.094>them

108
00:04:39.685 --> 00:04:40.825
<00:04:39.685>has <00:04:39.941>a <00:04:40.198>lot <00:04:40.454>of <00:04:40.711>endpoints.

109
00:04:41.165 --> 00:04:42.505
<00:04:41.165>How <00:04:41.366>do <00:04:41.567>you <00:04:41.768>make <00:04:41.969>sure <00:04:42.170>that <00:04:42.371>your

110
00:04:43.225 --> 00:04:45.025
<00:04:43.225>exercises <00:04:43.575>trust <00:04:43.925>governance <00:04:44.275>at <00:04:44.625>scale?

111
00:04:46.245 --> 00:04:49.305
<00:04:46.245>Others <00:04:46.478>are <00:04:46.711>more <00:04:46.945>architectural <00:04:47.178>so <00:04:47.411>to <00:04:47.645>say.

112
00:04:49.645 --> 00:04:52.145
<00:04:49.645>Uh, <00:04:49.844>you <00:04:50.044>might <00:04:50.245>do <00:04:50.445>B <00:04:50.645>following <00:04:50.844>patterns <00:04:51.044>such

113
00:04:52.145 --> 00:04:53.625
<00:04:52.145>as <00:04:52.811>exactly <00:04:53.477>architecture

114
00:04:53.685 --> 00:04:55.305
<00:04:53.685>or <00:04:53.918>generally <00:04:54.151>speaking <00:04:54.385>in <00:04:54.618>version <00:04:54.851>of <00:04:55.085>control.

115
00:04:55.765 --> 00:04:57.785
<00:04:55.765>So <00:04:55.940>you <00:04:56.115>wanna <00:04:56.289>make <00:04:56.465>sure <00:04:56.640>that <00:04:56.815>a <00:04:56.990>certain <00:04:57.164>module

116
00:04:58.305 --> 00:05:00.065
<00:04:58.305>X <00:04:58.538>does <00:04:58.771>not <00:04:59.005>depend <00:04:59.238>on <00:04:59.471>module <00:04:59.705>Y

117
00:05:00.065 --> 00:05:01.905
<00:05:00.065>because <00:05:00.344>that's <00:05:00.625>one <00:05:00.905>of <00:05:01.185>the <00:05:01.465>architectural

118
00:05:02.025 --> 00:05:03.545
<00:05:02.025>variance <00:05:02.298>that <00:05:02.572>you're <00:05:02.845>trying <00:05:03.119>to <00:05:03.393>enforce.

119
00:05:04.125 --> 00:05:06.825
<00:05:04.125>How <00:05:04.280>do <00:05:04.436>you <00:05:04.591>do <00:05:04.747>that? <00:05:04.902>You <00:05:05.058>might <00:05:05.213>also <00:05:05.369>be <00:05:05.525>analyzing

120
00:05:06.825 --> 00:05:07.865
<00:05:06.825>your <00:05:07.293>application <00:05:07.761>layer.

121
00:05:08.165 --> 00:05:11.265
<00:05:08.165>You <00:05:08.305>might <00:05:08.445>wanna <00:05:08.585>know <00:05:08.725>for <00:05:08.865>every <00:05:09.005>pool <00:05:09.145>request <00:05:09.285>that <00:05:09.425>comes <00:05:09.565>in,

122
00:05:12.345 --> 00:05:15.245
<00:05:12.345>is <00:05:12.520>this <00:05:12.695>gonna <00:05:12.870>cause <00:05:13.045>a <00:05:13.220>security <00:05:13.395>incident <00:05:13.570>in <00:05:13.745>particular,

123
00:05:15.245 --> 00:05:17.725
<00:05:15.245>is <00:05:15.445>this <00:05:15.645>gonna <00:05:15.845>change <00:05:16.045>an <00:05:16.245>endpoint <00:05:16.445>from <00:05:16.645>requiring

124
00:05:17.725 --> 00:05:20.565
<00:05:17.725>authentication <00:05:18.075>to <00:05:18.425>not <00:05:18.775>requiring <00:05:19.125>authentication?

125
00:05:21.105 --> 00:05:23.085
<00:05:21.105>Do <00:05:21.305>you <00:05:21.505>have <00:05:21.705>a <00:05:21.905>way <00:05:22.105>to <00:05:22.305>detect <00:05:22.505>that?

126
00:05:23.665 --> 00:05:26.365
<00:05:23.665>And <00:05:23.781>you <00:05:23.898>know <00:05:24.015>it's <00:05:24.131>easy <00:05:24.248>to <00:05:24.365>catch <00:05:24.481>it <00:05:24.598>if <00:05:24.715>perhaps <00:05:24.831>you <00:05:24.948>have <00:05:25.065>10

127
00:05:26.365 --> 00:05:28.885
<00:05:26.365>points, <00:05:26.520>but <00:05:26.676>once <00:05:26.831>again <00:05:26.987>when <00:05:27.142>that <00:05:27.298>becomes <00:05:27.453>a <00:05:27.609>hundred, <00:05:27.765>200,

128
00:05:28.885 --> 00:05:31.445
<00:05:28.885>500, <00:05:29.118>that <00:05:29.351>might <00:05:29.585>not <00:05:29.818>be <00:05:30.051>as <00:05:30.284>obvious

129
00:05:32.685 --> 00:05:33.985
<00:05:32.685>Or <00:05:33.075>another <00:05:33.465>common <00:05:33.855>scenario.

130
00:05:34.085 --> 00:05:36.945
<00:05:34.085>You <00:05:34.240>started <00:05:34.396>a <00:05:34.551>new <00:05:34.707>project, <00:05:34.862>you <00:05:35.018>started <00:05:35.173>as <00:05:35.329>a <00:05:35.484>monolith.

131
00:05:37.165 --> 00:05:39.465
<00:05:37.165>The <00:05:37.340>monolith <00:05:37.515>now <00:05:37.690>needs <00:05:37.865>to <00:05:38.040>be <00:05:38.215>broken <00:05:38.390>down <00:05:38.565>either

132
00:05:39.465 --> 00:05:43.545
<00:05:39.465>because <00:05:39.698>of <00:05:39.931>organizational <00:05:40.165>complexity <00:05:40.398>or <00:05:40.631>performance <00:05:40.865>reasons

133
00:05:43.845 --> 00:05:45.265
<00:05:43.845>or <00:05:44.164>whatever <00:05:44.484>you <00:05:44.803>name <00:05:45.123>it.

134
00:05:46.005 --> 00:05:47.545
<00:05:46.005>And <00:05:46.236>when <00:05:46.467>you <00:05:46.698>break <00:05:46.929>down <00:05:47.160>the <00:05:47.391>monolith,

135
00:05:47.545 --> 00:05:48.585
<00:05:47.545>you <00:05:47.732>also <00:05:47.919>wanna <00:05:48.106>be <00:05:48.293>very <00:05:48.481>careful

136
00:05:48.615 --> 00:05:49.945
<00:05:48.615>with <00:05:48.914>the <00:05:49.213>data <00:05:49.512>access <00:05:49.812>patterns.

137
00:05:49.965 --> 00:05:53.145
<00:05:49.965>You <00:05:50.198>don't <00:05:50.431>wanna <00:05:50.665>mix <00:05:50.898>databases <00:05:51.131>across <00:05:51.365>microservices.

138
00:05:53.645 --> 00:05:56.185
<00:05:53.645>And <00:05:53.800>so <00:05:53.956>you <00:05:54.111>might <00:05:54.267>wanna <00:05:54.422>know <00:05:54.578>which <00:05:54.733>endpoints <00:05:54.889>are <00:05:55.044>accessing

139
00:05:56.185 --> 00:05:59.325
<00:05:56.185>the <00:05:56.301>user <00:05:56.418>table <00:05:56.535>and <00:05:56.651>you <00:05:56.768>might <00:05:56.885>wanna <00:05:57.001>find <00:05:57.118>out <00:05:57.235>in <00:05:57.351>a <00:05:57.468>way <00:05:57.585>which

140
00:05:59.345 --> 00:06:01.565
<00:05:59.345>is <00:05:59.625>faster <00:05:59.905>and <00:06:00.185>more <00:06:00.465>reliable <00:06:00.745>than,

141
00:06:01.745 --> 00:06:04.125
<00:06:01.745>I'm <00:06:01.900>just <00:06:02.056>gonna <00:06:02.211>read <00:06:02.367>very <00:06:02.522>carefully <00:06:02.678>the <00:06:02.833>entire <00:06:02.989>code <00:06:03.145>base.

142
00:06:05.305 --> 00:06:10.165
<00:06:05.305>All <00:06:05.480>these <00:06:05.655>questions <00:06:05.830>are <00:06:06.005>things <00:06:06.180>I've <00:06:06.355>asked <00:06:06.530>myself <00:06:06.705>in

143
00:06:10.165 --> 00:06:12.365
<00:06:10.165>projects <00:06:10.515>and <00:06:10.865>the <00:06:11.215>reality <00:06:11.565>is

144
00:06:12.955 --> 00:06:14.725
<00:06:12.955>that <00:06:13.110>this <00:06:13.266>is <00:06:13.421>not <00:06:13.577>a <00:06:13.732>good <00:06:13.888>answer <00:06:14.043>at <00:06:14.199>the <00:06:14.354>moment.

145
00:06:15.665 --> 00:06:18.605
<00:06:15.665>Now <00:06:15.820>you <00:06:15.976>can <00:06:16.131>encode <00:06:16.287>some <00:06:16.442>environ <00:06:16.598>into <00:06:16.753>a <00:06:16.909>type <00:06:17.065>system.

146
00:06:18.605 --> 00:06:20.445
<00:06:18.605>This <00:06:18.805>is <00:06:19.005>a <00:06:19.205>very <00:06:19.405>common <00:06:19.605>strategy <00:06:19.805>in <00:06:20.005>rest.

147
00:06:20.835 --> 00:06:22.045
<00:06:20.835>Instead <00:06:21.379>of <00:06:21.924>trying

148
00:06:22.045 --> 00:06:24.765
<00:06:22.045>to <00:06:22.325>reason <00:06:22.605>about <00:06:22.885>enforcing <00:06:23.165>the <00:06:23.445>certain

149
00:06:24.765 --> 00:06:26.565
<00:06:24.765>things <00:06:25.231>are <00:06:25.698>not <00:06:26.164>happening.

150
00:06:26.665 --> 00:06:28.245
<00:06:26.665>So <00:06:27.015>letting <00:06:27.365>the <00:06:27.715>code <00:06:28.065>compile

151
00:06:28.265 --> 00:06:30.925
<00:06:28.265>and <00:06:28.420>then <00:06:28.576>you <00:06:28.731>know, <00:06:28.887>doing <00:06:29.042>a <00:06:29.198>second <00:06:29.353>layer <00:06:29.509>of <00:06:29.664>analysis,

152
00:06:31.305 --> 00:06:33.765
<00:06:31.305>you <00:06:31.445>can <00:06:31.585>try <00:06:31.725>to <00:06:31.865>structure <00:06:32.005>your <00:06:32.145>code <00:06:32.285>in <00:06:32.425>such <00:06:32.565>a <00:06:32.705>way

153
00:06:33.995 --> 00:06:35.205
<00:06:33.995>that <00:06:34.212>it <00:06:34.430>will <00:06:34.648>not <00:06:34.866>be <00:06:35.084>able

154
00:06:35.205 --> 00:06:38.165
<00:06:35.205>to <00:06:35.380>compile <00:06:35.555>if <00:06:35.729>those <00:06:35.905>in <00:06:36.080>environs <00:06:36.255>are <00:06:36.430>not <00:06:36.604>upheld.

155
00:06:38.675 --> 00:06:40.685
<00:06:38.675>Unfortunately <00:06:39.141>though <00:06:39.608>this <00:06:40.075>type

156
00:06:40.825 --> 00:06:42.885
<00:06:40.825>of <00:06:41.058>technique <00:06:41.291>which <00:06:41.525>is <00:06:41.758>generally <00:06:41.991>very <00:06:42.224>useful

157
00:06:43.985 --> 00:06:45.845
<00:06:43.985>is <00:06:44.335>not <00:06:44.685>necessarily <00:06:45.035>always <00:06:45.385>applicable.

158
00:06:46.345 --> 00:06:47.485
<00:06:46.345>The <00:06:46.550>in <00:06:46.755>environs <00:06:46.960>you <00:06:47.165>might <00:06:47.371>try

159
00:06:47.485 --> 00:06:51.245
<00:06:47.485>to <00:06:47.660>be <00:06:47.835>upholding <00:06:48.010>are <00:06:48.185>too <00:06:48.360>complex <00:06:48.535>to <00:06:48.710>be <00:06:48.885>shaped

160
00:06:51.585 --> 00:06:52.885
<00:06:51.585>inside <00:06:52.755>something

161
00:06:52.925 --> 00:06:55.565
<00:06:52.925>that <00:06:53.125>the <00:06:53.325>compiler <00:06:53.525>can <00:06:53.725>understand <00:06:53.925>like <00:06:54.125>market <00:06:54.325>rates

162
00:06:56.025 --> 00:06:59.205
<00:06:56.025>or <00:06:56.304>type <00:06:56.585>signatures <00:06:56.864>and <00:06:57.145>trade <00:06:57.424>bounds

163
00:07:00.225 --> 00:07:04.205
<00:07:00.225>or <00:07:00.380>even <00:07:00.536>if <00:07:00.691>that's <00:07:00.847>possible <00:07:01.002>so <00:07:01.158>you <00:07:01.313>can <00:07:01.469>actually <00:07:01.625>create

164
00:07:04.545 --> 00:07:06.765
<00:07:04.545>and <00:07:04.745>encode <00:07:04.945>that <00:07:05.145>invited <00:07:05.345>inside <00:07:05.545>the <00:07:05.745>type <00:07:05.945>system.

165
00:07:07.025 --> 00:07:09.205
<00:07:07.025>The <00:07:07.200>other <00:07:07.375>messages <00:07:07.549>that <00:07:07.724>you <00:07:07.900>get <00:07:08.075>out <00:07:08.250>are <00:07:08.424>gonna

166
00:07:09.265 --> 00:07:10.405
<00:07:09.265>be <00:07:09.777>pretty <00:07:10.291>nasty.

167
00:07:10.865 --> 00:07:12.045
<00:07:10.865>And <00:07:11.219>I <00:07:11.573>think <00:07:11.927>Stefan

168
00:07:12.045 --> 00:07:14.685
<00:07:12.045>before <00:07:12.325>was <00:07:12.605>mentioning <00:07:12.885>how <00:07:13.165>certain <00:07:13.445>types

169
00:07:14.685 --> 00:07:17.325
<00:07:14.685>of <00:07:14.918>traits <00:07:15.151>design <00:07:15.385>can <00:07:15.618>lead <00:07:15.851>to <00:07:16.085>pages

170
00:07:17.585 --> 00:07:21.045
<00:07:17.585>of <00:07:17.760>genetics <00:07:17.935>garbage <00:07:18.109>when <00:07:18.284>stuff <00:07:18.460>actually <00:07:18.635>fails <00:07:18.810>to <00:07:18.984>compile.

171
00:07:21.825 --> 00:07:23.045
<00:07:21.825>And <00:07:22.099>that's <00:07:22.374>not <00:07:22.648>nice <00:07:22.923>either

172
00:07:23.045 --> 00:07:25.525
<00:07:23.045>because <00:07:23.200>it <00:07:23.356>means <00:07:23.511>that <00:07:23.667>you're <00:07:23.822>iterating <00:07:23.978>a <00:07:24.133>loss <00:07:24.289>lower <00:07:24.445>on

173
00:07:25.525 --> 00:07:28.485
<00:07:25.525>that <00:07:25.700>project <00:07:25.875>because <00:07:26.049>now <00:07:26.224>working <00:07:26.400>on <00:07:26.575>the <00:07:26.750>project <00:07:26.924>becomes

174
00:07:28.515 --> 00:07:32.565
<00:07:28.515>complicated <00:07:28.690>because <00:07:28.865>we <00:07:29.039>have <00:07:29.215>made <00:07:29.390>it <00:07:29.565>complicated <00:07:29.740>to <00:07:29.914>up

175
00:07:32.825 --> 00:07:34.125
<00:07:32.825>to <00:07:33.215>uphold <00:07:33.605>certain <00:07:33.995>invites.

176
00:07:35.065 --> 00:07:38.285
<00:07:35.065>So <00:07:35.220>let's <00:07:35.376>assume <00:07:35.531>that <00:07:35.687>you <00:07:35.842>can't <00:07:35.998>go <00:07:36.153>down <00:07:36.309>this <00:07:36.465>route.

177
00:07:38.465 --> 00:07:41.405
<00:07:38.465>So <00:07:38.605>the <00:07:38.745>environ, <00:07:38.885>you <00:07:39.025>wanna <00:07:39.165>appel, <00:07:39.305>you <00:07:39.445>want <00:07:39.585>to <00:07:39.725>make <00:07:39.865>sure

178
00:07:42.005 --> 00:07:44.805
<00:07:42.005>ALS <00:07:42.180>is <00:07:42.355>too <00:07:42.530>complicated <00:07:42.705>for <00:07:42.880>the <00:07:43.055>compiler, <00:07:43.230>which <00:07:43.405>is

179
00:07:45.505 --> 00:07:46.525
<00:07:45.505>not <00:07:45.734>nice <00:07:45.964>to <00:07:46.193>work <00:07:46.423>with.

180
00:07:47.185 --> 00:07:48.325
<00:07:47.185>So <00:07:47.441>what <00:07:47.698>do <00:07:47.954>you <00:07:48.211>do?

181
00:07:49.545 --> 00:07:52.525
<00:07:49.545>And <00:07:49.672>in <00:07:49.799>brass <00:07:49.926>when <00:07:50.054>you <00:07:50.181>think <00:07:50.308>about <00:07:50.435>you <00:07:50.563>know, <00:07:50.690>staff <00:07:50.817>that <00:07:50.945>needs

182
00:07:52.525 --> 00:07:55.365
<00:07:52.525>to <00:07:52.680>run <00:07:52.836>on <00:07:52.991>the <00:07:53.147>source <00:07:53.302>code <00:07:53.458>meta <00:07:53.613>programming <00:07:53.769>that <00:07:53.924>kind

183
00:07:55.365 --> 00:07:56.765
<00:07:55.365>of <00:07:55.785>rhymes <00:07:56.205>with <00:07:56.625>macros.

184
00:07:58.155 --> 00:07:59.685
<00:07:58.155>Russ <00:07:58.430>is <00:07:58.705>two <00:07:58.981>flavors <00:07:59.256>of <00:07:59.532>macros.

185
00:07:59.785 --> 00:08:01.965
<00:07:59.784>Uh, <00:08:00.064>macro <00:08:00.344>rules <00:08:00.624>and <00:08:00.905>procedural <00:08:01.184>macros.

186
00:08:02.215 --> 00:08:05.245
<00:08:02.215>Macro <00:08:02.390>rules <00:08:02.565>are <00:08:02.739>also <00:08:02.914>known <00:08:03.090>as <00:08:03.265>macro <00:08:03.440>by <00:08:03.614>examples

187
00:08:05.425 --> 00:08:07.965
<00:08:05.425>and <00:08:05.658>their <00:08:05.891>primary <00:08:06.125>function <00:08:06.358>is <00:08:06.591>code <00:08:06.825>generation.

188
00:08:08.685 --> 00:08:12.165
<00:08:08.685>A <00:08:08.825>macro <00:08:08.965>rules <00:08:09.105>definition <00:08:09.245>looks <00:08:09.385>somewhat <00:08:09.525>like <00:08:09.665>this <00:08:09.805>is <00:08:09.945>a <00:08:10.085>very

189
00:08:12.195 --> 00:08:13.565
<00:08:12.195>trivial <00:08:12.811>timestamp <00:08:13.428>macro.

190
00:08:14.225 --> 00:08:16.885
<00:08:14.225>So <00:08:14.458>you <00:08:14.691>get <00:08:14.925>the <00:08:15.158>macro <00:08:15.391>rules <00:08:15.625>identifier,

191
00:08:17.035 --> 00:08:18.285
<00:08:17.035>then <00:08:17.195>you <00:08:17.356>have <00:08:17.517>the <00:08:17.677>name <00:08:17.838>of <00:08:17.999>the <00:08:18.160>macro

192
00:08:18.585 --> 00:08:21.925
<00:08:18.585>and <00:08:18.740>they <00:08:18.896>have <00:08:19.051>a <00:08:19.207>bunch <00:08:19.362>of <00:08:19.518>patterns <00:08:19.673>on <00:08:19.829>the <00:08:19.984>left

193
00:08:22.025 --> 00:08:23.285
<00:08:22.025>and <00:08:22.214>generate <00:08:22.403>the <00:08:22.592>code <00:08:22.781>on <00:08:22.970>the <00:08:23.159>right.

194
00:08:23.785 --> 00:08:27.765
<00:08:23.785>If <00:08:23.912>you <00:08:24.039>squint <00:08:24.166>a <00:08:24.294>little <00:08:24.421>bit, <00:08:24.548>this <00:08:24.675>kind <00:08:24.803>of <00:08:24.930>looks, <00:08:25.057>this <00:08:25.185>kind

195
00:08:27.765 --> 00:08:29.365
<00:08:27.765>of <00:08:28.044>look <00:08:28.325>like <00:08:28.604>um, <00:08:28.885>match <00:08:29.164>statement.

196
00:08:29.825 --> 00:08:32.605
<00:08:29.825>So <00:08:29.952>you <00:08:30.079>have <00:08:30.206>the <00:08:30.334>things <00:08:30.461>that <00:08:30.588>are <00:08:30.715>being <00:08:30.843>matched <00:08:30.970>on <00:08:31.097>the <00:08:31.224>left,

197
00:08:32.705 --> 00:08:33.925
<00:08:32.705>the <00:08:32.924>patterns <00:08:33.144>and <00:08:33.363>then <00:08:33.583>you <00:08:33.803>have

198
00:08:33.925 --> 00:08:35.045
<00:08:33.924>what's <00:08:34.126>gonna <00:08:34.328>happen <00:08:34.529>on <00:08:34.731>the <00:08:34.933>right.

199
00:08:35.105 --> 00:08:36.125
<00:08:35.105>So <00:08:35.411>the <00:08:35.717>generated <00:08:36.023>code

200
00:08:36.905 --> 00:08:39.805
<00:08:36.905>and <00:08:37.105>macro <00:08:37.304>rules <00:08:37.505>are <00:08:37.704>fairly <00:08:37.905>simple <00:08:38.105>in <00:08:38.304>structure

201
00:08:39.945 --> 00:08:42.525
<00:08:39.945>but <00:08:40.120>you <00:08:40.295>can <00:08:40.470>actually <00:08:40.645>write <00:08:40.820>pretty <00:08:40.995>complex <00:08:41.170>macro <00:08:41.345>rules

202
00:08:42.525 --> 00:08:46.045
<00:08:42.525>because <00:08:42.680>you <00:08:42.836>can <00:08:42.991>use <00:08:43.147>patterns, <00:08:43.302>the <00:08:43.458>macro <00:08:43.613>can <00:08:43.769>invoke <00:08:43.924>itself.

203
00:08:46.045 --> 00:08:47.605
<00:08:46.045>There's <00:08:46.511>like <00:08:46.978>Titi <00:08:47.444>munching,

204
00:08:47.605 --> 00:08:49.245
<00:08:47.605>there's <00:08:47.780>all <00:08:47.955>sorts <00:08:48.130>of <00:08:48.305>things <00:08:48.480>you <00:08:48.655>can <00:08:48.830>do <00:08:49.005>here.

205
00:08:49.385 --> 00:08:52.005
<00:08:49.385>So <00:08:49.735>fairly <00:08:50.085>basic <00:08:50.435>building <00:08:50.785>blocks

206
00:08:52.105 --> 00:08:55.245
<00:08:52.105>but <00:08:52.305>fairly <00:08:52.505>advanced, <00:08:52.705>like <00:08:52.905>fairly <00:08:53.105>high <00:08:53.305>ceiling <00:08:53.505>of

207
00:08:55.245 --> 00:08:56.245
<00:08:55.245>what <00:08:55.425>you <00:08:55.605>can <00:08:55.785>achieve <00:08:55.965>with <00:08:56.145>it.

208
00:08:56.435 --> 00:08:59.365
<00:08:56.435>Nonetheless, <00:08:56.668>it <00:08:56.901>is <00:08:57.135>primarily <00:08:57.368>code <00:08:57.601>generation <00:08:57.834>like

209
00:09:00.015 --> 00:09:02.305
<00:09:00.015>pattern <00:09:00.189>on <00:09:00.365>the <00:09:00.540>left, <00:09:00.715>generating <00:09:00.890>code <00:09:01.064>on <00:09:01.240>the <00:09:01.415>right.

210
00:09:02.485 --> 00:09:03.665
<00:09:02.485>Not <00:09:02.697>much <00:09:02.909>else <00:09:03.122>you <00:09:03.334>can <00:09:03.547>do.

211
00:09:04.725 --> 00:09:07.225
<00:09:04.725>If <00:09:04.900>we <00:09:05.075>wanna <00:09:05.250>do <00:09:05.425>something <00:09:05.600>more <00:09:05.775>interesting, <00:09:05.950>we <00:09:06.125>need

212
00:09:07.225 --> 00:09:08.385
<00:09:07.225>to <00:09:07.486>look <00:09:07.747>at <00:09:08.008>procedural <00:09:08.269>macros.

213
00:09:08.565 --> 00:09:11.145
<00:09:08.565>Now <00:09:08.740>procedural <00:09:08.915>macros <00:09:09.090>look <00:09:09.265>like <00:09:09.440>this <00:09:09.615>when <00:09:09.790>they're <00:09:09.965>applied.

214
00:09:11.365 --> 00:09:15.225
<00:09:11.365>So <00:09:11.505>this <00:09:11.645>is <00:09:11.785>the <00:09:11.925>tracing <00:09:12.065>instrument <00:09:12.205>macro <00:09:12.345>which <00:09:12.485>is <00:09:12.625>gonna <00:09:12.765>open

215
00:09:15.345 --> 00:09:17.985
<00:09:15.345>a <00:09:15.520>span <00:09:15.695>that <00:09:15.870>wraps <00:09:16.045>the <00:09:16.220>execution <00:09:16.395>of <00:09:16.570>my <00:09:16.745>function

216
00:09:18.325 --> 00:09:20.545
<00:09:18.325>and <00:09:18.480>in <00:09:18.636>particular <00:09:18.791>that <00:09:18.947>span <00:09:19.102>is <00:09:19.258>gonna <00:09:19.413>have <00:09:19.569>trace <00:09:19.725>level.

217
00:09:21.245 --> 00:09:24.945
<00:09:21.245>If <00:09:21.352>we <00:09:21.460>look <00:09:21.568>at <00:09:21.675>it <00:09:21.783>from <00:09:21.891>a <00:09:21.998>macro <00:09:22.106>optic, <00:09:22.214>uh, <00:09:22.321>what <00:09:22.429>do <00:09:22.537>you <00:09:22.645>see?

218
00:09:24.945 --> 00:09:27.265
<00:09:24.945>You <00:09:25.085>see <00:09:25.225>the <00:09:25.365>macro <00:09:25.505>name <00:09:25.645>which <00:09:25.785>is <00:09:25.925>instrument <00:09:26.065>that <00:09:26.205>you <00:09:26.345>see,

219
00:09:27.265 --> 00:09:29.345
<00:09:27.265>the <00:09:27.545>macro <00:09:27.824>arguments <00:09:28.105>level <00:09:28.385>equal <00:09:28.665>trace

220
00:09:29.725 --> 00:09:32.825
<00:09:29.725>and <00:09:29.852>then <00:09:29.979>you <00:09:30.106>see <00:09:30.234>the <00:09:30.361>item <00:09:30.488>the <00:09:30.615>macro <00:09:30.743>applies <00:09:30.870>to <00:09:30.997>and <00:09:31.125>that's

221
00:09:32.825 --> 00:09:35.865
<00:09:32.825>because <00:09:33.058>instrument <00:09:33.291>is <00:09:33.525>an <00:09:33.758>attribute <00:09:33.991>procedural <00:09:34.225>macro.

222
00:09:35.895 --> 00:09:38.025
<00:09:35.895>There's <00:09:36.245>also <00:09:36.595>derived <00:09:36.944>procedural <00:09:37.295>markers

223
00:09:38.085 --> 00:09:39.705
<00:09:38.085>and <00:09:38.435>function <00:09:38.785>like <00:09:39.135>procedural <00:09:39.485>markers

224
00:09:39.805 --> 00:09:41.945
<00:09:39.805>but <00:09:40.038>the <00:09:40.271>underlying <00:09:40.505>principles <00:09:40.738>are <00:09:40.971>the <00:09:41.204>same.

225
00:09:42.765 --> 00:09:44.625
<00:09:42.765>So <00:09:42.998>if <00:09:43.231>you <00:09:43.465>move <00:09:43.698>from <00:09:43.931>the <00:09:44.165>usage,

226
00:09:44.805 --> 00:09:46.545
<00:09:44.805>the <00:09:45.005>definition, <00:09:45.204>this <00:09:45.405>is <00:09:45.604>what <00:09:45.805>it <00:09:46.005>looks <00:09:46.204>like.

227
00:09:46.765 --> 00:09:49.585
<00:09:46.765>So <00:09:46.939>as <00:09:47.115>I <00:09:47.290>said, <00:09:47.465>prop <00:09:47.640>macro <00:09:47.814>attributes <00:09:47.990>so <00:09:48.165>special.

228
00:09:50.175 --> 00:09:52.345
<00:09:50.175>This <00:09:50.314>is <00:09:50.454>not <00:09:50.594>a <00:09:50.734>normal <00:09:50.875>function, <00:09:51.015>this <00:09:51.155>is <00:09:51.295>a <00:09:51.435>pro <00:09:51.574>macro.

229
00:09:52.885 --> 00:09:55.985
<00:09:52.885>And <00:09:53.040>then <00:09:53.196>you <00:09:53.351>take <00:09:53.507>the <00:09:53.662>arguments, <00:09:53.818>the <00:09:53.973>item <00:09:54.129>as <00:09:54.285>input

230
00:09:56.125 --> 00:09:58.505
<00:09:56.125>and <00:09:56.280>you <00:09:56.436>need <00:09:56.591>to <00:09:56.747>generate <00:09:56.902>to <00:09:57.058>return <00:09:57.213>some <00:09:57.369>code <00:09:57.525>out.

231
00:09:58.565 --> 00:10:00.345
<00:09:58.565>So <00:09:58.740>the <00:09:58.915>code <00:09:59.090>that <00:09:59.265>actually <00:09:59.440>is <00:09:59.615>gonna <00:09:59.790>get <00:09:59.965>generated

232
00:10:00.365 --> 00:10:04.705
<00:10:00.365>and <00:10:00.520>compiled <00:10:00.676>ARGs <00:10:00.831>item <00:10:00.987>and <00:10:01.142>the <00:10:01.298>output <00:10:01.453>are <00:10:01.609>all <00:10:01.765>tokens.

233
00:10:05.245 --> 00:10:08.825
<00:10:05.245>So <00:10:05.445>what <00:10:05.645>you're <00:10:05.845>getting <00:10:06.045>here <00:10:06.245>is <00:10:06.445>token <00:10:06.645>level,

234
00:10:09.675 --> 00:10:12.145
<00:10:09.675>token <00:10:09.954>equal, <00:10:10.234>you <00:10:10.515>know, <00:10:10.795>double <00:10:11.074>quotes,

235
00:10:12.195 --> 00:10:15.465
<00:10:12.195>trace <00:10:12.370>double <00:10:12.545>quotes <00:10:12.720>the <00:10:12.895>same <00:10:13.070>underneath <00:10:13.245>is <00:10:13.420>like <00:10:13.595>pub

236
00:10:16.125 --> 00:10:19.185
<00:10:16.125>fn <00:10:16.405>my <00:10:16.685>function <00:10:16.965>identifier, <00:10:17.245>parenthesis, <00:10:17.525>parenthesis.

237
00:10:19.765 --> 00:10:21.425
<00:10:19.765>That's <00:10:20.115>everything <00:10:20.465>that <00:10:20.814>democracy <00:10:21.165>sees.

238
00:10:21.425 --> 00:10:25.465
<00:10:21.425>Like <00:10:21.599>there's <00:10:21.775>no <00:10:21.949>structure <00:10:22.125>beyond <00:10:22.300>the <00:10:22.474>actual <00:10:22.650>syntax <00:10:22.824>three.

239
00:10:27.325 --> 00:10:30.305
<00:10:27.325>But <00:10:27.465>if <00:10:27.605>you <00:10:27.745>look <00:10:27.885>at <00:10:28.025>it <00:10:28.165>from <00:10:28.305>an <00:10:28.445>architectural <00:10:28.585>perspective, <00:10:28.725>so

240
00:10:31.005 --> 00:10:32.065
<00:10:31.005>what's <00:10:31.323>a <00:10:31.641>procedural <00:10:31.959>macro?

241
00:10:32.255 --> 00:10:35.225
<00:10:32.255>Well <00:10:32.488>procedural <00:10:32.721>macro <00:10:32.955>is <00:10:33.188>a <00:10:33.421>rest <00:10:33.655>function

242
00:10:35.655 --> 00:10:37.665
<00:10:35.655>that <00:10:35.935>takes <00:10:36.214>some <00:10:36.495>tokens <00:10:36.775>as <00:10:37.055>input

243
00:10:37.665 --> 00:10:39.265
<00:10:37.665>and <00:10:37.944>returns <00:10:38.224>you <00:10:38.505>some <00:10:38.785>output <00:10:39.064>tokens.

244
00:10:39.645 --> 00:10:41.025
<00:10:39.645>But <00:10:39.893>now <00:10:40.141>we're <00:10:40.390>no <00:10:40.638>longer <00:10:40.887>dealing

245
00:10:41.055 --> 00:10:43.745
<00:10:41.055>with <00:10:41.288>like <00:10:41.521>this <00:10:41.755>special <00:10:41.988>match <00:10:42.221>like <00:10:42.454>syntax

246
00:10:43.745 --> 00:10:45.945
<00:10:43.745>and <00:10:43.945>macro <00:10:44.145>rules <00:10:44.345>is <00:10:44.545>an <00:10:44.745>actual <00:10:44.945>rest <00:10:45.145>function.

247
00:10:46.325 --> 00:10:49.345
<00:10:46.325>Breast <00:10:46.525>functions <00:10:46.725>can <00:10:46.925>do <00:10:47.125>things <00:10:47.325>including <00:10:47.525>side <00:10:47.725>effects.

248
00:10:50.205 --> 00:10:55.105
<00:10:50.205>So <00:10:50.360>a <00:10:50.516>much <00:10:50.671>more <00:10:50.827>helpful <00:10:50.982>or <00:10:51.138>perhaps <00:10:51.293>you <00:10:51.449>know <00:10:51.605>woke.

249
00:10:55.405 --> 00:10:59.105
<00:10:55.405>Uh, <00:10:55.560>frame <00:10:55.716>of <00:10:55.871>reference <00:10:56.027>when <00:10:56.182>looking <00:10:56.338>at <00:10:56.493>procedural <00:10:56.649>markers <00:10:56.805>is

250
00:10:59.105 --> 00:11:01.225
<00:10:59.105>that <00:10:59.305>there <00:10:59.505>are <00:10:59.705>arbitrary <00:10:59.905>code <00:11:00.105>execution <00:11:00.305>that <00:11:00.505>happens

251
00:11:01.285 --> 00:11:04.105
<00:11:01.285>to <00:11:01.518>compile <00:11:01.751>time <00:11:01.985>with <00:11:02.218>a <00:11:02.451>localized <00:11:02.685>input.

252
00:11:05.485 --> 00:11:09.385
<00:11:05.485>Now <00:11:05.625>once <00:11:05.765>you <00:11:05.905>are <00:11:06.045>aware <00:11:06.185>of <00:11:06.325>this <00:11:06.465>possibility, <00:11:06.605>you <00:11:06.745>can <00:11:06.885>start

253
00:11:09.385 --> 00:11:10.705
<00:11:09.385>to <00:11:09.583>think <00:11:09.781>about <00:11:09.979>what <00:11:10.177>you <00:11:10.375>could <00:11:10.573>do.

254
00:11:11.005 --> 00:11:13.105
<00:11:11.005>Uh, <00:11:11.205>one <00:11:11.405>example <00:11:11.605>is <00:11:11.805>you <00:11:12.005>could <00:11:12.205>just <00:11:12.405>save

255
00:11:13.125 --> 00:11:14.225
<00:11:13.125>the <00:11:13.323>macro <00:11:13.521>input <00:11:13.719>to <00:11:13.917>a <00:11:14.115>file.

256
00:11:14.655 --> 00:11:16.475
<00:11:14.655>Pretty <00:11:14.888>reasonable <00:11:15.121>thing <00:11:15.355>to <00:11:15.588>do. <00:11:15.821>Pretty <00:11:16.055>simple.

257
00:11:17.255 --> 00:11:19.035
<00:11:17.255>You <00:11:17.535>could <00:11:17.814>then <00:11:18.095>perform <00:11:18.375>network <00:11:18.655>calls

258
00:11:19.335 --> 00:11:21.315
<00:11:19.335>to <00:11:19.615>do <00:11:19.895>some <00:11:20.175>farther <00:11:20.455>analysis <00:11:20.735>over

259
00:11:21.315 --> 00:11:22.995
<00:11:21.315>what <00:11:21.515>the <00:11:21.715>macro <00:11:21.915>has <00:11:22.115>been <00:11:22.315>passed <00:11:22.515>as <00:11:22.715>input.

260
00:11:23.625 --> 00:11:27.075
<00:11:23.625>This <00:11:23.800>is <00:11:23.975>the <00:11:24.150>principle <00:11:24.325>underneath <00:11:24.500>the <00:11:24.675>SQL <00:11:24.850>X <00:11:25.025>grade

261
00:11:27.595 --> 00:11:29.235
<00:11:27.595>SQL <00:11:27.875>X <00:11:28.155>checks <00:11:28.435>and <00:11:28.715>compile <00:11:28.995>time.

262
00:11:29.255 --> 00:11:30.995
<00:11:29.255>The <00:11:29.535>all <00:11:29.814>your <00:11:30.095>queries <00:11:30.375>are <00:11:30.655>valid

263
00:11:31.335 --> 00:11:34.395
<00:11:31.335>and <00:11:31.475>the <00:11:31.615>way <00:11:31.755>it <00:11:31.895>does <00:11:32.035>it <00:11:32.175>is <00:11:32.315>by <00:11:32.455>issuing <00:11:32.595>prepare <00:11:32.735>statements

264
00:11:34.415 --> 00:11:35.435
<00:11:34.415>to <00:11:34.721>a <00:11:35.026>live <00:11:35.333>database.

265
00:11:35.855 --> 00:11:37.195
<00:11:35.855>So <00:11:36.257>basically <00:11:36.659>central <00:11:37.061>database.

266
00:11:37.335 --> 00:11:39.155
<00:11:37.335>Is <00:11:37.490>this <00:11:37.646>a <00:11:37.801>valid <00:11:37.957>query <00:11:38.112>like <00:11:38.268>can <00:11:38.423>I <00:11:38.579>prepare <00:11:38.735>it?

267
00:11:39.695 --> 00:11:43.395
<00:11:39.695>And <00:11:39.850>if <00:11:40.006>the <00:11:40.161>database <00:11:40.317>says <00:11:40.472>no, <00:11:40.628>then <00:11:40.783>the <00:11:40.939>compilation <00:11:41.095>fails.

268
00:11:43.695 --> 00:11:47.435
<00:11:43.695>So <00:11:43.822>you <00:11:43.949>can <00:11:44.076>be <00:11:44.204>sure <00:11:44.331>that <00:11:44.458>your <00:11:44.585>queries <00:11:44.713>are <00:11:44.840>a <00:11:44.967>valid <00:11:45.095>SQL

269
00:11:47.435 --> 00:11:49.875
<00:11:47.435>and <00:11:47.590>B <00:11:47.746>compatible <00:11:47.901>with <00:11:48.057>the <00:11:48.212>schema <00:11:48.368>that <00:11:48.523>you <00:11:48.679>expect <00:11:48.834>them

270
00:11:49.875 --> 00:11:51.075
<00:11:49.875>to <00:11:50.235>be <00:11:50.595>executed <00:11:50.955>against.

271
00:11:52.855 --> 00:11:55.115
<00:11:52.855>And <00:11:52.995>all <00:11:53.135>of <00:11:53.275>this <00:11:53.415>is <00:11:53.555>very <00:11:53.695>cool <00:11:53.835>but <00:11:53.975>as <00:11:54.115>I <00:11:54.255>remarked

272
00:11:55.115 --> 00:11:57.915
<00:11:55.115>before, <00:11:55.348>you <00:11:55.581>are <00:11:55.815>still <00:11:56.048>working <00:11:56.281>with <00:11:56.515>tokens.

273
00:11:58.915 --> 00:12:00.935
<00:11:58.915>So <00:11:59.089>if <00:11:59.265>you <00:11:59.439>have <00:11:59.615>the <00:11:59.790>SQL <00:11:59.964>X <00:12:00.140>query <00:12:00.314>macro

274
00:12:01.035 --> 00:12:04.255
<00:12:01.035>or <00:12:01.175>just <00:12:01.314>the <00:12:01.454>SQL <00:12:01.594>square <00:12:01.735>query <00:12:01.875>macro, <00:12:02.015>if <00:12:02.155>you <00:12:02.295>pass <00:12:02.435>it,

275
00:12:04.255 --> 00:12:06.295
<00:12:04.255>select <00:12:04.535>start <00:12:04.814>from <00:12:05.095>users <00:12:05.375>all <00:12:05.655>good.

276
00:12:06.675 --> 00:12:07.975
<00:12:06.675>If <00:12:06.967>you <00:12:07.260>do <00:12:07.552>a <00:12:07.845>refactoring

277
00:12:08.155 --> 00:12:11.655
<00:12:08.155>and <00:12:08.329>you <00:12:08.505>extract <00:12:08.680>the <00:12:08.855>query <00:12:09.030>literal <00:12:09.204>into <00:12:09.380>a <00:12:09.555>constant

278
00:12:11.795 --> 00:12:13.535
<00:12:11.795>and <00:12:11.969>then <00:12:12.145>you <00:12:12.319>pass <00:12:12.495>the <00:12:12.670>constant <00:12:12.844>to <00:12:13.020>the <00:12:13.194>macro,

279
00:12:13.765 --> 00:12:14.775
<00:12:13.765>this <00:12:14.068>doesn't <00:12:14.371>work <00:12:14.674>anymore

280
00:12:15.085 --> 00:12:18.615
<00:12:15.085>because <00:12:15.225>the <00:12:15.365>macro <00:12:15.505>has <00:12:15.645>no <00:12:15.785>way <00:12:15.925>to <00:12:16.065>know <00:12:16.205>that <00:12:16.345>the <00:12:16.485>query

281
00:12:19.135 --> 00:12:20.255
<00:12:19.135>identifier <00:12:19.471>that's <00:12:19.807>being <00:12:20.143>passed

282
00:12:20.255 --> 00:12:23.015
<00:12:20.255>as <00:12:20.430>input <00:12:20.605>is <00:12:20.780>actually <00:12:20.955>a <00:12:21.130>constant <00:12:21.305>variable <00:12:21.480>that <00:12:21.655>maps

283
00:12:23.015 --> 00:12:25.135
<00:12:23.015>to <00:12:23.365>a <00:12:23.715>string <00:12:24.064>in <00:12:24.415>particular.

284
00:12:25.805 --> 00:12:28.135
<00:12:25.805>There's <00:12:25.960>no <00:12:26.116>way <00:12:26.271>that <00:12:26.427>you <00:12:26.582>could <00:12:26.738>just <00:12:26.893>ask <00:12:27.049>the <00:12:27.204>compiler

285
00:12:28.435 --> 00:12:30.335
<00:12:28.435>and <00:12:28.668>that's <00:12:28.901>because <00:12:29.135>there's <00:12:29.368>no <00:12:29.601>compile <00:12:29.834>time

286
00:12:30.335 --> 00:12:31.895
<00:12:30.335>reflection <00:12:30.801>API <00:12:31.268>in <00:12:31.735>rust.

287
00:12:32.245 --> 00:12:35.735
<00:12:32.245>There's <00:12:32.372>no <00:12:32.499>way <00:12:32.626>for <00:12:32.754>the <00:12:32.881>macro <00:12:33.008>to <00:12:33.135>go <00:12:33.263>go <00:12:33.390>to <00:12:33.517>the <00:12:33.645>compiler

288
00:12:35.735 --> 00:12:38.455
<00:12:35.735>and <00:12:35.910>say, <00:12:36.085>you <00:12:36.260>know, <00:12:36.435>I <00:12:36.610>have <00:12:36.785>this <00:12:36.960>query <00:12:37.135>identifier,

289
00:12:38.675 --> 00:12:41.855
<00:12:38.675>is <00:12:38.802>this <00:12:38.929>a <00:12:39.056>variable <00:12:39.184>Or <00:12:39.311>even <00:12:39.438>better <00:12:39.565>can <00:12:39.693>you <00:12:39.820>gimme <00:12:39.947>the <00:12:40.074>value

290
00:12:41.995 --> 00:12:43.895
<00:12:41.995>of <00:12:42.275>this <00:12:42.555>concept <00:12:42.835>just <00:12:43.115>not <00:12:43.395>available.

291
00:12:44.955 --> 00:12:48.375
<00:12:44.955>Now <00:12:45.130>some <00:12:45.305>of <00:12:45.480>you <00:12:45.655>might <00:12:45.830>might <00:12:46.005>be <00:12:46.180>the <00:12:46.355>frame

292
00:12:48.415 --> 00:12:50.295
<00:12:48.415>of <00:12:48.694>mind <00:12:48.974>is <00:12:49.255>like <00:12:49.535>think <00:12:49.814>peaker,

293
00:12:50.555 --> 00:12:53.015
<00:12:50.555>you <00:12:50.788>know <00:12:51.021>the <00:12:51.255>compiler <00:12:51.488>is <00:12:51.721>nothing <00:12:51.954>special,

294
00:12:53.205 --> 00:12:55.295
<00:12:53.205>just <00:12:53.380>a <00:12:53.555>rust <00:12:53.730>library, <00:12:53.905>we <00:12:54.080>can <00:12:54.255>just <00:12:54.430>use <00:12:54.605>it.

295
00:12:56.045 --> 00:13:00.135
<00:12:56.045>Well <00:12:56.161>the <00:12:56.278>compiler <00:12:56.395>is <00:12:56.511>kind <00:12:56.628>of <00:12:56.745>a <00:12:56.861>big <00:12:56.978>library <00:12:57.094>you <00:12:57.211>can <00:12:57.328>see <00:12:57.444>there

296
00:13:00.275 --> 00:13:03.695
<00:13:00.275>as <00:13:00.430>kind <00:13:00.586>of <00:13:00.741>large <00:13:00.897>and <00:13:01.052>the <00:13:01.208>API <00:13:01.363>surface <00:13:01.519>is <00:13:01.675>massive

297
00:13:04.035 --> 00:13:06.415
<00:13:04.035>and <00:13:04.314>that's <00:13:04.594>absolutely <00:13:04.875>no <00:13:05.155>stability <00:13:05.435>guarantees.

298
00:13:07.205 --> 00:13:11.215
<00:13:07.205>Rust, <00:13:07.360>rust <00:13:07.516>C <00:13:07.671>cargo, <00:13:07.827>like <00:13:07.982>the <00:13:08.138>artifact <00:13:08.293>that <00:13:08.449>you <00:13:08.605>use,

299
00:13:11.665 --> 00:13:13.455
<00:13:11.665>those <00:13:12.365>have <00:13:13.064>committed

300
00:13:13.555 --> 00:13:16.575
<00:13:13.555>to <00:13:13.710>backward <00:13:13.866>compatibility <00:13:14.021>like <00:13:14.177>it's <00:13:14.332>not <00:13:14.488>gonna <00:13:14.643>be <00:13:14.799>a <00:13:14.954>2.0

301
00:13:16.575 --> 00:13:19.935
<00:13:16.575>release <00:13:16.775>but <00:13:16.975>the <00:13:17.175>internals <00:13:17.375>that's <00:13:17.575>completely <00:13:17.775>different <00:13:17.975>story.

302
00:13:20.245 --> 00:13:24.415
<00:13:20.245>They <00:13:20.385>are <00:13:20.525>used <00:13:20.665>and <00:13:20.805>designed <00:13:20.945>for <00:13:21.085>the <00:13:21.225>purpose <00:13:21.365>of <00:13:21.505>the <00:13:21.645>uh,

303
00:13:24.715 --> 00:13:26.615
<00:13:24.715>EE <00:13:24.995>developers <00:13:25.275>and <00:13:25.555>if <00:13:25.835>they <00:13:26.115>need

304
00:13:26.615 --> 00:13:27.975
<00:13:26.615>to <00:13:26.819>change <00:13:27.023>an <00:13:27.227>API, <00:13:27.431>they'll <00:13:27.635>change <00:13:27.839>it.

305
00:13:28.395 --> 00:13:31.615
<00:13:28.395>So <00:13:28.535>if <00:13:28.675>you <00:13:28.814>try <00:13:28.954>to <00:13:29.095>consume <00:13:29.235>it <00:13:29.375>as <00:13:29.515>an <00:13:29.655>external <00:13:29.795>user,

306
00:13:31.995 --> 00:13:34.855
<00:13:31.995>you're <00:13:32.150>gonna <00:13:32.306>spend <00:13:32.461>a <00:13:32.617>lot <00:13:32.772>of <00:13:32.928>your <00:13:33.083>cycles <00:13:33.239>just <00:13:33.395>trying

307
00:13:34.955 --> 00:13:36.535
<00:13:34.955>to <00:13:35.188>keep <00:13:35.421>up <00:13:35.655>with <00:13:35.888>the <00:13:36.121>breaking <00:13:36.355>changes,

308
00:13:37.105 --> 00:13:38.895
<00:13:37.105>which <00:13:37.260>you <00:13:37.416>know <00:13:37.571>is <00:13:37.727>not <00:13:37.882>a <00:13:38.038>great <00:13:38.193>place <00:13:38.349>to <00:13:38.505>be.

309
00:13:39.915 --> 00:13:42.095
<00:13:39.915>And <00:13:40.070>so <00:13:40.226>you <00:13:40.381>might <00:13:40.537>ask, <00:13:40.692>is <00:13:40.848>there <00:13:41.003>a <00:13:41.159>better <00:13:41.314>way?

310
00:13:42.355 --> 00:13:44.975
<00:13:42.355>And <00:13:42.510>you <00:13:42.666>know <00:13:42.821>the <00:13:42.977>title <00:13:43.132>was <00:13:43.288>kind <00:13:43.443>of <00:13:43.599>a <00:13:43.755>giveaway.

311
00:13:45.115 --> 00:13:47.135
<00:13:45.115>The <00:13:45.315>better <00:13:45.515>way <00:13:45.715>is <00:13:45.915>Rust <00:13:46.115>Doc's <00:13:46.315>J <00:13:46.515>format.

312
00:13:48.515 --> 00:13:51.575
<00:13:48.515>Now <00:13:48.655>if <00:13:48.795>I <00:13:48.935>say <00:13:49.074>RAs <00:13:49.215>doc, <00:13:49.355>where <00:13:49.495>does <00:13:49.635>your <00:13:49.775>mind <00:13:49.915>go?

313
00:13:52.085 --> 00:13:55.295
<00:13:52.085>Mine <00:13:52.240>personally <00:13:52.396>gets <00:13:52.551>to <00:13:52.707>this <00:13:52.862>Rust <00:13:53.018>Dock <00:13:53.173>is <00:13:53.329>the <00:13:53.485>tool

314
00:13:55.325 --> 00:13:58.655
<00:13:55.325>that <00:13:55.500>you <00:13:55.675>use <00:13:55.850>in <00:13:56.025>Rust <00:13:56.200>to <00:13:56.375>get <00:13:56.550>auto-generated <00:13:56.725>documentation.

315
00:13:58.755 --> 00:14:00.575
<00:13:58.755>An <00:13:58.988>API <00:13:59.221>reference <00:13:59.455>basically <00:13:59.688>for <00:13:59.921>your <00:14:00.155>project.

316
00:14:01.225 --> 00:14:04.135
<00:14:01.225>Every <00:14:01.458>create <00:14:01.691>that <00:14:01.925>gets <00:14:02.158>released <00:14:02.391>in <00:14:02.625>rust

317
00:14:04.355 --> 00:14:08.095
<00:14:04.355>to <00:14:04.530>the <00:14:04.705>registry <00:14:04.880>automatically <00:14:05.055>gets <00:14:05.230>a <00:14:05.405>corresponding <00:14:05.580>page <00:14:05.755>in

318
00:14:08.095 --> 00:14:10.535
<00:14:08.095>docs <00:14:08.270>of <00:14:08.445>the <00:14:08.620>rest <00:14:08.795>where <00:14:08.970>the <00:14:09.145>documentation <00:14:09.320>is <00:14:09.495>hosted.

319
00:14:11.075 --> 00:14:13.495
<00:14:11.075>And <00:14:11.215>this <00:14:11.355>is <00:14:11.495>very, <00:14:11.635>very <00:14:11.775>nice <00:14:11.915>for <00:14:12.055>a <00:14:12.195>variety <00:14:12.335>of <00:14:12.475>reasons.

320
00:14:13.685 --> 00:14:16.815
<00:14:13.685>Like <00:14:13.812>it's <00:14:13.939>very <00:14:14.066>easy <00:14:14.194>to <00:14:14.321>write <00:14:14.448>docs <00:14:14.575>so <00:14:14.703>people <00:14:14.830>write <00:14:14.957>more <00:14:15.084>docs

321
00:14:16.815 --> 00:14:18.015
<00:14:16.815>so <00:14:17.085>creates <00:14:17.355>a <00:14:17.625>better <00:14:17.895>documented.

322
00:14:18.405 --> 00:14:20.095
<00:14:18.405>Also <00:14:18.685>docs <00:14:18.964>have <00:14:19.245>a <00:14:19.525>standard <00:14:19.805>structures

323
00:14:20.355 --> 00:14:21.615
<00:14:20.355>so <00:14:20.638>when <00:14:20.922>you're <00:14:21.205>looking <00:14:21.489>at

324
00:14:21.695 --> 00:14:23.215
<00:14:21.695>API <00:14:21.968>reference <00:14:22.242>they'll <00:14:22.515>look <00:14:22.789>the <00:14:23.063>same.

325
00:14:23.595 --> 00:14:25.455
<00:14:23.595>And <00:14:23.795>you <00:14:23.995>got <00:14:24.195>that <00:14:24.395>kind <00:14:24.595>of <00:14:24.795>get <00:14:24.995>trained

326
00:14:26.075 --> 00:14:27.135
<00:14:26.075>on <00:14:26.313>where <00:14:26.552>to <00:14:26.790>find <00:14:27.029>things.

327
00:14:27.395 --> 00:14:29.055
<00:14:27.395>Uh, <00:14:27.628>as <00:14:27.861>Stefan <00:14:28.095>as <00:14:28.328>Paul <00:14:28.561>was <00:14:28.795>mentioning

328
00:14:29.055 --> 00:14:31.535
<00:14:29.055>before, <00:14:29.182>this <00:14:29.309>is <00:14:29.436>one <00:14:29.564>of <00:14:29.691>the <00:14:29.818>key <00:14:29.945>skills <00:14:30.073>I <00:14:30.200>think <00:14:30.327>people <00:14:30.454>need

329
00:14:31.535 --> 00:14:33.015
<00:14:31.535>to <00:14:31.757>acquire <00:14:31.978>when <00:14:32.201>they <00:14:32.423>start <00:14:32.645>with <00:14:32.867>rest.

330
00:14:33.675 --> 00:14:35.615
<00:14:33.675>You <00:14:33.875>need <00:14:34.074>to <00:14:34.275>get <00:14:34.474>you <00:14:34.675>the <00:14:34.875>finding <00:14:35.074>stuff

331
00:14:35.715 --> 00:14:39.175
<00:14:35.715>inside <00:14:35.995>the <00:14:36.275>autogenerated <00:14:36.555>API <00:14:36.835>reference <00:14:37.115>nonetheless.

332
00:14:39.595 --> 00:14:41.895
<00:14:39.595>If <00:14:39.770>we <00:14:39.945>look <00:14:40.120>at <00:14:40.295>it <00:14:40.470>again <00:14:40.645>from <00:14:40.820>an <00:14:40.995>architectural

333
00:14:41.895 --> 00:14:43.375
<00:14:41.895>perspective, <00:14:42.561>what's <00:14:43.227>Sdoc?

334
00:14:43.405 --> 00:14:45.535
<00:14:43.405>It's <00:14:43.579>a <00:14:43.755>RAs <00:14:43.930>program <00:14:44.105>that <00:14:44.280>takes <00:14:44.454>the <00:14:44.630>RA <00:14:44.805>creator's

335
00:14:45.535 --> 00:14:46.695
<00:14:45.535>input <00:14:45.795>and <00:14:46.057>gives <00:14:46.318>you <00:14:46.579>HTML.

336
00:14:47.555 --> 00:14:50.575
<00:14:47.555>Now <00:14:47.755>we <00:14:47.954>could <00:14:48.155>make <00:14:48.354>an <00:14:48.555>adapter <00:14:48.755>that <00:14:48.954>instead

337
00:14:50.575 --> 00:14:52.485
<00:14:50.575>of <00:14:50.808>giving <00:14:51.041>us <00:14:51.275>HTML <00:14:51.508>gives <00:14:51.741>us <00:14:51.975>js.

338
00:14:53.385 --> 00:14:54.605
<00:14:53.385>And <00:14:53.659>why <00:14:53.934>is <00:14:54.208>this <00:14:54.483>interesting?

339
00:14:54.715 --> 00:14:56.965
<00:14:54.715>Well <00:14:54.948>it's <00:14:55.181>the <00:14:55.415>same <00:14:55.648>information <00:14:55.881>of <00:14:56.115>DSS

340
00:14:57.105 --> 00:14:58.965
<00:14:57.105>but <00:14:57.338>it's <00:14:57.571>in <00:14:57.805>a <00:14:58.038>machine <00:14:58.271>parable <00:14:58.505>format

341
00:14:59.945 --> 00:15:02.405
<00:14:59.945>and <00:15:00.225>this <00:15:00.505>makes <00:15:00.785>a <00:15:01.065>big <00:15:01.345>difference

342
00:15:02.405 --> 00:15:03.645
<00:15:02.405>because <00:15:02.963>some <00:15:03.521>of

343
00:15:03.645 --> 00:15:06.205
<00:15:03.645>that <00:15:03.819>information <00:15:03.995>you <00:15:04.170>know <00:15:04.345>in <00:15:04.520>DSS <00:15:04.694>is <00:15:04.870>very <00:15:05.045>useful.

344
00:15:06.665 --> 00:15:09.405
<00:15:06.665>You <00:15:06.865>get <00:15:07.064>these <00:15:07.265>signatures <00:15:07.464>of <00:15:07.665>functions, <00:15:07.865>the <00:15:08.064>signatures

345
00:15:09.445 --> 00:15:12.485
<00:15:09.445>and <00:15:09.585>methods <00:15:09.725>you <00:15:09.865>get <00:15:10.005>the <00:15:10.145>definition <00:15:10.285>of <00:15:10.425>the <00:15:10.565>types, <00:15:10.705>the <00:15:10.845>fields

346
00:15:12.665 --> 00:15:15.005
<00:15:12.665>of <00:15:13.015>those <00:15:13.365>types, <00:15:13.714>trade <00:15:14.064>definitions,

347
00:15:15.015 --> 00:15:17.005
<00:15:15.015>trade <00:15:15.248>implementations, <00:15:15.481>like <00:15:15.715>there's <00:15:15.948>a <00:15:16.181>lot <00:15:16.415>there.

348
00:15:17.305 --> 00:15:19.165
<00:15:17.305>But <00:15:17.460>passing <00:15:17.616>it <00:15:17.771>out <00:15:17.927>of <00:15:18.082>HT <00:15:18.238>ML <00:15:18.393>is <00:15:18.549>very <00:15:18.704>fragile

349
00:15:19.885 --> 00:15:22.085
<00:15:19.885>'cause <00:15:20.060>HTML <00:15:20.235>has <00:15:20.410>not <00:15:20.585>been <00:15:20.760>designed <00:15:20.935>to <00:15:21.110>be <00:15:21.285>stable,

350
00:15:22.195 --> 00:15:24.045
<00:15:22.195>it's <00:15:22.395>been <00:15:22.595>designed <00:15:22.795>to <00:15:22.995>look <00:15:23.195>nice, <00:15:23.395>you <00:15:23.595>know,

351
00:15:24.045 --> 00:15:25.245
<00:15:24.045>and <00:15:24.261>be <00:15:24.477>usable <00:15:24.693>in <00:15:24.909>the <00:15:25.125>browser.

352
00:15:25.665 --> 00:15:28.605
<00:15:25.665>So <00:15:25.839>instead <00:15:26.015>of <00:15:26.189>doing <00:15:26.365>scraping, <00:15:26.540>if <00:15:26.714>we <00:15:26.890>have <00:15:27.064>JSN

353
00:15:28.605 --> 00:15:31.605
<00:15:28.605>with <00:15:28.745>a <00:15:28.885>schema <00:15:29.025>is <00:15:29.165>actually <00:15:29.305>much, <00:15:29.445>much <00:15:29.585>easier <00:15:29.725>to <00:15:29.865>consume <00:15:30.005>this.

354
00:15:32.305 --> 00:15:36.125
<00:15:32.305>And <00:15:32.460>RestUp <00:15:32.616>JSN <00:15:32.771>is <00:15:32.927>not <00:15:33.082>yet <00:15:33.238>unstable, <00:15:33.393>it's <00:15:33.549>on <00:15:33.704>nightly

355
00:15:36.345 --> 00:15:38.805
<00:15:36.345>and <00:15:36.500>it <00:15:36.656>was <00:15:36.811>introduced <00:15:36.967>in <00:15:37.122>an <00:15:37.278>RFC <00:15:37.433>from <00:15:37.589>June, <00:15:37.745>2020.

356
00:15:39.385 --> 00:15:41.485
<00:15:39.385>The <00:15:39.560>good <00:15:39.735>thing <00:15:39.910>though <00:15:40.085>is <00:15:40.260>that <00:15:40.435>it's <00:15:40.610>pretty <00:15:40.785>usable.

357
00:15:41.555 --> 00:15:43.765
<00:15:41.555>Like <00:15:41.755>it's <00:15:41.954>not <00:15:42.155>stable <00:15:42.354>but <00:15:42.555>it's <00:15:42.755>fairly <00:15:42.954>stable.

358
00:15:43.795 --> 00:15:45.165
<00:15:43.795>There's <00:15:44.041>not <00:15:44.288>a <00:15:44.534>lot <00:15:44.781>of <00:15:45.028>bugs

359
00:15:45.545 --> 00:15:47.805
<00:15:45.545>and <00:15:45.700>it's <00:15:45.856>currently <00:15:46.011>being <00:15:46.167>used <00:15:46.322>in <00:15:46.478>a <00:15:46.633>variety <00:15:46.789>of <00:15:46.944>things.

360
00:15:48.775 --> 00:15:50.035
<00:15:48.775>You <00:15:49.001>can <00:15:49.228>try <00:15:49.455>it <00:15:49.682>out <00:15:49.909>yourself.

361
00:15:50.375 --> 00:15:53.355
<00:15:50.375>Uh, <00:15:50.530>so <00:15:50.686>you <00:15:50.841>go <00:15:50.997>cargo <00:15:51.152>plus <00:15:51.308>nightly <00:15:51.463>to <00:15:51.619>tell <00:15:51.775>cargo

362
00:15:53.355 --> 00:15:56.075
<00:15:53.355>to <00:15:53.510>use <00:15:53.666>the <00:15:53.821>nightly <00:15:53.977>tool <00:15:54.132>chain, <00:15:54.288>then <00:15:54.443>you <00:15:54.599>go <00:15:54.755>OC,

363
00:15:56.475 --> 00:15:58.435
<00:15:56.475>I <00:15:56.650>wanna <00:15:56.825>let's <00:15:57.000>say <00:15:57.175>use <00:15:57.350>OC <00:15:57.525>on <00:15:57.700>this <00:15:57.875>library

364
00:15:58.855 --> 00:16:00.115
<00:15:58.855>and <00:15:59.081>I <00:15:59.308>wanna <00:15:59.535>output <00:15:59.762>from <00:15:59.989>adjacent

365
00:16:00.335 --> 00:16:02.835
<00:16:00.335>and <00:16:00.490>you <00:16:00.646>need <00:16:00.801>to <00:16:00.957>pass <00:16:01.112>the <00:16:01.268>dash <00:16:01.423>Z <00:16:01.579>unstable <00:16:01.735>option

366
00:16:02.895 --> 00:16:04.635
<00:16:02.895>to <00:16:03.069>tell <00:16:03.245>cargo <00:16:03.420>yo <00:16:03.595>I <00:16:03.770>know <00:16:03.944>what <00:16:04.120>I'm <00:16:04.295>doing.

367
00:16:04.735 --> 00:16:09.035
<00:16:04.735>Let <00:16:04.890>me <00:16:05.046>use <00:16:05.201>the <00:16:05.357>inable <00:16:05.512>stuff <00:16:05.668>to <00:16:05.823>get <00:16:05.979>a <00:16:06.135>feeling

368
00:16:09.055 --> 00:16:10.155
<00:16:09.055>for <00:16:09.302>what <00:16:09.550>this <00:16:09.797>looks <00:16:10.045>like.

369
00:16:10.365 --> 00:16:11.955
<00:16:10.365>Let's <00:16:10.598>go <00:16:10.831>and <00:16:11.065>look <00:16:11.298>at <00:16:11.531>an <00:16:11.765>example.

370
00:16:12.255 --> 00:16:13.715
<00:16:12.255>I'm <00:16:12.442>gonna <00:16:12.630>use <00:16:12.818>a <00:16:13.005>STR <00:16:13.193>from <00:16:13.381>a <00:16:13.569>creative

371
00:16:13.715 --> 00:16:14.915
<00:16:13.715>of <00:16:13.985>mine <00:16:14.255>called <00:16:14.525>Cargo <00:16:14.795>Chef.

372
00:16:15.825 --> 00:16:17.555
<00:16:15.825>This <00:16:16.105>STR <00:16:16.385>is <00:16:16.665>called <00:16:16.945>Target <00:16:17.225>arcs.

373
00:16:17.735 --> 00:16:18.915
<00:16:17.735>It <00:16:18.000>is <00:16:18.266>a <00:16:18.531>public <00:16:18.797>STR

374
00:16:18.915 --> 00:16:21.315
<00:16:18.915>and <00:16:19.055>it <00:16:19.194>is <00:16:19.334>fields, <00:16:19.474>they're <00:16:19.615>all <00:16:19.755>bullens <00:16:19.895>and <00:16:20.035>they're <00:16:20.175>all <00:16:20.314>public.

375
00:16:22.615 --> 00:16:25.595
<00:16:22.615>If <00:16:22.790>you <00:16:22.965>look <00:16:23.140>at <00:16:23.315>the <00:16:23.490>corresponding <00:16:23.665>representation <00:16:23.840>in <00:16:24.015>Redoc

376
00:16:25.775 --> 00:16:26.835
<00:16:25.775>jsn, <00:16:25.965>this <00:16:26.156>is <00:16:26.347>what <00:16:26.538>you <00:16:26.729>see.

377
00:16:27.025 --> 00:16:30.715
<00:16:27.025>There's <00:16:27.180>an <00:16:27.336>ID <00:16:27.491>which <00:16:27.647>is <00:16:27.802>unique <00:16:27.958>uniquely <00:16:28.113>identifies <00:16:28.269>these <00:16:28.425>item

378
00:16:31.015 --> 00:16:32.955
<00:16:31.015>inside <00:16:31.365>the <00:16:31.715>larger <00:16:32.064>JSN <00:16:32.415>document.

379
00:16:33.455 --> 00:16:36.075
<00:16:33.455>Now <00:16:33.630>you <00:16:33.805>have <00:16:33.980>a <00:16:34.155>create <00:16:34.330>identifier <00:16:34.505>credit <00:16:34.680>identifier <00:16:34.855>set

380
00:16:36.075 --> 00:16:40.235
<00:16:36.075>to <00:16:36.202>zero <00:16:36.329>year <00:16:36.456>zero <00:16:36.584>means <00:16:36.711>this <00:16:36.838>item <00:16:36.965>was <00:16:37.093>defined <00:16:37.220>in <00:16:37.347>the <00:16:37.475>create

381
00:16:40.495 --> 00:16:43.115
<00:16:40.495>you <00:16:40.670>are <00:16:40.845>generated <00:16:41.020>in <00:16:41.195>the <00:16:41.370>documentation <00:16:41.545>for <00:16:41.720>this <00:16:41.895>is

382
00:16:43.115 --> 00:16:44.995
<00:16:43.115>because <00:16:43.348>design <00:16:43.581>was <00:16:43.815>defining <00:16:44.048>in <00:16:44.281>cargo <00:16:44.515>chef

383
00:16:45.095 --> 00:16:47.675
<00:16:45.095>and <00:16:45.250>I <00:16:45.406>was <00:16:45.561>generating <00:16:45.717>the <00:16:45.872>OG <00:16:46.028>chazen <00:16:46.183>for <00:16:46.339>cargo <00:16:46.495>chef.

384
00:16:48.255 --> 00:16:50.635
<00:16:48.255>If <00:16:48.410>this <00:16:48.566>was <00:16:48.721>an <00:16:48.877>item <00:16:49.032>from <00:16:49.188>a <00:16:49.343>third <00:16:49.499>party <00:16:49.655>crate,

385
00:16:50.865 --> 00:16:53.275
<00:16:50.865>this <00:16:51.040>would <00:16:51.215>be <00:16:51.390>1, <00:16:51.565>2, <00:16:51.740>3, <00:16:51.915>4, <00:16:52.090>5, <00:16:52.265>whatever.

386
00:16:53.615 --> 00:16:55.875
<00:16:53.615>And <00:16:53.770>there's <00:16:53.926>a <00:16:54.081>dictionary <00:16:54.237>at <00:16:54.392>the <00:16:54.548>bottom <00:16:54.703>of <00:16:54.859>the <00:16:55.015>document

387
00:16:55.875 --> 00:16:59.995
<00:16:55.875>that <00:16:56.015>tells <00:16:56.155>you <00:16:56.295>create <00:16:56.435>ID <00:16:56.575>one <00:16:56.715>is <00:16:56.855>actually <00:16:56.995>hyper <00:16:57.135>for <00:16:57.275>example.

388
00:17:00.625 --> 00:17:03.115
<00:17:00.625>Then <00:17:00.800>we <00:17:00.975>got <00:17:01.150>the <00:17:01.325>name <00:17:01.500>target <00:17:01.675>arc, <00:17:01.850>the <00:17:02.025>visibility

389
00:17:03.615 --> 00:17:05.435
<00:17:03.615>and <00:17:03.790>then <00:17:03.965>you <00:17:04.140>have <00:17:04.315>a <00:17:04.490>switch <00:17:04.665>which <00:17:04.839>is <00:17:05.015>kind

390
00:17:05.705 --> 00:17:07.795
<00:17:05.704>because <00:17:05.905>you <00:17:06.105>can <00:17:06.304>have <00:17:06.504>different <00:17:06.704>types <00:17:06.905>of <00:17:07.105>things

391
00:17:07.815 --> 00:17:10.875
<00:17:07.815>inside <00:17:08.048>Thera <00:17:08.281>documentation, <00:17:08.515>this <00:17:08.748>is <00:17:08.981>kind <00:17:09.215>struct.

392
00:17:11.215 --> 00:17:13.555
<00:17:11.214>And <00:17:11.370>then <00:17:11.526>based <00:17:11.681>on <00:17:11.837>the <00:17:11.992>kind, <00:17:12.148>you <00:17:12.303>have <00:17:12.459>different <00:17:12.615>information

393
00:17:13.555 --> 00:17:15.475
<00:17:13.555>inside <00:17:13.788>dinner <00:17:14.021>and <00:17:14.255>you <00:17:14.488>know <00:17:14.721>you <00:17:14.955>also

394
00:17:15.475 --> 00:17:16.515
<00:17:15.474>have <00:17:15.709>different <00:17:15.943>structs <00:17:16.177>in <00:17:16.411>rust.

395
00:17:16.625 --> 00:17:19.115
<00:17:16.625>Structs <00:17:16.780>can <00:17:16.936>be <00:17:17.091>units, <00:17:17.247>STR <00:17:17.402>can <00:17:17.558>be <00:17:17.713>two <00:17:17.869>post <00:17:18.025>trucks

396
00:17:19.135 --> 00:17:20.595
<00:17:19.135>and <00:17:19.397>they <00:17:19.660>can <00:17:19.923>be <00:17:20.186>plain <00:17:20.449>strikes.

397
00:17:20.645 --> 00:17:22.235
<00:17:20.645>Plain <00:17:20.925>strikes <00:17:21.204>are <00:17:21.484>STRs <00:17:21.764>with <00:17:22.045>fields.

398
00:17:22.885 --> 00:17:25.475
<00:17:22.885>These <00:17:23.118>are <00:17:23.351>structured <00:17:23.585>fields <00:17:23.818>with <00:17:24.051>named <00:17:24.285>fields.

399
00:17:25.815 --> 00:17:28.315
<00:17:25.815>And <00:17:25.990>so <00:17:26.165>the <00:17:26.340>inner <00:17:26.515>kind <00:17:26.690>is <00:17:26.865>set <00:17:27.040>to <00:17:27.215>plane

400
00:17:28.615 --> 00:17:30.875
<00:17:28.615>and <00:17:28.731>then <00:17:28.848>you <00:17:28.965>get <00:17:29.081>the <00:17:29.198>fields <00:17:29.315>and <00:17:29.431>you <00:17:29.548>don't <00:17:29.665>get <00:17:29.781>the <00:17:29.898>fields <00:17:30.015>in

401
00:17:30.875 --> 00:17:32.675
<00:17:30.875>line, <00:17:31.075>you <00:17:31.275>get <00:17:31.475>an <00:17:31.675>ID <00:17:31.875>to <00:17:32.075>those <00:17:32.275>fields.

402
00:17:33.295 --> 00:17:35.035
<00:17:33.295>And <00:17:33.575>then <00:17:33.855>there's <00:17:34.135>whole <00:17:34.415>other <00:17:34.695>bunch

403
00:17:35.035 --> 00:17:36.315
<00:17:35.035>of <00:17:35.419>document <00:17:35.803>of <00:17:36.187>information.

404
00:17:36.315 --> 00:17:39.315
<00:17:36.315>So <00:17:36.455>you <00:17:36.595>get <00:17:36.735>genetics. <00:17:36.875>This <00:17:37.015>is <00:17:37.155>not <00:17:37.295>genetics <00:17:37.435>so <00:17:37.575>that's <00:17:37.715>empty.

405
00:17:39.655 --> 00:17:41.995
<00:17:39.655>You <00:17:39.855>get <00:17:40.055>a <00:17:40.254>link <00:17:40.455>to <00:17:40.655>every <00:17:40.855>single <00:17:41.055>implementation,

406
00:17:42.185 --> 00:17:46.075
<00:17:42.185>both <00:17:42.360>implementation <00:17:42.534>blocks <00:17:42.710>that <00:17:42.885>are <00:17:43.060>ignorant <00:17:43.235>to <00:17:43.409>the <00:17:43.585>types.

407
00:17:46.215 --> 00:17:50.215
<00:17:46.215>So <00:17:46.370>in <00:17:46.526>target <00:17:46.681>arcs, <00:17:46.837>open, <00:17:46.992>Cali <00:17:47.148>Braceis, <00:17:47.303>pub <00:17:47.459>function <00:17:47.615>new

408
00:17:50.915 --> 00:17:53.135
<00:17:50.915>as <00:17:51.148>well <00:17:51.381>as <00:17:51.615>imp <00:17:51.848>uh, <00:17:52.081>implementation <00:17:52.315>blocks,

409
00:17:53.145 --> 00:17:54.815
<00:17:53.145>which <00:17:53.611>are <00:17:54.078>trade <00:17:54.545>implementations.

410
00:17:54.995 --> 00:17:57.335
<00:17:54.995>So <00:17:55.195>I'm <00:17:55.395>gonna <00:17:55.594>implement <00:17:55.794>default <00:17:55.995>for <00:17:56.195>target <00:17:56.395>X.

411
00:17:57.395 --> 00:18:00.615
<00:17:57.395>That's <00:17:57.570>gonna <00:17:57.745>be <00:17:57.920>there. <00:17:58.095>You <00:17:58.270>can <00:17:58.445>follow <00:17:58.620>those <00:17:58.795>IDs.

412
00:18:00.835 --> 00:18:02.415
<00:18:00.835>Uh, <00:18:01.010>so <00:18:01.185>if <00:18:01.360>we <00:18:01.535>follow <00:18:01.710>one <00:18:01.885>of <00:18:02.060>the <00:18:02.235>fields

413
00:18:02.595 --> 00:18:03.855
<00:18:02.595>for <00:18:02.821>example, <00:18:03.048>what <00:18:03.275>do <00:18:03.502>we <00:18:03.729>see?

414
00:18:04.165 --> 00:18:06.735
<00:18:04.165>Once <00:18:04.365>again <00:18:04.565>a <00:18:04.764>unique <00:18:04.965>ID <00:18:05.165>credit <00:18:05.365>is <00:18:05.565>zero.

415
00:18:06.805 --> 00:18:08.095
<00:18:06.805>This <00:18:07.037>belongs <00:18:07.269>to <00:18:07.501>the <00:18:07.733>same <00:18:07.966>crate.

416
00:18:08.315 --> 00:18:10.255
<00:18:08.315>You <00:18:08.490>get <00:18:08.665>the <00:18:08.840>name <00:18:09.015>of <00:18:09.190>the <00:18:09.365>field, <00:18:09.540>the <00:18:09.715>visibility,

417
00:18:10.595 --> 00:18:12.255
<00:18:10.595>and <00:18:10.828>once <00:18:11.061>again <00:18:11.295>there's <00:18:11.528>a <00:18:11.761>kind <00:18:11.995>switch.

418
00:18:12.645 --> 00:18:15.335
<00:18:12.645>This <00:18:12.878>time <00:18:13.111>is <00:18:13.345>abstract, <00:18:13.578>it's <00:18:13.811>abstract <00:18:14.045>field.

419
00:18:16.235 --> 00:18:17.535
<00:18:16.235>And <00:18:16.429>then <00:18:16.625>inside <00:18:16.820>you <00:18:17.015>get <00:18:17.210>the <00:18:17.405>type.

420
00:18:17.885 --> 00:18:19.895
<00:18:17.885>This <00:18:18.060>case <00:18:18.235>it's <00:18:18.410>a <00:18:18.585>bullion, <00:18:18.760>so <00:18:18.935>it's <00:18:19.110>a <00:18:19.285>primitive.

421
00:18:20.995 --> 00:18:24.615
<00:18:20.995>Now <00:18:21.150>none <00:18:21.306>of <00:18:21.461>this <00:18:21.617>is <00:18:21.772>something <00:18:21.928>you <00:18:22.083>actually <00:18:22.239>see, <00:18:22.395>uh,

422
00:18:24.615 --> 00:18:26.775
<00:18:24.615>because <00:18:24.815>there's <00:18:25.015>a <00:18:25.215>crate <00:18:25.415>called <00:18:25.615>rust <00:18:25.815>dock <00:18:26.015>types,

423
00:18:26.865 --> 00:18:29.535
<00:18:26.865>which <00:18:27.065>is <00:18:27.265>maintained <00:18:27.465>in <00:18:27.665>three <00:18:27.865>alongside <00:18:28.065>Rust <00:18:28.265>dock,

424
00:18:29.985 --> 00:18:31.855
<00:18:29.985>which <00:18:30.334>gives <00:18:30.685>you <00:18:31.034>rust <00:18:31.385>types

425
00:18:31.855 --> 00:18:33.695
<00:18:31.855>that <00:18:32.088>you <00:18:32.321>can <00:18:32.555>parse <00:18:32.788>the <00:18:33.021>Jason <00:18:33.255>into.

426
00:18:33.995 --> 00:18:35.095
<00:18:33.995>So <00:18:34.242>this <00:18:34.490>is <00:18:34.737>the <00:18:34.985>kind

427
00:18:35.095 --> 00:18:36.695
<00:18:35.095>of <00:18:35.295>stuff <00:18:35.495>you're <00:18:35.695>actually <00:18:35.895>gonna <00:18:36.095>be <00:18:36.295>working <00:18:36.495>with.

428
00:18:36.955 --> 00:18:38.055
<00:18:36.955>You <00:18:37.284>just <00:18:37.615>do <00:18:37.945>parse

429
00:18:38.475 --> 00:18:40.775
<00:18:38.475>and <00:18:38.708>you <00:18:38.941>get <00:18:39.175>parts, <00:18:39.408>you <00:18:39.641>get <00:18:39.875>trucks,

430
00:18:40.835 --> 00:18:41.855
<00:18:40.835>you <00:18:41.064>get <00:18:41.294>everything <00:18:41.523>you <00:18:41.753>need.

431
00:18:42.275 --> 00:18:44.175
<00:18:42.275>And <00:18:42.475>this <00:18:42.675>should <00:18:42.875>be <00:18:43.075>fairly <00:18:43.275>familiar <00:18:43.475>for <00:18:43.675>folks

432
00:18:44.325 --> 00:18:46.495
<00:18:44.325>that <00:18:44.525>have <00:18:44.725>been <00:18:44.925>working <00:18:45.125>with <00:18:45.325>Seen <00:18:45.525>for <00:18:45.725>example,

433
00:18:46.505 --> 00:18:48.215
<00:18:46.505>which <00:18:46.971>has <00:18:47.438>similar <00:18:47.905>presentations.

434
00:18:50.635 --> 00:18:52.815
<00:18:50.635>Now <00:18:50.835>the <00:18:51.035>other <00:18:51.235>thing <00:18:51.435>that's <00:18:51.635>really <00:18:51.835>exciting <00:18:52.035>is

435
00:18:52.815 --> 00:18:55.255
<00:18:52.815>that <00:18:52.955>this <00:18:53.095>is <00:18:53.235>stable <00:18:53.375>enough <00:18:53.515>as <00:18:53.655>I <00:18:53.795>said, <00:18:53.935>to <00:18:54.075>be <00:18:54.215>useful,

436
00:18:55.475 --> 00:18:58.055
<00:18:55.475>but <00:18:55.649>it <00:18:55.824>leaves <00:18:56.000>the <00:18:56.175>door <00:18:56.350>open <00:18:56.524>to <00:18:56.699>future <00:18:56.875>evolution.

437
00:18:59.075 --> 00:19:03.935
<00:18:59.075>Um, <00:18:59.230>this <00:18:59.386>as <00:18:59.541>a <00:18:59.697>machine, <00:18:59.852>uh, <00:19:00.008>like <00:19:00.163>a <00:19:00.319>format <00:19:00.475>version

438
00:19:04.235 --> 00:19:07.695
<00:19:04.235>inside <00:19:04.375>which <00:19:04.514>allows <00:19:04.655>people <00:19:04.794>in <00:19:04.935>the <00:19:05.074>future <00:19:05.215>to <00:19:05.354>bump <00:19:05.495>it <00:19:05.635>up

439
00:19:08.195 --> 00:19:09.495
<00:19:08.195>and <00:19:08.585>evolve <00:19:08.975>the <00:19:09.364>schema.

440
00:19:09.495 --> 00:19:11.535
<00:19:09.495>And <00:19:09.695>that's <00:19:09.895>because <00:19:10.094>France <00:19:10.294>as <00:19:10.495>a <00:19:10.695>language <00:19:10.895>is

441
00:19:11.535 --> 00:19:12.975
<00:19:11.535>continuously <00:19:11.967>adding <00:19:12.399>new <00:19:12.831>features.

442
00:19:12.985 --> 00:19:15.895
<00:19:12.985>Those <00:19:13.159>features <00:19:13.334>need <00:19:13.510>to <00:19:13.685>be <00:19:13.860>represented <00:19:14.034>inside <00:19:14.209>this <00:19:14.385>rust

443
00:19:15.895 --> 00:19:18.215
<00:19:15.895>of <00:19:16.095>JSN <00:19:16.295>output, <00:19:16.495>which <00:19:16.695>might <00:19:16.895>require <00:19:17.095>breaking <00:19:17.295>changes

444
00:19:18.275 --> 00:19:22.095
<00:19:18.275>to <00:19:18.475>the <00:19:18.675>Jason <00:19:18.875>schema, <00:19:19.075>but <00:19:19.275>that's <00:19:19.475>accounted <00:19:19.675>for

445
00:19:22.135 --> 00:19:23.495
<00:19:22.135>and <00:19:22.339>there's <00:19:22.543>a <00:19:22.746>mechanism <00:19:22.951>to <00:19:23.155>do <00:19:23.359>that.

446
00:19:25.035 --> 00:19:27.855
<00:19:25.035>Now <00:19:25.210>as <00:19:25.385>I <00:19:25.560>said, <00:19:25.735>OCM <00:19:25.910>format <00:19:26.085>is <00:19:26.260>still <00:19:26.435>unstable.

447
00:19:28.765 --> 00:19:32.575
<00:19:28.765>Nonetheless <00:19:28.920>it <00:19:29.076>is <00:19:29.231>enabling <00:19:29.387>today <00:19:29.542>a <00:19:29.698>new <00:19:29.853>generation <00:19:30.009>of <00:19:30.165>rasul.

448
00:19:33.825 --> 00:19:35.485
<00:19:33.825>Number <00:19:34.175>one <00:19:34.525>cargo <00:19:34.875>amber <00:19:35.225>checks.

449
00:19:35.915 --> 00:19:37.645
<00:19:35.915>Some <00:19:36.115>of <00:19:36.315>you <00:19:36.514>might <00:19:36.715>actually <00:19:36.915>be <00:19:37.115>using <00:19:37.315>this.

450
00:19:37.945 --> 00:19:41.805
<00:19:37.945>So <00:19:38.120>cargo <00:19:38.294>sand <00:19:38.470>checks <00:19:38.645>is <00:19:38.820>a <00:19:38.995>tool <00:19:39.169>which <00:19:39.345>compares

451
00:19:41.905 --> 00:19:44.765
<00:19:41.905>for <00:19:42.060>example <00:19:42.216>a <00:19:42.371>put <00:19:42.527>request, <00:19:42.682>uh, <00:19:42.838>with <00:19:42.993>a <00:19:43.149>release <00:19:43.305>version

452
00:19:44.785 --> 00:19:47.485
<00:19:44.785>of <00:19:44.940>your <00:19:45.096>crate <00:19:45.251>and <00:19:45.407>it <00:19:45.562>tells <00:19:45.718>you <00:19:45.873>if <00:19:46.029>you <00:19:46.185>have

453
00:19:47.485 --> 00:19:48.765
<00:19:47.485>introduced <00:19:47.869>any <00:19:48.253>breaking <00:19:48.637>changes.

454
00:19:48.945 --> 00:19:51.525
<00:19:48.945>So <00:19:49.225>any <00:19:49.504>SE <00:19:49.784>semantic <00:19:50.064>versioning <00:19:50.345>violations.

455
00:19:52.025 --> 00:19:54.965
<00:19:52.025>And <00:19:52.152>the <00:19:52.279>way <00:19:52.406>it <00:19:52.534>does <00:19:52.661>that <00:19:52.788>is <00:19:52.915>it <00:19:53.043>takes <00:19:53.170>the <00:19:53.297>release <00:19:53.425>version

456
00:19:54.965 --> 00:19:58.525
<00:19:54.965>of <00:19:55.105>your <00:19:55.245>crate <00:19:55.385>and <00:19:55.524>generates <00:19:55.665>the <00:19:55.804>JS <00:19:55.945>and <00:19:56.084>docs <00:19:56.225>for <00:19:56.365>it

457
00:19:58.945 --> 00:20:00.845
<00:19:58.945>and <00:19:59.100>then <00:19:59.256>it <00:19:59.411>does <00:19:59.567>the <00:19:59.722>same <00:19:59.878>thing <00:20:00.033>for <00:20:00.189>your <00:20:00.345>PR

458
00:20:01.185 --> 00:20:04.245
<00:20:01.185>and <00:20:01.360>then <00:20:01.534>simply <00:20:01.710>compares <00:20:01.885>the <00:20:02.060>two <00:20:02.235>ingestion <00:20:02.409>documents <00:20:02.585>looking

459
00:20:04.265 --> 00:20:07.285
<00:20:04.265>for <00:20:04.420>violations <00:20:04.576>like <00:20:04.731>a <00:20:04.887>method <00:20:05.042>that <00:20:05.198>used <00:20:05.353>to <00:20:05.509>be <00:20:05.665>there.

460
00:20:07.355 --> 00:20:09.165
<00:20:07.355>It's <00:20:07.635>no <00:20:07.915>longer <00:20:08.195>there <00:20:08.475>a <00:20:08.755>field

461
00:20:09.225 --> 00:20:10.925
<00:20:09.225>that's <00:20:09.458>been <00:20:09.691>renamed, <00:20:09.925>these <00:20:10.158>kind <00:20:10.391>of <00:20:10.625>things.

462
00:20:11.105 --> 00:20:12.685
<00:20:11.105>And <00:20:11.385>also <00:20:11.665>much <00:20:11.945>more <00:20:12.225>sophisticated <00:20:12.505>things.

463
00:20:13.395 --> 00:20:15.085
<00:20:13.395>Then <00:20:13.628>you <00:20:13.861>have <00:20:14.095>cargo <00:20:14.328>check <00:20:14.561>external <00:20:14.795>types.

464
00:20:15.465 --> 00:20:17.565
<00:20:15.465>Um, <00:20:15.665>these <00:20:15.865>is <00:20:16.064>a <00:20:16.264>tool <00:20:16.465>that <00:20:16.665>was <00:20:16.865>developed

465
00:20:17.765 --> 00:20:19.845
<00:20:17.765>by <00:20:18.231>the <00:20:18.698>A-W-S-S-D-K <00:20:19.165>team

466
00:20:20.465 --> 00:20:22.765
<00:20:20.465>to <00:20:20.814>do <00:20:21.165>exactly <00:20:21.514>to <00:20:21.865>solve.

467
00:20:22.865 --> 00:20:24.925
<00:20:22.865>One <00:20:22.992>of <00:20:23.119>the <00:20:23.246>questions <00:20:23.374>I <00:20:23.501>asked <00:20:23.628>at <00:20:23.755>the <00:20:23.883>beginning <00:20:24.010>of <00:20:24.137>this <00:20:24.265>talk,

468
00:20:25.425 --> 00:20:28.885
<00:20:25.425>how <00:20:25.565>do <00:20:25.705>I <00:20:25.845>know <00:20:25.985>which <00:20:26.125>types <00:20:26.264>from <00:20:26.405>third <00:20:26.544>party <00:20:26.685>trait <00:20:26.825>are

469
00:20:29.085 --> 00:20:31.765
<00:20:29.085>actually <00:20:29.365>exposed <00:20:29.645>through <00:20:29.925>my <00:20:30.205>API <00:20:30.485>cargo

470
00:20:31.765 --> 00:20:33.005
<00:20:31.765>check <00:20:31.951>External <00:20:32.137>types <00:20:32.323>Does <00:20:32.509>that <00:20:32.695>for <00:20:32.881>you?

471
00:20:33.365 --> 00:20:36.805
<00:20:33.365>Generates <00:20:33.540>the <00:20:33.715>Chism <00:20:33.890>crawl, <00:20:34.065>sit, <00:20:34.240>find <00:20:34.415>all <00:20:34.590>the <00:20:34.765>types

472
00:20:36.915 --> 00:20:40.245
<00:20:36.915>that <00:20:37.031>do <00:20:37.148>not <00:20:37.264>have <00:20:37.381>credit <00:20:37.498>is <00:20:37.615>zero <00:20:37.731>but <00:20:37.848>they're <00:20:37.965>part <00:20:38.081>of <00:20:38.198>the <00:20:38.315>API

473
00:20:40.465 --> 00:20:42.245
<00:20:40.465>and <00:20:40.665>then <00:20:40.865>compares <00:20:41.064>it <00:20:41.264>to <00:20:41.465>an <00:20:41.665>allow <00:20:41.865>list.

474
00:20:42.945 --> 00:20:45.605
<00:20:42.945>Is <00:20:43.100>this <00:20:43.256>allowed? <00:20:43.411>Yes, <00:20:43.567>all <00:20:43.722>good <00:20:43.878>Is <00:20:44.033>this <00:20:44.189>not <00:20:44.345>allowed?

475
00:20:45.755 --> 00:20:47.005
<00:20:45.755>Okay, <00:20:45.980>I'm <00:20:46.205>gonna <00:20:46.430>throw <00:20:46.655>an <00:20:46.880>error.

476
00:20:47.465 --> 00:20:50.725
<00:20:47.465>And <00:20:47.605>the <00:20:47.745>A-W-S-S-D-K <00:20:47.885>team <00:20:48.024>runs <00:20:48.165>this <00:20:48.304>in <00:20:48.445>CI <00:20:48.584>as <00:20:48.725>a <00:20:48.865>way

477
00:20:50.725 --> 00:20:52.565
<00:20:50.725>to <00:20:50.958>make <00:20:51.191>sure <00:20:51.425>that <00:20:51.658>governance, <00:20:51.891>you <00:20:52.125>know,

478
00:20:52.565 --> 00:20:53.765
<00:20:52.565>doesn't <00:20:52.835>slip <00:20:53.105>through <00:20:53.375>the <00:20:53.645>crux.

479
00:20:55.035 --> 00:20:56.525
<00:20:55.035>Last <00:20:55.258>but <00:20:55.482>not <00:20:55.705>least, <00:20:55.929>you <00:20:56.152>have <00:20:56.376>pub,

480
00:20:56.695 --> 00:20:59.725
<00:20:56.695>which <00:20:56.870>is <00:20:57.044>a <00:20:57.220>new <00:20:57.395>framework <00:20:57.570>which <00:20:57.745>I'm <00:20:57.919>personally <00:20:58.095>developing

481
00:21:00.185 --> 00:21:02.845
<00:21:00.185>and <00:21:00.312>one <00:21:00.439>of <00:21:00.566>the <00:21:00.694>key <00:21:00.821>features <00:21:00.948>in <00:21:01.075>Pub <00:21:01.203>X <00:21:01.330>is <00:21:01.457>compile <00:21:01.585>time

482
00:21:02.845 --> 00:21:03.845
<00:21:02.845>dependence <00:21:03.745>injection.

483
00:21:04.625 --> 00:21:07.005
<00:21:04.625>So <00:21:04.905>when <00:21:05.185>you <00:21:05.465>write <00:21:05.745>a <00:21:06.025>handler

484
00:21:07.345 --> 00:21:09.245
<00:21:07.345>and <00:21:07.545>you <00:21:07.745>say <00:21:07.945>My <00:21:08.145>handler <00:21:08.345>needs <00:21:08.545>to <00:21:08.745>get,

485
00:21:09.305 --> 00:21:11.925
<00:21:09.305>for <00:21:09.460>example <00:21:09.616>a <00:21:09.771>database <00:21:09.927>pool <00:21:10.082>as <00:21:10.238>one <00:21:10.393>of <00:21:10.549>his <00:21:10.705>inputs,

486
00:21:12.145 --> 00:21:13.565
<00:21:12.145>the <00:21:12.358>framework <00:21:12.571>is <00:21:12.784>gonna <00:21:12.997>make <00:21:13.210>it <00:21:13.423>so

487
00:21:13.565 --> 00:21:14.765
<00:21:13.565>that <00:21:13.835>that's <00:21:14.105>provided <00:21:14.375>to <00:21:14.645>you.

488
00:21:15.305 --> 00:21:18.685
<00:21:15.305>The <00:21:15.505>way <00:21:15.705>this <00:21:15.905>works <00:21:16.105>is <00:21:16.305>with <00:21:16.505>ocm, <00:21:16.705>obviously

489
00:21:18.685 --> 00:21:21.485
<00:21:18.685>as <00:21:18.825>you <00:21:18.965>might <00:21:19.105>expect <00:21:19.245>in <00:21:19.385>this <00:21:19.524>code <00:21:19.665>snippet <00:21:19.804>you <00:21:19.945>can <00:21:20.085>see

490
00:21:22.065 --> 00:21:24.165
<00:21:22.065>BP <00:21:22.345>constructor <00:21:22.625>on <00:21:22.905>the <00:21:23.185>second <00:21:23.465>line.

491
00:21:24.425 --> 00:21:26.605
<00:21:24.425>You're <00:21:24.658>basically <00:21:24.891>telling <00:21:25.125>the <00:21:25.358>framework <00:21:25.591>every <00:21:25.825>time

492
00:21:27.205 --> 00:21:31.605
<00:21:27.205>somebody <00:21:27.332>asks <00:21:27.459>for <00:21:27.586>o <00:21:27.714>config <00:21:27.841>then <00:21:27.968>use <00:21:28.095>OT <00:21:28.223>config <00:21:28.350>ENC <00:21:28.477>coding <00:21:28.605>key

493
00:21:31.785 --> 00:21:33.485
<00:21:31.785>to <00:21:32.018>build <00:21:32.251>an <00:21:32.485>instance <00:21:32.718>of <00:21:32.951>O <00:21:33.185>config.

494
00:21:33.625 --> 00:21:34.965
<00:21:33.625>And <00:21:33.797>I <00:21:33.969>want <00:21:34.141>that <00:21:34.314>to <00:21:34.486>be <00:21:34.658>a <00:21:34.831>singleton.

495
00:21:34.965 --> 00:21:36.605
<00:21:34.965>So <00:21:35.165>I <00:21:35.365>want <00:21:35.564>that <00:21:35.764>to <00:21:35.965>be <00:21:36.165>built <00:21:36.365>once

496
00:21:37.025 --> 00:21:39.365
<00:21:37.025>and <00:21:37.180>then <00:21:37.336>be <00:21:37.491>reused <00:21:37.647>for <00:21:37.802>the <00:21:37.958>lifecycle <00:21:38.113>of <00:21:38.269>the <00:21:38.425>application.

497
00:21:39.905 --> 00:21:41.245
<00:21:39.905>Now <00:21:40.146>what <00:21:40.387>does <00:21:40.628>the <00:21:40.869>framework <00:21:41.110>do?

498
00:21:41.905 --> 00:21:43.805
<00:21:41.905>It <00:21:42.105>takes <00:21:42.305>each <00:21:42.504>of <00:21:42.705>these <00:21:42.905>anglers, <00:21:43.105>you <00:21:43.305>know,

499
00:21:43.865 --> 00:21:46.085
<00:21:43.865>routes <00:21:44.145>get <00:21:44.425>user <00:21:44.705>routes <00:21:44.985>update <00:21:45.265>user

500
00:21:46.345 --> 00:21:48.125
<00:21:46.345>and <00:21:46.695>that <00:21:47.045>analyzes <00:21:47.395>that <00:21:47.745>signature.

501
00:21:48.305 --> 00:21:49.805
<00:21:48.305>So <00:21:48.575>it <00:21:48.845>says, <00:21:49.115>okay, <00:21:49.385>let's <00:21:49.655>suppose

502
00:21:49.805 --> 00:21:51.125
<00:21:49.805>that <00:21:50.003>the <00:21:50.201>ENDR <00:21:50.399>is <00:21:50.597>called <00:21:50.795>stream <00:21:50.993>file.

503
00:21:51.345 --> 00:21:52.365
<00:21:51.345>Stream <00:21:51.804>file. <00:21:52.263>As

504
00:21:52.425 --> 00:21:55.845
<00:21:52.425>for <00:21:52.625>inputs <00:21:52.825>request <00:21:53.024>body <00:21:53.225>UFF <00:21:53.425>logger <00:21:53.625>HDP <00:21:53.825>client,

505
00:21:56.425 --> 00:21:58.125
<00:21:56.425>do <00:21:56.625>we <00:21:56.825>have <00:21:57.024>a <00:21:57.225>constructor <00:21:57.425>for <00:21:57.625>request <00:21:57.825>body?

506
00:21:58.265 --> 00:22:01.845
<00:21:58.265>Yes <00:21:58.392>up <00:21:58.519>there <00:21:58.646>do <00:21:58.774>we <00:21:58.901>have <00:21:59.028>a <00:21:59.155>constructor <00:21:59.283>for <00:21:59.410>path <00:21:59.537>Path? <00:21:59.665>Yes.

507
00:22:01.845 --> 00:22:04.845
<00:22:01.845>Extract <00:22:02.125>path, <00:22:02.405>extract <00:22:02.685>path <00:22:02.965>takes <00:22:03.245>inputs.

508
00:22:04.865 --> 00:22:06.925
<00:22:04.865>Do <00:22:05.065>we <00:22:05.265>have <00:22:05.465>constructors <00:22:05.665>for <00:22:05.865>those <00:22:06.065>inputs? <00:22:06.265>Yes.

509
00:22:07.465 --> 00:22:10.525
<00:22:07.465>And <00:22:07.581>so <00:22:07.698>it <00:22:07.814>builds <00:22:07.931>a <00:22:08.048>graph <00:22:08.165>of <00:22:08.281>all <00:22:08.398>the <00:22:08.514>things <00:22:08.631>that <00:22:08.748>are <00:22:08.865>needed

510
00:22:10.665 --> 00:22:12.565
<00:22:10.665>and <00:22:10.898>then <00:22:11.131>converts <00:22:11.365>this <00:22:11.598>graph <00:22:11.831>into <00:22:12.065>code

511
00:22:12.625 --> 00:22:13.765
<00:22:12.625>that's <00:22:12.967>run <00:22:13.309>around <00:22:13.651>time.

512
00:22:13.905 --> 00:22:16.605
<00:22:13.905>So <00:22:14.105>dependency <00:22:14.305>injection <00:22:14.504>works <00:22:14.705>if <00:22:14.905>it <00:22:15.105>doesn't <00:22:15.305>work,

513
00:22:16.605 --> 00:22:18.685
<00:22:16.605>you <00:22:16.760>find <00:22:16.916>other <00:22:17.071>compile <00:22:17.227>time <00:22:17.382>and <00:22:17.538>then <00:22:17.693>a <00:22:17.849>run <00:22:18.005>time.

514
00:22:18.785 --> 00:22:20.405
<00:22:18.785>All <00:22:19.018>things <00:22:19.251>are <00:22:19.485>auto <00:22:19.718>wired <00:22:19.951>for <00:22:20.185>you.

515
00:22:21.015 --> 00:22:23.405
<00:22:21.015>Everything <00:22:21.248>here <00:22:21.481>is <00:22:21.715>powered <00:22:21.948>by <00:22:22.181>restock <00:22:22.415>chasem.

516
00:22:23.785 --> 00:22:27.005
<00:22:23.785>We <00:22:23.925>do <00:22:24.065>this <00:22:24.205>by <00:22:24.345>taking <00:22:24.485>all <00:22:24.625>these <00:22:24.765>functions, <00:22:24.905>you <00:22:25.045>know <00:22:25.185>this,

517
00:22:27.005 --> 00:22:29.365
<00:22:27.005>create <00:22:27.205>routes, <00:22:27.405>get <00:22:27.605>user, <00:22:27.805>create <00:22:28.005>routes, <00:22:28.205>update <00:22:28.405>user

518
00:22:29.915 --> 00:22:32.445
<00:22:29.915>finding <00:22:30.148>them <00:22:30.381>inside <00:22:30.615>the <00:22:30.848>restock <00:22:31.081>chasem <00:22:31.315>documentation,

519
00:22:32.635 --> 00:22:34.405
<00:22:32.635>getting <00:22:32.985>information <00:22:33.335>about <00:22:33.685>the <00:22:34.035>signature

520
00:22:34.405 --> 00:22:36.245
<00:22:34.405>and <00:22:34.638>then <00:22:34.871>traversing <00:22:35.105>and <00:22:35.338>build <00:22:35.571>that <00:22:35.805>graph.

521
00:22:36.675 --> 00:22:39.285
<00:22:36.675>This <00:22:36.908>would <00:22:37.141>not <00:22:37.375>be <00:22:37.608>possible <00:22:37.841>without <00:22:38.075>s.

522
00:22:40.945 --> 00:22:44.405
<00:22:40.945>Now <00:22:41.072>the <00:22:41.199>previous <00:22:41.326>section <00:22:41.454>was <00:22:41.581>meant <00:22:41.708>to <00:22:41.835>hype <00:22:41.963>you <00:22:42.090>up <00:22:42.217>and <00:22:42.345>you

523
00:22:44.405 --> 00:22:46.685
<00:22:44.405>and <00:22:44.580>showcasing <00:22:44.754>all <00:22:44.930>the <00:22:45.105>wonderful <00:22:45.280>things <00:22:45.455>you <00:22:45.629>can <00:22:45.805>do.

524
00:22:47.395 --> 00:22:50.005
<00:22:47.395>This <00:22:47.550>section <00:22:47.706>is <00:22:47.861>meant <00:22:48.017>to <00:22:48.172>you <00:22:48.328>know, <00:22:48.483>cool <00:22:48.639>you <00:22:48.795>down

525
00:22:50.225 --> 00:22:51.925
<00:22:50.225>to <00:22:50.458>make <00:22:50.691>sure <00:22:50.925>you <00:22:51.158>don't <00:22:51.391>get <00:22:51.625>overexcited.

526
00:22:52.505 --> 00:22:56.725
<00:22:52.505>So <00:22:52.621>S <00:22:52.738>zone <00:22:52.855>obviously <00:22:52.971>is <00:22:53.088>useful <00:22:53.205>but <00:22:53.321>it <00:22:53.438>is <00:22:53.555>not <00:22:53.671>a <00:22:53.788>silver <00:22:53.905>bullet.

527
00:22:57.115 --> 00:22:58.685
<00:22:57.115>Some <00:22:57.465>information <00:22:57.815>it's <00:22:58.165>in <00:22:58.515>there

528
00:22:58.785 --> 00:23:00.485
<00:22:58.785>but <00:22:58.960>it's <00:22:59.135>just <00:22:59.310>too <00:22:59.485>difficult <00:22:59.660>to <00:22:59.835>make <00:23:00.010>sense <00:23:00.185>of.

529
00:23:00.865 --> 00:23:02.605
<00:23:00.865>And <00:23:01.145>the <00:23:01.425>primary <00:23:01.705>example <00:23:01.985>is <00:23:02.265>traits.

530
00:23:03.185 --> 00:23:05.885
<00:23:03.185>Yes, <00:23:03.360>the <00:23:03.534>trade <00:23:03.710>definitions <00:23:03.885>are <00:23:04.060>in <00:23:04.235>the <00:23:04.409>output, <00:23:04.585>yes,

531
00:23:06.065 --> 00:23:09.205
<00:23:06.065>the <00:23:06.220>implementation <00:23:06.376>blocks <00:23:06.531>for <00:23:06.687>the <00:23:06.842>traits <00:23:06.998>are <00:23:07.153>in <00:23:07.309>the <00:23:07.465>outputs

532
00:23:09.545 --> 00:23:10.685
<00:23:09.545>but <00:23:10.058>that's <00:23:10.571>generics,

533
00:23:11.025 --> 00:23:14.005
<00:23:11.025>that's <00:23:11.200>path <00:23:11.375>my <00:23:11.550>strutt <00:23:11.725>satisfy <00:23:11.900>a <00:23:12.075>certain <00:23:12.250>trait <00:23:12.425>bound.

534
00:23:14.695 --> 00:23:18.585
<00:23:14.695>This <00:23:14.822>can <00:23:14.949>be <00:23:15.076>easy <00:23:15.204>to <00:23:15.331>answer <00:23:15.458>if <00:23:15.585>there's <00:23:15.713>a <00:23:15.840>implement <00:23:15.967>trait <00:23:16.095>name

535
00:23:18.685 --> 00:23:19.945
<00:23:18.685>for <00:23:19.062>path <00:23:19.441>mis <00:23:19.819>strt,

536
00:23:20.285 --> 00:23:23.865
<00:23:20.285>but <00:23:20.440>it <00:23:20.596>gets <00:23:20.751>fairly <00:23:20.907>complicated <00:23:21.062>if <00:23:21.218>there's <00:23:21.373>a <00:23:21.529>implement <00:23:21.685>mitt

537
00:23:23.865 --> 00:23:28.345
<00:23:23.865>trait <00:23:24.040>for <00:23:24.215>path <00:23:24.390>T <00:23:24.565>where <00:23:24.740>T <00:23:24.915>satisfies <00:23:25.090>other <00:23:25.265>bounds

538
00:23:28.565 --> 00:23:31.065
<00:23:28.565>that's <00:23:28.798>mis <00:23:29.031>strt <00:23:29.265>satisfy <00:23:29.498>those <00:23:29.731>other <00:23:29.965>bounds.

539
00:23:31.405 --> 00:23:34.465
<00:23:31.405>That's <00:23:31.545>kind <00:23:31.685>of <00:23:31.825>a <00:23:31.965>trait <00:23:32.105>solvers <00:23:32.245>job <00:23:32.385>to <00:23:32.524>figure <00:23:32.665>it <00:23:32.805>out.

540
00:23:34.765 --> 00:23:36.985
<00:23:34.765>And <00:23:34.881>if <00:23:34.998>you <00:23:35.115>try <00:23:35.231>to <00:23:35.348>do <00:23:35.465>this <00:23:35.581>you <00:23:35.698>quickly <00:23:35.815>realize <00:23:35.931>you're <00:23:36.048>been <00:23:36.165>in

541
00:23:36.985 --> 00:23:39.985
<00:23:36.985>your <00:23:37.112>own <00:23:37.239>trade <00:23:37.366>solver, <00:23:37.494>which <00:23:37.621>I <00:23:37.748>can <00:23:37.875>guarantee <00:23:38.003>you <00:23:38.130>is <00:23:38.257>a <00:23:38.385>very,

542
00:23:40.295 --> 00:23:42.505
<00:23:40.295>very, <00:23:40.645>very, <00:23:40.995>very <00:23:41.345>complex <00:23:41.695>project

543
00:23:43.165 --> 00:23:44.625
<00:23:43.165>and <00:23:43.352>you <00:23:43.540>probably <00:23:43.728>don't <00:23:43.915>wanna <00:23:44.103>be <00:23:44.291>doing <00:23:44.479>this.

544
00:23:44.885 --> 00:23:48.325
<00:23:44.885>Um, <00:23:45.040>so <00:23:45.196>if <00:23:45.351>you <00:23:45.507>need <00:23:45.662>to <00:23:45.818>do <00:23:45.973>some <00:23:46.129>advanced <00:23:46.285>um,

545
00:23:49.095 --> 00:23:53.045
<00:23:49.095>trade <00:23:49.235>machinery <00:23:49.375>checks, <00:23:49.515>probably <00:23:49.655>sdoc <00:23:49.795>is <00:23:49.935>not <00:23:50.075>the <00:23:50.215>way <00:23:50.355>to <00:23:50.495>go.

546
00:23:53.065 --> 00:23:54.445
<00:23:53.065>You <00:23:53.313>might <00:23:53.561>wanna <00:23:53.810>go <00:23:54.058>back <00:23:54.307>to,

547
00:23:54.725 --> 00:23:57.525
<00:23:54.725>I <00:23:54.958>should <00:23:55.191>use <00:23:55.425>the <00:23:55.658>comparison <00:23:55.891>library <00:23:56.125>other

548
00:23:57.525 --> 00:23:58.965
<00:23:57.525>information <00:23:57.849>which <00:23:58.173>has <00:23:58.497>not <00:23:58.821>there.

549
00:24:00.145 --> 00:24:01.885
<00:24:00.145>Uh, <00:24:00.495>rasson <00:24:00.845>is <00:24:01.195>documentation <00:24:01.545>tool

550
00:24:02.725 --> 00:24:05.845
<00:24:02.725>documentation <00:24:03.074>cares <00:24:03.425>about <00:24:03.774>API <00:24:04.125>contracts.

551
00:24:05.905 --> 00:24:08.485
<00:24:05.905>So <00:24:06.138>caress <00:24:06.371>about <00:24:06.605>function <00:24:06.838>signatures <00:24:07.071>type <00:24:07.305>definitions,

552
00:24:08.485 --> 00:24:12.285
<00:24:08.485>everything <00:24:08.640>that <00:24:08.796>is <00:24:08.951>visible <00:24:09.107>to <00:24:09.262>the <00:24:09.418>users <00:24:09.573>of <00:24:09.729>those <00:24:09.885>things

553
00:24:13.245 --> 00:24:14.525
<00:24:13.245>function <00:24:13.533>bodies, <00:24:13.821>they <00:24:14.109>don't <00:24:14.397>matter.

554
00:24:14.525 --> 00:24:16.045
<00:24:14.525>Those <00:24:14.981>are <00:24:15.437>implementation <00:24:15.893>details.

555
00:24:16.705 --> 00:24:18.245
<00:24:16.705>And <00:24:16.903>so <00:24:17.101>if <00:24:17.299>we <00:24:17.496>go <00:24:17.695>back <00:24:17.892>to <00:24:18.091>some

556
00:24:18.245 --> 00:24:20.365
<00:24:18.245>of <00:24:18.419>the <00:24:18.594>questions <00:24:18.770>I <00:24:18.945>was <00:24:19.120>asking <00:24:19.294>at <00:24:19.469>the <00:24:19.645>beginning,

557
00:24:20.835 --> 00:24:23.325
<00:24:20.835>does <00:24:21.068>module <00:24:21.301>X <00:24:21.535>depend <00:24:21.768>on <00:24:22.001>module <00:24:22.235>Y?

558
00:24:23.865 --> 00:24:25.805
<00:24:23.865>We <00:24:24.145>can't <00:24:24.425>really <00:24:24.705>answer <00:24:24.985>this <00:24:25.265>question,

559
00:24:26.465 --> 00:24:30.005
<00:24:26.465>we <00:24:26.620>can <00:24:26.776>answer <00:24:26.931>a <00:24:27.087>weaker <00:24:27.242>question, <00:24:27.398>which <00:24:27.553>is, <00:24:27.709>does <00:24:27.865>um,

560
00:24:31.035 --> 00:24:33.965
<00:24:31.035>does <00:24:31.268>an <00:24:31.501>item <00:24:31.735>in <00:24:31.968>module <00:24:32.201>X <00:24:32.435>depend

561
00:24:34.505 --> 00:24:37.965
<00:24:34.505>in <00:24:34.621>its <00:24:34.738>signature <00:24:34.855>on <00:24:34.971>an <00:24:35.088>item <00:24:35.205>in <00:24:35.321>module <00:24:35.438>Y <00:24:35.555>that <00:24:35.671>we <00:24:35.788>can <00:24:35.905>see?

562
00:24:37.965 --> 00:24:40.645
<00:24:37.965>Because <00:24:38.120>that <00:24:38.276>would, <00:24:38.431>you <00:24:38.587>know, <00:24:38.742>pop <00:24:38.898>up <00:24:39.053>in <00:24:39.209>the <00:24:39.365>rest

563
00:24:40.645 --> 00:24:43.085
<00:24:40.645>of <00:24:40.878>chasing <00:24:41.111>docs, <00:24:41.345>uh, <00:24:41.578>restaurant <00:24:41.811>checks <00:24:42.045>document.

564
00:24:44.025 --> 00:24:47.045
<00:24:44.025>But <00:24:44.200>if <00:24:44.375>something <00:24:44.550>is <00:24:44.725>being <00:24:44.900>used <00:24:45.075>from <00:24:45.250>module <00:24:45.425>Y

565
00:24:47.585 --> 00:24:52.005
<00:24:47.585>inside <00:24:47.740>a <00:24:47.896>function <00:24:48.051>body <00:24:48.207>in <00:24:48.362>module <00:24:48.518>X, <00:24:48.673>we <00:24:48.829>wouldn't <00:24:48.985>know.

566
00:24:52.185 --> 00:24:54.245
<00:24:52.185>But <00:24:52.340>we <00:24:52.496>don't <00:24:52.651>see <00:24:52.807>that <00:24:52.962>in <00:24:53.118>rest <00:24:53.273>stock <00:24:53.429>chasing <00:24:53.585>format.

567
00:24:54.785 --> 00:24:57.525
<00:24:54.785>So <00:24:54.960>that <00:24:55.135>question <00:24:55.310>still <00:24:55.485>cannot <00:24:55.660>be <00:24:55.835>answered <00:24:56.010>as <00:24:56.185>is.

568
00:24:58.595 --> 00:25:01.085
<00:24:58.595>Nonetheless, <00:24:58.750>I <00:24:58.906>think <00:24:59.061>this <00:24:59.217>is <00:24:59.372>just <00:24:59.528>the <00:24:59.683>beginning, <00:24:59.839>you <00:24:59.995>know,

569
00:25:01.325 --> 00:25:03.285
<00:25:01.325>RASS <00:25:01.558>as <00:25:01.791>a <00:25:02.025>language <00:25:02.258>is <00:25:02.491>seeing <00:25:02.725>wider

570
00:25:03.305 --> 00:25:06.045
<00:25:03.305>and <00:25:03.460>wider <00:25:03.616>adoption, <00:25:03.771>which <00:25:03.927>means <00:25:04.082>code <00:25:04.238>bases <00:25:04.393>are <00:25:04.549>be <00:25:04.705>built,

571
00:25:06.155 --> 00:25:08.525
<00:25:06.155>this <00:25:06.295>could <00:25:06.435>base <00:25:06.575>are <00:25:06.715>getting <00:25:06.855>bigger <00:25:06.995>and <00:25:07.135>bigger <00:25:07.274>by <00:25:07.415>the <00:25:07.555>day

572
00:25:08.825 --> 00:25:11.725
<00:25:08.825>and <00:25:08.980>people <00:25:09.136>soon <00:25:09.291>start <00:25:09.447>to <00:25:09.602>want <00:25:09.758>tools <00:25:09.913>to <00:25:10.069>answer <00:25:10.225>some

573
00:25:11.725 --> 00:25:12.845
<00:25:11.725>of <00:25:11.926>the <00:25:12.128>questions <00:25:12.329>that <00:25:12.531>we <00:25:12.733>mentioned.

574
00:25:13.185 --> 00:25:17.085
<00:25:13.185>And <00:25:13.325>I <00:25:13.465>think <00:25:13.605>those <00:25:13.745>meta <00:25:13.885>tools <00:25:14.024>will <00:25:14.165>BP <00:25:14.304>bottle <00:25:14.445>to <00:25:14.585>keep

575
00:25:17.735 --> 00:25:19.165
<00:25:17.735>successful <00:25:18.164>as <00:25:18.592>it <00:25:19.022>scales

576
00:25:19.425 --> 00:25:21.045
<00:25:19.425>and <00:25:19.600>I <00:25:19.774>have <00:25:19.950>all <00:25:20.125>confidence <00:25:20.300>that <00:25:20.475>we'll <00:25:20.649>see <00:25:20.825>more

577
00:25:21.045 --> 00:25:22.245
<00:25:21.045>and <00:25:21.199>more <00:25:21.353>of <00:25:21.507>it <00:25:21.662>as <00:25:21.816>we <00:25:21.970>go <00:25:22.125>forward.

578
00:25:23.515 --> 00:25:26.845
<00:25:23.515>Sand <00:25:23.655>that <00:25:23.795>this <00:25:23.935>was <00:25:24.075>everything <00:25:24.215>I <00:25:24.355>wanted <00:25:24.495>to <00:25:24.635>give <00:25:24.775>you <00:25:24.915>today

579
00:25:27.065 --> 00:25:29.525
<00:25:27.065>and <00:25:27.192>if <00:25:27.319>you <00:25:27.446>have <00:25:27.574>any <00:25:27.701>questions <00:25:27.828>I'm <00:25:27.955>happy <00:25:28.083>to <00:25:28.210>answer <00:25:28.337>them <00:25:28.465>now.

580
00:25:32.395 --> 00:25:34.665
<00:25:32.395>Hello <00:25:32.595>again <00:25:32.795>Luca, <00:25:32.995>thank <00:25:33.195>you <00:25:33.395>for <00:25:33.595>the <00:25:33.795>talk.

581
00:25:36.445 --> 00:25:39.985
<00:25:36.445>So, <00:25:36.678>um, <00:25:36.911>yes <00:25:37.145>we <00:25:37.378>got <00:25:37.611>some <00:25:37.845>questions

582
00:25:40.735 --> 00:25:41.905
<00:25:40.735>from <00:25:41.086>the <00:25:41.437>audience <00:25:41.788>so

583
00:25:41.905 --> 00:25:45.305
<00:25:41.905>that <00:25:42.080>I <00:25:42.254>would <00:25:42.430>say <00:25:42.605>let's <00:25:42.780>jump <00:25:42.955>right <00:25:43.129>into <00:25:43.305>it.

584
00:25:46.315 --> 00:25:49.865
<00:25:46.315>First <00:25:46.548>one, <00:25:46.781>how <00:25:47.015>does <00:25:47.248>Rust <00:25:47.481>Docs <00:25:47.715>chase

585
00:25:49.885 --> 00:25:53.305
<00:25:49.885>and <00:25:50.085>format <00:25:50.285>integrate <00:25:50.485>with <00:25:50.685>the <00:25:50.885>broader <00:25:51.085>Rust <00:25:51.285>ecosystem?

586
00:25:54.485 --> 00:25:57.465
<00:25:54.485>In <00:25:54.640>what <00:25:54.796>way? <00:25:54.951>Um, <00:25:55.107>I'll <00:25:55.262>try <00:25:55.418>to <00:25:55.573>interpret <00:25:55.729>the <00:25:55.885>question.

587
00:25:57.725 --> 00:25:59.625
<00:25:57.725>Um, <00:25:58.191>it's <00:25:58.658>a <00:25:59.125>tool.

588
00:26:00.005 --> 00:26:03.985
<00:26:00.005>So <00:26:00.132>Rust <00:26:00.259>Dock <00:26:00.386>is <00:26:00.514>bundled <00:26:00.641>into <00:26:00.768>the <00:26:00.895>rust <00:26:01.023>tool <00:26:01.150>chain <00:26:01.277>Every <00:26:01.405>time

589
00:26:04.085 --> 00:26:06.345
<00:26:04.085>you <00:26:04.285>install <00:26:04.485>rusts, <00:26:04.685>rust <00:26:04.885>dock <00:26:05.085>is <00:26:05.285>always <00:26:05.485>included.

590
00:26:06.885 --> 00:26:10.305
<00:26:06.885>And <00:26:07.001>so <00:26:07.118>since <00:26:07.235>Rust <00:26:07.351>Dock <00:26:07.468>Chasen <00:26:07.585>is <00:26:07.701>just <00:26:07.818>a <00:26:07.935>flag <00:26:08.051>on <00:26:08.168>RAs <00:26:08.285>dock

591
00:26:10.485 --> 00:26:13.105
<00:26:10.485>that's <00:26:10.640>also <00:26:10.796>included <00:26:10.951>when <00:26:11.107>you <00:26:11.262>install <00:26:11.418>RA <00:26:11.573>with <00:26:11.729>Rust <00:26:11.885>up

592
00:26:14.205 --> 00:26:18.665
<00:26:14.205>mostly <00:26:14.405>is <00:26:14.605>a <00:26:14.804>compiled <00:26:15.004>time <00:26:15.205>like <00:26:15.405>CI <00:26:15.605>tool.

593
00:26:18.855 --> 00:26:21.145
<00:26:18.855>It's <00:26:19.030>not <00:26:19.205>something <00:26:19.380>you're <00:26:19.555>gonna <00:26:19.730>be <00:26:19.905>using <00:26:20.080>your <00:26:20.255>day-to-day,

594
00:26:21.145 --> 00:26:22.865
<00:26:21.145>like <00:26:21.345>you <00:26:21.545>know, <00:26:21.745>cargo <00:26:21.945>check <00:26:22.145>or <00:26:22.345>cargo <00:26:22.545>test.

595
00:26:23.485 --> 00:26:26.625
<00:26:23.485>Um, <00:26:23.612>as <00:26:23.739>I <00:26:23.866>noticed, <00:26:23.994>as <00:26:24.121>I <00:26:24.248>noted <00:26:24.375>during <00:26:24.503>the <00:26:24.630>talk, <00:26:24.757>there's <00:26:24.885>more

596
00:26:26.625 --> 00:26:28.385
<00:26:26.625>and <00:26:26.858>more <00:26:27.091>tools <00:26:27.325>that <00:26:27.558>are <00:26:27.791>using <00:26:28.025>this.

597
00:26:28.965 --> 00:26:30.625
<00:26:28.965>Uh, <00:26:29.314>but <00:26:29.665>they're <00:26:30.014>mostly <00:26:30.365>tools.

598
00:26:30.805 --> 00:26:33.265
<00:26:30.805>So <00:26:30.960>things <00:26:31.116>that <00:26:31.271>you <00:26:31.427>might <00:26:31.582>wanna <00:26:31.738>use <00:26:31.893>in <00:26:32.049>your <00:26:32.205>CI

599
00:26:33.485 --> 00:26:36.505
<00:26:33.485>or <00:26:33.640>you <00:26:33.796>might <00:26:33.951>wanna <00:26:34.107>run <00:26:34.262>locally <00:26:34.418>for <00:26:34.573>like <00:26:34.729>specific <00:26:34.885>things

600
00:26:37.295 --> 00:26:41.065
<00:26:37.295>doesn't <00:26:37.470>necessarily <00:26:37.645>pop <00:26:37.820>up <00:26:37.995>into <00:26:38.170>your, <00:26:38.345>into <00:26:38.520>the <00:26:38.695>code

601
00:26:41.065 --> 00:26:43.525
<00:26:41.065>that <00:26:41.220>you <00:26:41.376>are <00:26:41.531>writing <00:26:41.687>as <00:26:41.842>you're <00:26:41.998>writing <00:26:42.153>a <00:26:42.309>restas <00:26:42.465>application.

602
00:26:43.745 --> 00:26:45.845
<00:26:43.745>Unless <00:26:43.900>you <00:26:44.056>do <00:26:44.211>something <00:26:44.367>a <00:26:44.522>little <00:26:44.678>bit <00:26:44.833>funkier <00:26:44.989>like <00:26:45.145>pub,

603
00:26:45.985 --> 00:26:48.045
<00:26:45.985>in <00:26:46.264>which <00:26:46.544>case <00:26:46.824>it's <00:26:47.104>used <00:26:47.385>underneath

604
00:26:48.045 --> 00:26:49.125
<00:26:48.045>but <00:26:48.239>you <00:26:48.433>don't <00:26:48.628>really <00:26:48.822>see <00:26:49.017>it.

605
00:26:49.545 --> 00:26:50.545
<00:26:49.545>If <00:26:49.845>that <00:26:50.145>makes <00:26:50.445>sense.

606
00:26:52.365 --> 00:26:54.425
<00:26:52.365>Mm-Hmm. <00:26:52.831>Thank <00:26:53.298>you <00:26:53.765>Luca.

607
00:26:55.755 --> 00:26:57.665
<00:26:55.755>Let's <00:26:56.035>jump <00:26:56.315>to <00:26:56.595>the <00:26:56.875>next <00:26:57.155>question.

608
00:26:58.045 --> 00:27:02.825
<00:26:58.045>If, <00:26:58.172>if <00:26:58.299>type <00:26:58.426>from <00:26:58.554>module <00:26:58.681>A <00:26:58.808>is <00:26:58.935>used <00:26:59.063>is <00:26:59.190>used <00:26:59.317>in <00:26:59.445>F

609
00:27:02.825 --> 00:27:05.505
<00:27:02.825>and <00:27:03.000>body <00:27:03.175>on <00:27:03.350>module <00:27:03.525>B, <00:27:03.700>we <00:27:03.875>can <00:27:04.050>tell <00:27:04.225>it

610
00:27:05.525 --> 00:27:07.825
<00:27:05.525>by <00:27:05.805>the <00:27:06.085>usage <00:27:06.365>import, <00:27:06.645>can't <00:27:06.925>we?

611
00:27:10.285 --> 00:27:14.455
<00:27:10.285>Kind <00:27:10.485>of. <00:27:10.685>So <00:27:10.885>let's <00:27:11.085>go <00:27:11.285>into <00:27:11.485>the <00:27:11.685>specifics.

612
00:27:14.515 --> 00:27:17.295
<00:27:14.515>So <00:27:14.690>yes, <00:27:14.865>so <00:27:15.040>you <00:27:15.215>can't <00:27:15.390>tell <00:27:15.565>from <00:27:15.740>OC <00:27:15.915>Chase

613
00:27:17.355 --> 00:27:18.495
<00:27:17.355>so <00:27:17.526>you <00:27:17.697>need <00:27:17.868>to <00:27:18.039>throw <00:27:18.210>that <00:27:18.380>away.

614
00:27:19.275 --> 00:27:21.415
<00:27:19.275>Uh, <00:27:19.430>you <00:27:19.586>need <00:27:19.741>to <00:27:19.897>start <00:27:20.052>looking <00:27:20.208>at <00:27:20.363>the <00:27:20.519>source <00:27:20.675>code.

615
00:27:21.715 --> 00:27:23.895
<00:27:21.715>So <00:27:21.915>first <00:27:22.115>and <00:27:22.314>foremost, <00:27:22.514>you <00:27:22.715>now <00:27:22.915>need <00:27:23.115>something

616
00:27:23.895 --> 00:27:25.295
<00:27:23.895>that <00:27:24.210>can <00:27:24.525>parse <00:27:24.840>RAs <00:27:25.155>code.

617
00:27:25.315 --> 00:27:29.855
<00:27:25.315>So <00:27:25.422>you <00:27:25.530>can <00:27:25.638>say <00:27:25.745>I'm <00:27:25.853>gonna <00:27:25.961>go <00:27:26.068>in <00:27:26.176>there, <00:27:26.284>find <00:27:26.391>all <00:27:26.499>the <00:27:26.607>uh, <00:27:26.715>files

618
00:27:30.515 --> 00:27:32.335
<00:27:30.515>in <00:27:30.690>this <00:27:30.865>module <00:27:31.040>and <00:27:31.215>then <00:27:31.390>I'm <00:27:31.565>gonna <00:27:31.740>parse <00:27:31.915>them.

619
00:27:32.515 --> 00:27:34.135
<00:27:32.515>You <00:27:32.715>can <00:27:32.915>do <00:27:33.115>that <00:27:33.315>with <00:27:33.515>C <00:27:33.715>for <00:27:33.915>example.

620
00:27:34.375 --> 00:27:35.855
<00:27:34.375>C <00:27:34.565>is <00:27:34.755>pretty <00:27:34.945>good <00:27:35.136>at <00:27:35.326>parsing <00:27:35.516>RAs <00:27:35.707>code

621
00:27:36.435 --> 00:27:40.095
<00:27:36.435>and <00:27:36.562>then <00:27:36.689>you <00:27:36.816>can <00:27:36.944>start <00:27:37.071>looking <00:27:37.198>in <00:27:37.325>there <00:27:37.453>for <00:27:37.580>all <00:27:37.707>the <00:27:37.835>imports.

622
00:27:40.555 --> 00:27:44.575
<00:27:40.555>Um, <00:27:40.682>now <00:27:40.809>a <00:27:40.936>type <00:27:41.064>is <00:27:41.191>not <00:27:41.318>necessarily <00:27:41.445>imported <00:27:41.573>so <00:27:41.700>you <00:27:41.827>also <00:27:41.955>need

623
00:27:44.575 --> 00:27:46.575
<00:27:44.575>to <00:27:44.808>look <00:27:45.041>at <00:27:45.275>every <00:27:45.508>function <00:27:45.741>call <00:27:45.975>site

624
00:27:47.235 --> 00:27:49.415
<00:27:47.235>to <00:27:47.409>see <00:27:47.584>if <00:27:47.760>something <00:27:47.935>is <00:27:48.110>being <00:27:48.284>used <00:27:48.459>in <00:27:48.635>there

625
00:27:49.415 --> 00:27:50.615
<00:27:49.415>with <00:27:49.685>a <00:27:49.955>fully <00:27:50.225>qualified <00:27:50.495>path.

626
00:27:51.315 --> 00:27:52.775
<00:27:51.315>Uh, <00:27:51.534>there <00:27:51.753>might <00:27:51.972>still <00:27:52.191>not <00:27:52.410>be <00:27:52.629>enough

627
00:27:53.325 --> 00:27:57.695
<00:27:53.325>because <00:27:53.480>for <00:27:53.636>example, <00:27:53.791>you <00:27:53.947>can <00:27:54.102>rename <00:27:54.258>crates <00:27:54.413>in <00:27:54.569>your <00:27:54.725>cargo.

628
00:27:58.435 --> 00:28:00.175
<00:27:58.435>Uh, <00:27:58.715>you <00:27:58.995>can <00:27:59.274>also <00:27:59.554>rename <00:27:59.835>modules.

629
00:28:00.195 --> 00:28:02.295
<00:28:00.195>So <00:28:00.335>you <00:28:00.475>need <00:28:00.615>to <00:28:00.754>start <00:28:00.895>doing <00:28:01.034>things <00:28:01.175>a <00:28:01.314>little <00:28:01.455>bit <00:28:01.595>more

630
00:28:02.295 --> 00:28:03.375
<00:28:02.295>sophisticated <00:28:02.619>when <00:28:02.943>you're <00:28:03.267>like,

631
00:28:03.515 --> 00:28:05.015
<00:28:03.515>I'm <00:28:03.785>gonna <00:28:04.055>process <00:28:04.325>all <00:28:04.595>the <00:28:04.865>imports

632
00:28:05.515 --> 00:28:07.255
<00:28:05.515>and <00:28:05.690>then <00:28:05.865>I'm <00:28:06.040>gonna <00:28:06.215>keep <00:28:06.390>track <00:28:06.565>of <00:28:06.740>the <00:28:06.915>renames

633
00:28:07.355 --> 00:28:08.935
<00:28:07.355>and <00:28:07.588>then <00:28:07.821>I'm <00:28:08.055>gonna <00:28:08.288>use <00:28:08.521>those <00:28:08.755>renames

634
00:28:08.935 --> 00:28:09.975
<00:28:08.935>when <00:28:09.168>those <00:28:09.403>items <00:28:09.637>are <00:28:09.870>used.

635
00:28:10.595 --> 00:28:12.895
<00:28:10.595>Uh, <00:28:10.770>then <00:28:10.945>I <00:28:11.120>need <00:28:11.295>to <00:28:11.470>also <00:28:11.645>understand <00:28:11.820>scoping, <00:28:11.995>right?

636
00:28:12.895 --> 00:28:14.655
<00:28:12.895>Because <00:28:13.095>you <00:28:13.295>can <00:28:13.495>have <00:28:13.695>imports <00:28:13.895>at <00:28:14.095>various <00:28:14.295>levels

637
00:28:14.675 --> 00:28:16.015
<00:28:14.675>and <00:28:14.916>they <00:28:15.157>can <00:28:15.398>shadow <00:28:15.639>each <00:28:15.881>other

638
00:28:16.795 --> 00:28:18.615
<00:28:16.795>and <00:28:17.028>if <00:28:17.261>that <00:28:17.495>was <00:28:17.728>not <00:28:17.961>difficult <00:28:18.195>enough,

639
00:28:18.755 --> 00:28:20.255
<00:28:18.755>you <00:28:18.947>also <00:28:19.140>need <00:28:19.333>to <00:28:19.526>keep <00:28:19.719>track <00:28:19.912>of <00:28:20.105>macros.

640
00:28:20.445 --> 00:28:23.015
<00:28:20.445>Like <00:28:20.620>some <00:28:20.794>stuff <00:28:20.970>might <00:28:21.145>be <00:28:21.320>used <00:28:21.495>in <00:28:21.669>a <00:28:21.845>module

641
00:28:23.015 --> 00:28:25.815
<00:28:23.015>because <00:28:23.190>it <00:28:23.365>gets <00:28:23.540>generated <00:28:23.715>as <00:28:23.890>part <00:28:24.065>of <00:28:24.240>the <00:28:24.415>code

642
00:28:26.045 --> 00:28:27.855
<00:28:26.045>that <00:28:26.220>is <00:28:26.395>related <00:28:26.570>to <00:28:26.745>the <00:28:26.920>expansion <00:28:27.095>of <00:28:27.270>a <00:28:27.445>macro.

643
00:28:28.275 --> 00:28:29.935
<00:28:28.275>But <00:28:28.475>if <00:28:28.675>you're <00:28:28.875>just <00:28:29.075>parsing <00:28:29.275>the <00:28:29.475>source <00:28:29.675>file,

644
00:28:30.075 --> 00:28:31.775
<00:28:30.075>you <00:28:30.250>just <00:28:30.425>see <00:28:30.600>the <00:28:30.775>macro <00:28:30.950>invocation, <00:28:31.125>you <00:28:31.300>don't <00:28:31.475>know

645
00:28:31.775 --> 00:28:32.815
<00:28:31.775>what <00:28:32.009>the <00:28:32.243>macro <00:28:32.477>expands <00:28:32.711>to.

646
00:28:33.475 --> 00:28:38.055
<00:28:33.475>So <00:28:33.630>yes, <00:28:33.786>you <00:28:33.941>can <00:28:34.097>tell <00:28:34.252>with <00:28:34.408>enough <00:28:34.563>effort <00:28:34.719>of <00:28:34.875>investment

647
00:28:38.555 --> 00:28:40.255
<00:28:38.555>but <00:28:38.835>no <00:28:39.115>it <00:28:39.395>is <00:28:39.675>not <00:28:39.955>trivial.

648
00:28:42.295 --> 00:28:46.195
<00:28:42.295>Mm-Hmm. <00:28:42.528>Right. <00:28:42.761>Thanks <00:28:42.995>for <00:28:43.228>clarifying <00:28:43.461>this <00:28:43.695>Luca.

649
00:28:47.455 --> 00:28:49.315
<00:28:47.455>And <00:28:47.688>we <00:28:47.921>jump <00:28:48.155>to <00:28:48.388>the <00:28:48.621>next <00:28:48.855>question.

650
00:28:49.935 --> 00:28:53.715
<00:28:49.935>How <00:28:50.168>extensible <00:28:50.401>is <00:28:50.635>the <00:28:50.868>metadata <00:28:51.101>within <00:28:51.335>rust

651
00:28:53.775 --> 00:28:54.915
<00:28:53.775>stocks <00:28:54.288>chasing <00:28:54.801>format?

652
00:28:57.755 --> 00:28:59.765
<00:28:57.755>What <00:28:58.035>metadata <00:28:58.315>would <00:28:58.595>be <00:28:58.875>my <00:28:59.155>question?

653
00:29:00.865 --> 00:29:04.365
<00:29:00.865>Mm-Hmm. <00:29:01.331>Yeah, <00:29:01.798>maybe <00:29:02.265>the

654
00:29:05.605 --> 00:29:07.325
<00:29:05.605>attendee <00:29:06.071>can <00:29:06.538>clarify <00:29:07.005>this

655
00:29:07.325 --> 00:29:10.165
<00:29:07.325>and <00:29:07.480>in <00:29:07.636>the <00:29:07.791>meantime <00:29:07.947>we <00:29:08.102>can <00:29:08.258>jump <00:29:08.413>to <00:29:08.569>another <00:29:08.725>question.

656
00:29:10.755 --> 00:29:12.165
<00:29:10.755>What <00:29:11.178>are <00:29:11.601>some <00:29:12.024>pitfalls

657
00:29:12.385 --> 00:29:15.725
<00:29:12.385>or <00:29:12.560>diff <00:29:12.735>difficulties <00:29:12.910>deaths <00:29:13.085>could <00:29:13.260>face <00:29:13.435>when <00:29:13.610>they <00:29:13.785>start

658
00:29:15.725 --> 00:29:18.765
<00:29:15.725>working <00:29:15.899>with <00:29:16.074>RAs <00:29:16.250>and <00:29:16.425>format <00:29:16.600>for <00:29:16.774>the <00:29:16.949>first <00:29:17.125>time?

659
00:29:20.265 --> 00:29:23.885
<00:29:20.265>So <00:29:20.498>raux <00:29:20.731>chosen <00:29:20.965>format <00:29:21.198>is <00:29:21.431>very <00:29:21.665>expressive,

660
00:29:25.305 --> 00:29:27.045
<00:29:25.305>but <00:29:25.585>just <00:29:25.865>like <00:29:26.145>working <00:29:26.425>with <00:29:26.705>seen

661
00:29:27.065 --> 00:29:29.645
<00:29:27.065>and <00:29:27.345>generally <00:29:27.625>writing <00:29:27.905>markers, <00:29:28.185>you <00:29:28.465>need

662
00:29:29.645 --> 00:29:31.645
<00:29:29.645>to <00:29:29.878>know <00:29:30.111>the <00:29:30.345>RA <00:29:30.578>language <00:29:30.811>pretty <00:29:31.045>well

663
00:29:32.275 --> 00:29:35.285
<00:29:32.275>because <00:29:32.475>you're <00:29:32.675>gonna <00:29:32.875>be <00:29:33.075>exposed <00:29:33.275>to <00:29:33.475>all <00:29:33.675>sorts

664
00:29:35.425 --> 00:29:37.565
<00:29:35.425>of <00:29:35.774>constructs <00:29:36.125>in <00:29:36.475>that <00:29:36.825>output

665
00:29:38.425 --> 00:29:40.485
<00:29:38.425>and <00:29:38.625>you <00:29:38.825>need <00:29:39.024>to <00:29:39.225>know <00:29:39.425>what <00:29:39.625>they <00:29:39.825>mean

666
00:29:40.505 --> 00:29:41.930
<00:29:40.505>and <00:29:40.688>you <00:29:40.871>need <00:29:41.054>to <00:29:41.237>know <00:29:41.421>the <00:29:41.604>Corona <00:29:41.787>cases.

667
00:29:42.395 --> 00:29:45.245
<00:29:42.395>Another <00:29:42.535>thing <00:29:42.675>that <00:29:42.815>is <00:29:42.955>fairly <00:29:43.095>complex <00:29:43.235>at <00:29:43.375>the <00:29:43.514>moment <00:29:43.655>in <00:29:43.795>rest

668
00:29:45.625 --> 00:29:48.965
<00:29:45.625>format <00:29:45.975>is <00:29:46.325>linking <00:29:46.675>the <00:29:47.025>rest

669
00:29:49.585 --> 00:29:51.645
<00:29:49.585>output <00:29:49.935>from <00:29:50.285>different <00:29:50.635>crates <00:29:50.985>together.

670
00:29:51.865 --> 00:29:54.365
<00:29:51.865>And <00:29:52.098>that's <00:29:52.331>because <00:29:52.565>identifiers <00:29:52.798>are <00:29:53.031>not <00:29:53.265>stable

671
00:29:54.985 --> 00:29:56.365
<00:29:54.985>across, <00:29:55.399>you <00:29:55.812>know, <00:29:56.227>runs.

672
00:29:56.865 --> 00:29:59.925
<00:29:56.865>So <00:29:56.992>if <00:29:57.119>you <00:29:57.246>try <00:29:57.374>to <00:29:57.501>generate <00:29:57.628>rest <00:29:57.755>oxygen <00:29:57.883>format <00:29:58.010>for <00:29:58.137>your <00:29:58.265>crate

673
00:30:00.185 --> 00:30:01.805
<00:30:00.185>and <00:30:00.465>for <00:30:00.745>one <00:30:01.024>of <00:30:01.304>its <00:30:01.585>dependencies,

674
00:30:03.345 --> 00:30:07.365
<00:30:03.345>the <00:30:03.485>ideas <00:30:03.625>in <00:30:03.765>the <00:30:03.905>rest <00:30:04.045>output <00:30:04.185>for <00:30:04.325>your <00:30:04.465>crate <00:30:04.605>that <00:30:04.745>refer

675
00:30:07.365 --> 00:30:10.205
<00:30:07.365>to <00:30:07.520>item <00:30:07.676>in <00:30:07.831>the <00:30:07.987>dependencies <00:30:08.142>will <00:30:08.298>not <00:30:08.453>be <00:30:08.609>the <00:30:08.765>same,

676
00:30:10.745 --> 00:30:13.045
<00:30:10.745>the <00:30:10.945>same <00:30:11.145>ideas <00:30:11.344>that <00:30:11.544>you <00:30:11.745>find <00:30:11.945>directly <00:30:12.145>into

677
00:30:13.045 --> 00:30:14.725
<00:30:13.045>that <00:30:13.511>dependency <00:30:13.978>rest <00:30:14.445>output.

678
00:30:15.035 --> 00:30:17.685
<00:30:15.035>This <00:30:15.175>is <00:30:15.315>one <00:30:15.455>of <00:30:15.595>the <00:30:15.735>most <00:30:15.875>critical <00:30:16.015>and <00:30:16.155>most <00:30:16.295>annoying <00:30:16.435>parts.

679
00:30:18.105 --> 00:30:21.685
<00:30:18.105>Uh, <00:30:18.232>you <00:30:18.359>can <00:30:18.486>work <00:30:18.614>around <00:30:18.741>it, <00:30:18.868>I <00:30:18.995>do <00:30:19.123>cargo <00:30:19.250>chamber <00:30:19.377>checks <00:30:19.505>does,

680
00:30:22.145 --> 00:30:23.645
<00:30:22.145>uh, <00:30:22.482>but <00:30:22.820>it's <00:30:23.157>not <00:30:23.495>easy.

681
00:30:24.195 --> 00:30:25.565
<00:30:24.195>Like <00:30:24.400>it <00:30:24.606>takes <00:30:24.811>a <00:30:25.017>bit <00:30:25.222>of <00:30:25.428>effort

682
00:30:25.665 --> 00:30:28.405
<00:30:25.665>and <00:30:25.792>you <00:30:25.919>know, <00:30:26.046>there's <00:30:26.174>few <00:30:26.301>things <00:30:26.428>you <00:30:26.555>need <00:30:26.683>to <00:30:26.810>be <00:30:26.937>mindful <00:30:27.065>of.

683
00:30:29.185 --> 00:30:33.565
<00:30:29.185>So <00:30:29.312>I <00:30:29.439>would <00:30:29.566>say <00:30:29.694>that's <00:30:29.821>definitely <00:30:29.948>the <00:30:30.075>top <00:30:30.203>item <00:30:30.330>in <00:30:30.457>like <00:30:30.585>things

684
00:30:33.565 --> 00:30:34.845
<00:30:33.565>that <00:30:33.853>are <00:30:34.141>difficult <00:30:34.429>right <00:30:34.717>now.

685
00:30:36.575 --> 00:30:40.385
<00:30:36.575>Great, <00:30:36.925>thank <00:30:37.275>you. <00:30:37.625>Next <00:30:37.975>question.

686
00:30:41.285 --> 00:30:46.145
<00:30:41.285>Ah, <00:30:41.440>sorry. <00:30:41.596>How <00:30:41.751>widespread <00:30:41.907>is <00:30:42.062>the <00:30:42.218>adoption <00:30:42.373>of <00:30:42.529>rustock <00:30:42.685>chase

687
00:30:46.145 --> 00:30:47.905
<00:30:46.145>and <00:30:46.425>format <00:30:46.705>within <00:30:46.985>the <00:30:47.264>RAs <00:30:47.545>community?

688
00:30:49.615 --> 00:30:51.745
<00:30:49.615>It's, <00:30:50.081>it's <00:30:50.548>fairly <00:30:51.015>widespread.

689
00:30:51.765 --> 00:30:52.785
<00:30:51.765>So <00:30:51.948>if <00:30:52.132>you <00:30:52.315>consider <00:30:52.499>it's <00:30:52.683>uh,

690
00:30:53.495 --> 00:30:56.185
<00:30:53.495>nightly <00:30:53.728>only <00:30:53.961>thing <00:30:54.195>at <00:30:54.428>the <00:30:54.661>moment, <00:30:54.895>um,

691
00:30:56.405 --> 00:30:58.745
<00:30:56.405>you <00:30:56.605>already <00:30:56.805>have <00:30:57.004>a <00:30:57.205>few <00:30:57.405>tools <00:30:57.605>out <00:30:57.805>there.

692
00:30:59.195 --> 00:31:02.065
<00:30:59.195>Cargo <00:30:59.395>checks <00:30:59.595>in <00:30:59.794>particular <00:30:59.995>is <00:31:00.195>pretty <00:31:00.395>widely <00:31:00.595>used.

693
00:31:02.245 --> 00:31:04.065
<00:31:02.245>Uh, <00:31:02.419>it's <00:31:02.594>been <00:31:02.770>adopted <00:31:02.945>by <00:31:03.120>a <00:31:03.294>lot <00:31:03.469>of <00:31:03.645>crates,

694
00:31:04.065 --> 00:31:05.425
<00:31:04.065>some <00:31:04.371>very <00:31:04.677>high <00:31:04.983>profile <00:31:05.289>ones.

695
00:31:06.205 --> 00:31:10.265
<00:31:06.205>Um, <00:31:06.332>it's <00:31:06.459>not <00:31:06.586>as <00:31:06.714>widespread <00:31:06.841>as <00:31:06.968>it <00:31:07.095>should <00:31:07.223>be <00:31:07.350>in <00:31:07.477>my <00:31:07.605>opinion,

696
00:31:10.275 --> 00:31:13.265
<00:31:10.275>which <00:31:10.402>is <00:31:10.529>one <00:31:10.656>of <00:31:10.784>the <00:31:10.911>reasons <00:31:11.038>I <00:31:11.165>give <00:31:11.293>this <00:31:11.420>talk, <00:31:11.547>which <00:31:11.675>is

697
00:31:13.365 --> 00:31:14.745
<00:31:13.365>to <00:31:13.613>go <00:31:13.861>out <00:31:14.110>there, <00:31:14.358>you <00:31:14.607>know,

698
00:31:14.765 --> 00:31:16.345
<00:31:14.765>and <00:31:14.965>take <00:31:15.165>the <00:31:15.365>work <00:31:15.565>that <00:31:15.765>people <00:31:15.965>are <00:31:16.165>doing

699
00:31:16.345 --> 00:31:17.465
<00:31:16.345>inside <00:31:16.849>Thera <00:31:17.352>compiler

700
00:31:17.725 --> 00:31:20.345
<00:31:17.725>and <00:31:17.899>say <00:31:18.074>there's <00:31:18.250>this <00:31:18.425>very <00:31:18.600>awesome <00:31:18.774>tool, <00:31:18.949>this <00:31:19.125>is

701
00:31:20.395 --> 00:31:22.185
<00:31:20.395>where <00:31:20.550>it <00:31:20.706>fits <00:31:20.861>and <00:31:21.017>this <00:31:21.172>is <00:31:21.328>how <00:31:21.483>you <00:31:21.639>use <00:31:21.795>it.

702
00:31:22.565 --> 00:31:26.065
<00:31:22.565>So <00:31:22.692>then <00:31:22.819>some <00:31:22.946>of <00:31:23.074>you <00:31:23.201>tomorrow <00:31:23.328>might <00:31:23.455>go <00:31:23.583>use <00:31:23.710>it <00:31:23.837>in <00:31:23.965>some

703
00:31:26.065 --> 00:31:29.545
<00:31:26.065>of <00:31:26.192>your <00:31:26.319>stuff <00:31:26.446>and <00:31:26.574>it <00:31:26.701>doesn't <00:31:26.828>have <00:31:26.955>to <00:31:27.083>be <00:31:27.210>anything <00:31:27.337>big, <00:31:27.465>right?

704
00:31:29.545 --> 00:31:31.545
<00:31:29.545>Like <00:31:29.778>you <00:31:30.011>can <00:31:30.245>write <00:31:30.478>very <00:31:30.711>tiny <00:31:30.945>tools.

705
00:31:31.805 --> 00:31:32.905
<00:31:31.805>We <00:31:32.052>just <00:31:32.300>stopped <00:31:32.547>using <00:31:32.795>format.

706
00:31:33.495 --> 00:31:34.585
<00:31:33.495>Like <00:31:33.740>you <00:31:33.985>might <00:31:34.230>wanna <00:31:34.476>go

707
00:31:34.765 --> 00:31:37.865
<00:31:34.765>and <00:31:34.892>see <00:31:35.019>a, <00:31:35.146>I <00:31:35.274>wanna <00:31:35.401>know <00:31:35.528>if <00:31:35.655>I'm <00:31:35.783>using <00:31:35.910>a <00:31:36.037>certain <00:31:36.165>item

708
00:31:37.865 --> 00:31:40.305
<00:31:37.865>inside <00:31:38.065>my <00:31:38.265>API, <00:31:38.465>you <00:31:38.665>can <00:31:38.865>go <00:31:39.065>find <00:31:39.265>it

709
00:31:40.365 --> 00:31:43.305
<00:31:40.365>and <00:31:40.540>that <00:31:40.715>takes <00:31:40.890>really <00:31:41.065>not <00:31:41.240>a <00:31:41.415>lot <00:31:41.590>of <00:31:41.765>effort.

710
00:31:43.525 --> 00:31:45.065
<00:31:43.525>You <00:31:43.698>could <00:31:43.871>even <00:31:44.044>do <00:31:44.218>it <00:31:44.391>on <00:31:44.564>the <00:31:44.737>common <00:31:44.911>line

711
00:31:45.065 --> 00:31:47.065
<00:31:45.065>with <00:31:45.265>jq <00:31:45.465>just <00:31:45.665>you <00:31:45.865>know, <00:31:46.065>generated <00:31:46.265>jsm <00:31:46.465>format

712
00:31:47.125 --> 00:31:48.545
<00:31:47.125>and <00:31:47.307>a <00:31:47.490>little <00:31:47.672>bit <00:31:47.855>of <00:31:48.037>a <00:31:48.220>JQ <00:31:48.403>filter

713
00:31:48.545 --> 00:31:50.065
<00:31:48.545>expression <00:31:48.773>and <00:31:49.001>then <00:31:49.229>you <00:31:49.457>get <00:31:49.685>some <00:31:49.913>results.

714
00:31:50.655 --> 00:31:52.665
<00:31:50.655>Like <00:31:50.830>the <00:31:51.004>barrier <00:31:51.180>to <00:31:51.355>entry <00:31:51.530>doesn't <00:31:51.705>have <00:31:51.879>to <00:31:52.055>be,

715
00:31:52.785 --> 00:31:55.545
<00:31:52.785>I <00:31:52.940>got <00:31:53.096>a <00:31:53.251>build <00:31:53.407>a <00:31:53.562>super <00:31:53.718>complex <00:31:53.873>study <00:31:54.029>analysis <00:31:54.185>tool,

716
00:31:55.775 --> 00:31:58.305
<00:31:55.775>it's <00:31:55.915>actually <00:31:56.055>I <00:31:56.195>wanna <00:31:56.335>satisfy <00:31:56.475>a <00:31:56.615>very, <00:31:56.755>I <00:31:56.895>want <00:31:57.035>an <00:31:57.175>answer

717
00:31:58.305 --> 00:31:59.745
<00:31:58.305>to <00:31:58.564>a <00:31:58.823>very <00:31:59.082>specific <00:31:59.341>small <00:31:59.601>question

718
00:32:00.125 --> 00:32:01.465
<00:32:00.125>and <00:32:00.326>I <00:32:00.527>know <00:32:00.728>that <00:32:00.928>this <00:32:01.129>tool <00:32:01.331>exists

719
00:32:01.765 --> 00:32:02.985
<00:32:01.765>and <00:32:01.921>I <00:32:02.078>know <00:32:02.235>that <00:32:02.392>this <00:32:02.549>is <00:32:02.706>the <00:32:02.862>schema

720
00:32:02.985 --> 00:32:04.665
<00:32:02.985>and <00:32:03.218>I'm <00:32:03.451>gonna <00:32:03.685>get <00:32:03.918>that <00:32:04.151>question <00:32:04.385>answered,

721
00:32:07.385 --> 00:32:08.385
<00:32:07.385>Right? <00:32:07.835>Yeah. <00:32:08.285>Thank

722
00:32:08.385 --> 00:32:09.495
<00:32:08.385>you <00:32:08.717>for <00:32:09.051>this <00:32:09.384>answers.

723
00:32:09.525 --> 00:32:11.975
<00:32:09.525>Well <00:32:09.725>we <00:32:09.925>got <00:32:10.125>a <00:32:10.325>follow <00:32:10.525>up <00:32:10.725>to <00:32:10.925>the,

724
00:32:12.555 --> 00:32:14.415
<00:32:12.555>to <00:32:12.788>metadata, <00:32:13.021>uh, <00:32:13.255>follow <00:32:13.488>up <00:32:13.721>on <00:32:13.955>met.

725
00:32:14.995 --> 00:32:17.295
<00:32:14.995>Can <00:32:15.274>I <00:32:15.554>add <00:32:15.834>custom <00:32:16.114>metadata <00:32:16.395>tag

726
00:32:17.435 --> 00:32:19.655
<00:32:17.435>or <00:32:17.784>extend <00:32:18.135>existing <00:32:18.485>metadata <00:32:18.835>structure

727
00:32:19.715 --> 00:32:21.855
<00:32:19.715>to <00:32:20.064>add <00:32:20.415>project <00:32:20.764>specific <00:32:21.115>information?

728
00:32:23.255 --> 00:32:26.695
<00:32:23.255>I <00:32:23.410>would, <00:32:23.566>I <00:32:23.721>wish <00:32:23.877>that <00:32:24.032>was <00:32:24.188>true. <00:32:24.343>Um, <00:32:24.499>not <00:32:24.655>quite.

729
00:32:27.955 --> 00:32:30.295
<00:32:27.955>And <00:32:28.110>that's <00:32:28.266>really <00:32:28.421>not <00:32:28.577>an <00:32:28.732>issue <00:32:28.888>of <00:32:29.043>breast <00:32:29.199>autism <00:32:29.355>format

730
00:32:30.435 --> 00:32:32.735
<00:32:30.435>as <00:32:30.575>far <00:32:30.715>as <00:32:30.855>I <00:32:30.995>understand <00:32:31.135>is <00:32:31.274>more <00:32:31.415>issue <00:32:31.554>of <00:32:31.695>breast <00:32:31.835>C.

731
00:32:33.435 --> 00:32:34.975
<00:32:33.435>Um, <00:32:33.897>so <00:32:34.359>you <00:32:34.821>know

732
00:32:34.975 --> 00:32:37.975
<00:32:34.975>that <00:32:35.175>you <00:32:35.375>can <00:32:35.574>have <00:32:35.774>like <00:32:35.975>two <00:32:36.175>specific <00:32:36.375>annotations

733
00:32:37.975 --> 00:32:39.055
<00:32:37.975>inside <00:32:38.217>your <00:32:38.461>RA <00:32:38.704>code, <00:32:38.947>right?

734
00:32:39.225 --> 00:32:42.925
<00:32:39.225>Uh, <00:32:39.365>you <00:32:39.504>can <00:32:39.645>add <00:32:39.784>for <00:32:39.925>example, <00:32:40.064>clippy <00:32:40.205>annotations <00:32:40.344>where <00:32:40.485>you <00:32:40.625>go

735
00:32:43.765 --> 00:32:47.525
<00:32:43.765>ash <00:32:44.045>square <00:32:44.325>brackets <00:32:44.605>allow <00:32:44.885>clippy <00:32:45.165>column,

736
00:32:47.525 --> 00:32:50.005
<00:32:47.525>column <00:32:47.758>a <00:32:47.991>certain <00:32:48.225>like, <00:32:48.458>uh, <00:32:48.691>length <00:32:48.925>name.

737
00:32:50.945 --> 00:32:52.805
<00:32:50.945>And <00:32:51.145>these, <00:32:51.345>as <00:32:51.544>far <00:32:51.745>as <00:32:51.945>I <00:32:52.145>understand <00:32:52.345>is

738
00:32:52.805 --> 00:32:55.445
<00:32:52.805>because <00:32:53.038>clippy <00:32:53.271>special <00:32:53.505>cased <00:32:53.738>inside <00:32:53.971>the <00:32:54.205>Impala.

739
00:32:55.665 --> 00:32:58.165
<00:32:55.665>And <00:32:55.865>so <00:32:56.065>when <00:32:56.264>you <00:32:56.465>go <00:32:56.665>into <00:32:56.865>reductionism <00:32:57.065>format,

740
00:32:58.605 --> 00:33:01.605
<00:32:58.605>I <00:32:58.760>haven't <00:32:58.916>verified <00:32:59.071>this, <00:32:59.227>but <00:32:59.382>I'm <00:32:59.538>fairly <00:32:59.693>confident <00:32:59.849>you <00:33:00.005>uh,

741
00:33:01.605 --> 00:33:04.005
<00:33:01.605>you <00:33:01.745>have <00:33:01.885>a <00:33:02.025>field <00:33:02.165>called <00:33:02.305>attributes <00:33:02.445>on <00:33:02.585>most <00:33:02.725>of <00:33:02.865>the <00:33:03.005>items

742
00:33:04.105 --> 00:33:06.845
<00:33:04.105>and <00:33:04.260>you're <00:33:04.416>gonna <00:33:04.571>find <00:33:04.727>those <00:33:04.882>clip <00:33:05.038>attributes <00:33:05.193>there <00:33:05.349>as <00:33:05.505>well

743
00:33:06.845 --> 00:33:09.965
<00:33:06.845>as, <00:33:06.985>I <00:33:07.125>dunno <00:33:07.265>if <00:33:07.405>you'll <00:33:07.545>notate <00:33:07.685>a <00:33:07.825>function <00:33:07.965>with <00:33:08.105>inline <00:33:08.245>like

744
00:33:09.965 --> 00:33:12.525
<00:33:09.965>that <00:33:10.105>in <00:33:10.245>line <00:33:10.385>is <00:33:10.524>gonna <00:33:10.665>be <00:33:10.804>in <00:33:10.945>the <00:33:11.084>chosen <00:33:11.225>and <00:33:11.365>output.

745
00:33:13.515 --> 00:33:17.525
<00:33:13.515>Unfortunately, <00:33:13.690>I <00:33:13.865>don't <00:33:14.040>think <00:33:14.215>you <00:33:14.390>can <00:33:14.565>define <00:33:14.740>like <00:33:14.915>custom

746
00:33:17.755 --> 00:33:18.805
<00:33:17.755>tool <00:33:18.700>attributes.

747
00:33:19.105 --> 00:33:23.765
<00:33:19.105>You're <00:33:19.280>like <00:33:19.455>OG <00:33:19.630>my <00:33:19.805>project <00:33:19.980>name, <00:33:20.155>colon, <00:33:20.330>colon, <00:33:20.505>whatever.

748
00:33:24.345 --> 00:33:26.165
<00:33:24.345>Unless <00:33:24.625>those <00:33:24.905>things <00:33:25.185>are <00:33:25.465>actually <00:33:25.745>macros.

749
00:33:26.625 --> 00:33:28.565
<00:33:26.625>But <00:33:26.858>if <00:33:27.091>they're <00:33:27.325>macros <00:33:27.558>they <00:33:27.791>get <00:33:28.025>expanded

750
00:33:29.025 --> 00:33:30.125
<00:33:29.025>and <00:33:29.190>so <00:33:29.355>you're <00:33:29.520>not <00:33:29.685>gonna <00:33:29.850>see <00:33:30.015>them

751
00:33:30.465 --> 00:33:31.685
<00:33:30.465>in <00:33:30.684>the <00:33:30.904>rest <00:33:31.123>structures <00:33:31.343>and <00:33:31.562>output.

752
00:33:32.115 --> 00:33:35.645
<00:33:32.115>This <00:33:32.255>is <00:33:32.395>something <00:33:32.535>I <00:33:32.675>actually <00:33:32.815>would <00:33:32.955>like <00:33:33.095>to <00:33:33.235>have <00:33:33.375>for <00:33:33.515>pubs,

753
00:33:35.645 --> 00:33:36.805
<00:33:35.645>which <00:33:35.906>is <00:33:36.167>my <00:33:36.428>web <00:33:36.689>framework

754
00:33:36.805 --> 00:33:39.005
<00:33:36.805>because <00:33:36.960>I <00:33:37.116>would <00:33:37.271>like <00:33:37.427>to <00:33:37.582>be <00:33:37.738>able <00:33:37.893>to <00:33:38.049>annotate <00:33:38.205>stuff

755
00:33:39.225 --> 00:33:41.245
<00:33:39.225>and <00:33:39.425>then <00:33:39.625>see <00:33:39.824>those <00:33:40.024>annotations <00:33:40.225>in <00:33:40.425>the <00:33:40.625>output

756
00:33:41.245 --> 00:33:43.685
<00:33:41.245>and <00:33:41.445>then <00:33:41.645>do <00:33:41.844>stuff <00:33:42.044>based <00:33:42.245>on <00:33:42.445>those <00:33:42.645>annotations.

757
00:33:44.465 --> 00:33:46.805
<00:33:44.465>But <00:33:44.665>as <00:33:44.865>of <00:33:45.064>now <00:33:45.264>it's <00:33:45.465>not <00:33:45.665>quite <00:33:45.865>supported.

758
00:33:47.185 --> 00:33:49.325
<00:33:47.185>But <00:33:47.465>I <00:33:47.745>think <00:33:48.024>it's <00:33:48.304>a <00:33:48.585>direction

759
00:33:49.325 --> 00:33:51.325
<00:33:49.325>that <00:33:49.500>the <00:33:49.675>RAs <00:33:49.850>competitor <00:33:50.025>team <00:33:50.200>might <00:33:50.375>be <00:33:50.550>open <00:33:50.725>to

760
00:33:51.325 --> 00:33:53.405
<00:33:51.325>because <00:33:51.558>there's <00:33:51.791>a <00:33:52.025>variety <00:33:52.258>of <00:33:52.491>different <00:33:52.725>tools

761
00:33:53.555 --> 00:33:55.685
<00:33:53.555>that <00:33:53.788>wanna <00:33:54.021>start <00:33:54.255>using <00:33:54.488>their <00:33:54.721>own <00:33:54.955>annotations.

762
00:33:56.225 --> 00:33:57.965
<00:33:56.225>And <00:33:56.399>so <00:33:56.574>it <00:33:56.750>will <00:33:56.925>be <00:33:57.100>enough <00:33:57.274>for <00:33:57.449>thera <00:33:57.625>compiler

763
00:33:57.965 --> 00:33:58.965
<00:33:57.965>to <00:33:58.189>just <00:33:58.415>pass <00:33:58.639>them <00:33:58.865>through.

764
00:33:59.315 --> 00:34:03.725
<00:33:59.315>Like <00:33:59.442>if <00:33:59.569>you <00:33:59.696>see <00:33:59.824>an <00:33:59.951>annotation <00:34:00.078>for <00:34:00.205>a <00:34:00.333>namespace, <00:34:00.460>so <00:34:00.587>to <00:34:00.715>say,

765
00:34:03.995 --> 00:34:07.465
<00:34:03.995>that <00:34:04.169>doesn't <00:34:04.344>mean <00:34:04.520>anything <00:34:04.695>to <00:34:04.870>the <00:34:05.044>compiler, <00:34:05.219>leave <00:34:05.395>it,

766
00:34:07.895 --> 00:34:08.905
<00:34:07.895>like <00:34:08.197>don't <00:34:08.501>process <00:34:08.804>it.

767
00:34:09.485 --> 00:34:12.865
<00:34:09.485>And <00:34:09.612>that <00:34:09.739>would <00:34:09.866>be <00:34:09.994>enough <00:34:10.121>to <00:34:10.248>use <00:34:10.375>as <00:34:10.503>hook <00:34:10.630>for <00:34:10.757>doing <00:34:10.885>things.

768
00:34:17.035 --> 00:34:19.605
<00:34:17.034>Yeah. <00:34:17.190>So <00:34:17.346>maybe <00:34:17.501>let's <00:34:17.657>all <00:34:17.812>write <00:34:17.968>it <00:34:18.123>on <00:34:18.279>the <00:34:18.435>wishlist

769
00:34:19.985 --> 00:34:24.245
<00:34:19.985>to <00:34:20.092>the <00:34:20.200>devs <00:34:20.308>have <00:34:20.415>a <00:34:20.523>long, <00:34:20.631>maybe <00:34:20.738>we <00:34:20.846>see <00:34:20.954>it <00:34:21.061>in, <00:34:21.169>in, <00:34:21.277>in, <00:34:21.385>in,

770
00:34:24.745 --> 00:34:26.325
<00:34:24.745>in <00:34:25.025>one <00:34:25.304>of <00:34:25.585>the <00:34:25.864>next <00:34:26.145>releases.

771
00:34:27.205 --> 00:34:30.285
<00:34:27.205>A <00:34:27.554>long <00:34:27.904>wishlist. <00:34:28.255>All <00:34:28.605>right.

772
00:34:30.465 --> 00:34:33.845
<00:34:30.465>Um, <00:34:31.165>let's <00:34:31.865>go

773
00:34:33.985 --> 00:34:35.525
<00:34:33.985>on <00:34:34.331>to <00:34:34.678>the <00:34:35.024>next <00:34:35.371>question.

774
00:34:35.915 --> 00:34:38.525
<00:34:35.915>This <00:34:36.195>one. <00:34:36.475>Are <00:34:36.755>there <00:34:37.034>security <00:34:37.315>considerations

775
00:34:38.665 --> 00:34:39.965
<00:34:38.665>or <00:34:39.250>best <00:34:39.835>practices

776
00:34:39.985 --> 00:34:43.405
<00:34:39.985>to <00:34:40.265>prevent <00:34:40.545>potential <00:34:40.825>vulner <00:34:41.105>vulnerabilities <00:34:41.385>or,

777
00:34:43.625 --> 00:34:45.965
<00:34:43.625>or <00:34:43.905>misuses <00:34:44.185>of <00:34:44.465>the <00:34:44.745>generated <00:34:45.025>code?

778
00:34:47.255 --> 00:34:48.975
<00:34:47.255>I <00:34:47.430>mean <00:34:47.605>generated <00:34:47.780>code <00:34:47.955>is <00:34:48.130>your <00:34:48.305>own <00:34:48.480>choice, <00:34:48.655>right?

779
00:34:48.975 --> 00:34:51.215
<00:34:48.975>Like <00:34:49.174>researches <00:34:49.375>inform <00:34:49.574>is <00:34:49.775>just <00:34:49.975>a <00:34:50.174>J <00:34:50.375>file.

780
00:34:51.765 --> 00:34:53.575
<00:34:51.764>Then <00:34:51.964>if <00:34:52.165>you <00:34:52.364>use <00:34:52.565>that <00:34:52.764>to <00:34:52.964>generate <00:34:53.165>code,

781
00:34:54.725 --> 00:34:57.455
<00:34:54.725>then <00:34:54.880>it <00:34:55.036>all <00:34:55.191>depends <00:34:55.347>on <00:34:55.502>what's <00:34:55.658>doing <00:34:55.813>the <00:34:55.969>generation, <00:34:56.125>how

782
00:34:57.455 --> 00:34:59.495
<00:34:57.455>that's <00:34:57.805>built, <00:34:58.154>how <00:34:58.505>that's <00:34:58.855>secured.

783
00:34:59.915 --> 00:35:02.695
<00:34:59.915>So <00:35:00.115>generally <00:35:00.315>speaking, <00:35:00.515>like <00:35:00.715>the <00:35:00.915>tool <00:35:01.115>itself <00:35:01.315>has

784
00:35:02.695 --> 00:35:03.815
<00:35:02.695>no <00:35:03.199>security <00:35:03.703>consideration.

785
00:35:04.175 --> 00:35:06.695
<00:35:04.175>Whatever <00:35:04.350>security <00:35:04.525>considerations <00:35:04.700>there <00:35:04.875>are <00:35:05.050>are <00:35:05.225>in <00:35:05.400>the <00:35:05.575>tool

786
00:35:06.695 --> 00:35:08.735
<00:35:06.695>that's <00:35:06.850>using <00:35:07.006>that <00:35:07.161>as <00:35:07.317>input <00:35:07.472>to <00:35:07.628>do <00:35:07.783>some <00:35:07.939>other <00:35:08.095>stuff.

787
00:35:12.395 --> 00:35:15.445
<00:35:12.395>All <00:35:12.745>right, <00:35:13.095>thanks. <00:35:13.445>Next <00:35:13.795>question.

788
00:35:15.785 --> 00:35:19.085
<00:35:15.785>How <00:35:15.960>does <00:35:16.134>Rust <00:35:16.310>Doc <00:35:16.484>chase <00:35:16.660>and <00:35:16.835>format <00:35:17.009>handle <00:35:17.185>scenarios?

789
00:35:19.105 --> 00:35:23.925
<00:35:19.105>We <00:35:19.305>had <00:35:19.505>a <00:35:19.705>rust <00:35:19.905>I-I-A-P-I <00:35:20.105>involves <00:35:20.305>complex <00:35:20.505>generics

790
00:35:23.985 --> 00:35:25.525
<00:35:23.985>or <00:35:24.678>trade <00:35:25.371>implementations.

791
00:35:25.915 --> 00:35:28.165
<00:35:25.915>They're <00:35:26.090>gonna <00:35:26.265>be <00:35:26.440>there <00:35:26.615>like, <00:35:26.790>you <00:35:26.965>know, <00:35:27.140>you <00:35:27.315>generate

792
00:35:28.985 --> 00:35:31.085
<00:35:28.985>the <00:35:29.185>rust <00:35:29.385>doc <00:35:29.585>chase <00:35:29.785>and <00:35:29.985>output <00:35:30.185>for <00:35:30.385>something

793
00:35:31.085 --> 00:35:32.405
<00:35:31.085>that <00:35:31.382>has <00:35:31.679>very <00:35:31.976>complex <00:35:32.273>bound.

794
00:35:32.825 --> 00:35:34.085
<00:35:32.825>You're <00:35:33.108>gonna <00:35:33.392>find <00:35:33.675>that <00:35:33.959>function,

795
00:35:34.085 --> 00:35:36.005
<00:35:34.085>you're <00:35:34.318>gonna <00:35:34.551>find <00:35:34.785>all <00:35:35.018>the <00:35:35.251>generic <00:35:35.485>parameters,

796
00:35:36.005 --> 00:35:37.645
<00:35:36.005>you're <00:35:36.238>gonna <00:35:36.471>find <00:35:36.705>all <00:35:36.938>the <00:35:37.171>trade <00:35:37.405>bounds,

797
00:35:37.645 --> 00:35:39.325
<00:35:37.645>you're <00:35:37.878>gonna <00:35:38.111>find <00:35:38.345>all <00:35:38.578>the <00:35:38.811>lifetime <00:35:39.045>parameters.

798
00:35:39.825 --> 00:35:42.045
<00:35:39.825>So <00:35:40.058>all <00:35:40.291>that <00:35:40.524>information <00:35:40.758>is <00:35:40.991>absolutely <00:35:41.225>preserved.

799
00:35:42.075 --> 00:35:44.485
<00:35:42.075>Like <00:35:42.250>you're, <00:35:42.424>you're <00:35:42.600>gonna <00:35:42.774>get <00:35:42.950>a <00:35:43.125>full <00:35:43.299>fidelity <00:35:43.475>picture

800
00:35:44.705 --> 00:35:48.965
<00:35:44.705>of <00:35:44.860>the <00:35:45.016>public <00:35:45.171>API <00:35:45.327>now <00:35:45.482>making <00:35:45.638>sense <00:35:45.793>of <00:35:45.949>that <00:35:46.105>information

801
00:35:49.465 --> 00:35:51.645
<00:35:49.465>as <00:35:49.592>I <00:35:49.719>was <00:35:49.846>touching <00:35:49.974>on <00:35:50.101>in <00:35:50.228>the <00:35:50.355>talk <00:35:50.483>as <00:35:50.610>a <00:35:50.737>different <00:35:50.865>story.

802
00:35:52.265 --> 00:35:55.525
<00:35:52.265>Um, <00:35:52.464>that's <00:35:52.665>why <00:35:52.865>I <00:35:53.065>don't <00:35:53.265>necessarily <00:35:53.464>recommend <00:35:53.665>trying

803
00:35:55.605 --> 00:36:00.285
<00:35:55.605>to <00:35:55.760>do <00:35:55.916>fairly <00:35:56.071>complex <00:35:56.227>like <00:35:56.382>trade <00:35:56.538>reasoning <00:35:56.693>with <00:35:56.849>the <00:35:57.005>rest

804
00:36:00.625 --> 00:36:04.605
<00:36:00.625>and <00:36:00.780>format <00:36:00.936>output <00:36:01.091>because <00:36:01.247>that's <00:36:01.402>just <00:36:01.558>a <00:36:01.713>very <00:36:01.869>complex <00:36:02.025>domain

805
00:36:04.985 --> 00:36:06.645
<00:36:04.985>and <00:36:05.265>so <00:36:05.545>you're <00:36:05.825>getting <00:36:06.105>the <00:36:06.385>input

806
00:36:07.265 --> 00:36:09.245
<00:36:07.265>but <00:36:07.498>the <00:36:07.731>machinery <00:36:07.964>to <00:36:08.198>process <00:36:08.431>that <00:36:08.665>input

807
00:36:09.245 --> 00:36:12.125
<00:36:09.245>and <00:36:09.444>get <00:36:09.645>meaningful <00:36:09.845>correct <00:36:10.045>answers <00:36:10.245>out <00:36:10.444>of <00:36:10.645>it

808
00:36:12.865 --> 00:36:14.045
<00:36:12.865>is <00:36:13.130>far <00:36:13.395>from <00:36:13.661>being <00:36:13.927>three.

809
00:36:14.625 --> 00:36:17.085
<00:36:14.625>And <00:36:14.800>unfortunately <00:36:14.975>the <00:36:15.150>RAs <00:36:15.325>compiler <00:36:15.500>is <00:36:15.675>not <00:36:15.850>necessarily <00:36:16.025>the

810
00:36:17.085 --> 00:36:18.605
<00:36:17.085>most <00:36:17.769>modular <00:36:18.453>compiler.

811
00:36:18.915 --> 00:36:20.085
<00:36:18.915>Like <00:36:19.178>you <00:36:19.441>can't <00:36:19.704>just <00:36:19.968>go

812
00:36:20.085 --> 00:36:22.205
<00:36:20.085>and <00:36:20.365>say, <00:36:20.645>okay, <00:36:20.925>you <00:36:21.205>know, <00:36:21.485>RASC,

813
00:36:22.325 --> 00:36:23.565
<00:36:22.325>I <00:36:22.511>just <00:36:22.697>wanna <00:36:22.883>use <00:36:23.069>the <00:36:23.255>trade <00:36:23.441>solver

814
00:36:24.485 --> 00:36:26.345
<00:36:24.485>and <00:36:24.685>just <00:36:24.885>solve <00:36:25.085>this <00:36:25.285>for <00:36:25.485>me <00:36:25.685>very <00:36:25.885>quickly.

815
00:36:27.105 --> 00:36:30.185
<00:36:27.105>'cause <00:36:27.260>there's <00:36:27.416>no <00:36:27.571>off-the-shelf <00:36:27.727>trade <00:36:27.882>solver <00:36:28.038>to <00:36:28.193>go <00:36:28.349>get, <00:36:28.505>uh,

816
00:36:30.185 --> 00:36:32.545
<00:36:30.185>there's <00:36:30.384>an <00:36:30.585>effort <00:36:30.785>that's <00:36:30.985>been <00:36:31.185>an <00:36:31.384>ongoing <00:36:31.585>effort

817
00:36:32.665 --> 00:36:34.905
<00:36:32.665>to <00:36:32.945>modularize <00:36:33.225>the <00:36:33.505>compiler <00:36:33.785>over <00:36:34.065>time.

818
00:36:35.175 --> 00:36:37.145
<00:36:35.175>There's <00:36:35.408>efforts <00:36:35.641>for <00:36:35.875>a <00:36:36.108>new <00:36:36.341>trade <00:36:36.575>solver,

819
00:36:38.305 --> 00:36:39.925
<00:36:38.305>but <00:36:38.480>none <00:36:38.654>of <00:36:38.830>these <00:36:39.004>at <00:36:39.180>the <00:36:39.355>stage <00:36:39.529>of <00:36:39.705>maturity

820
00:36:39.975 --> 00:36:43.085
<00:36:39.975>where <00:36:40.130>I <00:36:40.286>can <00:36:40.441>point <00:36:40.597>you <00:36:40.752>at <00:36:40.908>go <00:36:41.063>there, <00:36:41.219>do <00:36:41.375>this,

821
00:36:43.555 --> 00:36:44.565
<00:36:43.555>it's <00:36:43.782>just <00:36:44.009>not <00:36:44.236>there <00:36:44.464>yet.

822
00:36:46.895 --> 00:36:50.445
<00:36:46.895>Right. <00:36:47.050>Thanks <00:36:47.206>for <00:36:47.361>this <00:36:47.517>answer <00:36:47.672>as <00:36:47.828>well. <00:36:47.983>Um, <00:36:48.139>next <00:36:48.295>question.

823
00:36:50.715 --> 00:36:53.925
<00:36:50.715>What <00:36:50.870>do <00:36:51.026>you <00:36:51.181>think <00:36:51.337>are <00:36:51.492>the <00:36:51.648>most <00:36:51.803>exciting <00:36:51.959>future <00:36:52.115>developments

824
00:36:53.925 --> 00:36:55.765
<00:36:53.925>related <00:36:54.158>to <00:36:54.391>Rust <00:36:54.625>Stock <00:36:54.858>Chase <00:36:55.091>and <00:36:55.325>format?

825
00:36:55.905 --> 00:36:59.365
<00:36:55.905>And <00:36:56.032>maybe <00:36:56.159>we <00:36:56.286>could <00:36:56.414>also <00:36:56.541>extend <00:36:56.668>this <00:36:56.795>question <00:36:56.923>a <00:36:57.050>bit <00:36:57.177>since <00:36:57.305>you

826
00:36:59.365 --> 00:37:02.125
<00:36:59.365>already <00:36:59.540>mentioned <00:36:59.714>you <00:36:59.890>have <00:37:00.064>like <00:37:00.240>a <00:37:00.415>very <00:37:00.589>long <00:37:00.765>wishlist,

827
00:37:02.625 --> 00:37:06.365
<00:37:02.625>so <00:37:02.752>maybe <00:37:02.879>you <00:37:03.006>can <00:37:03.134>also, <00:37:03.261>uh, <00:37:03.388>tell <00:37:03.515>us <00:37:03.643>about <00:37:03.770>some <00:37:03.897>features <00:37:04.025>that

828
00:37:06.595 --> 00:37:08.525
<00:37:06.595>Yeah, <00:37:06.828>I <00:37:07.061>mean <00:37:07.294>there's <00:37:07.528>fundamentally <00:37:07.761>three <00:37:07.995>things

829
00:37:08.835 --> 00:37:09.885
<00:37:08.835>that <00:37:09.071>I <00:37:09.307>think <00:37:09.543>should <00:37:09.780>come.

830
00:37:10.025 --> 00:37:11.725
<00:37:10.025>Uh, <00:37:10.180>the <00:37:10.336>first <00:37:10.491>one <00:37:10.647>is <00:37:10.802>the <00:37:10.958>one <00:37:11.113>I <00:37:11.269>mentioned <00:37:11.425>before.

831
00:37:12.105 --> 00:37:13.645
<00:37:12.105>Uh, <00:37:12.567>so <00:37:13.029>stable <00:37:13.491>identifiers.

832
00:37:13.785 --> 00:37:15.605
<00:37:13.785>So <00:37:13.984>if <00:37:14.185>you're <00:37:14.384>generating <00:37:14.585>the <00:37:14.785>RAs <00:37:14.984>doc <00:37:15.185>chasin

833
00:37:16.065 --> 00:37:20.205
<00:37:16.065>for <00:37:16.220>an <00:37:16.376>entire <00:37:16.531>workspace <00:37:16.687>dependency <00:37:16.842>tree, <00:37:16.998>I <00:37:17.153>wanna <00:37:17.309>be <00:37:17.465>able

834
00:37:20.205 --> 00:37:22.765
<00:37:20.205>to <00:37:20.380>jump <00:37:20.555>between <00:37:20.730>the <00:37:20.904>chass <00:37:21.080>of <00:37:21.255>these <00:37:21.430>crates <00:37:21.605>in

835
00:37:22.765 --> 00:37:24.725
<00:37:22.765>that <00:37:22.998>dependency <00:37:23.231>tree <00:37:23.464>and <00:37:23.698>find <00:37:23.931>the <00:37:24.165>same

836
00:37:24.725 --> 00:37:26.125
<00:37:24.725>item <00:37:24.977>referred <00:37:25.229>with <00:37:25.481>the <00:37:25.733>same <00:37:25.985>id.

837
00:37:26.635 --> 00:37:30.285
<00:37:26.635>That <00:37:26.775>makes <00:37:26.915>a <00:37:27.055>lot <00:37:27.195>of <00:37:27.335>complex <00:37:27.475>analysis <00:37:27.615>analysis <00:37:27.755>a <00:37:27.895>lot <00:37:28.035>easier.

838
00:37:30.465 --> 00:37:32.285
<00:37:30.465>So <00:37:30.698>that <00:37:30.931>would <00:37:31.165>be <00:37:31.398>number <00:37:31.631>one. <00:37:31.865>Uh,

839
00:37:32.285 --> 00:37:33.925
<00:37:32.285>number <00:37:32.634>two <00:37:32.984>would <00:37:33.335>be <00:37:33.685>stabilization.

840
00:37:34.075 --> 00:37:36.725
<00:37:34.075>Obviously, <00:37:34.250>you <00:37:34.424>know, <00:37:34.600>uh, <00:37:34.774>if <00:37:34.950>you're <00:37:35.125>building <00:37:35.299>a <00:37:35.475>tool

841
00:37:36.905 --> 00:37:39.605
<00:37:36.905>or <00:37:37.060>a <00:37:37.216>library <00:37:37.371>such <00:37:37.527>as <00:37:37.682>me <00:37:37.838>with <00:37:37.993>a <00:37:38.149>web <00:37:38.305>framework

842
00:37:39.755 --> 00:37:42.765
<00:37:39.755>that <00:37:39.895>depends <00:37:40.035>on <00:37:40.175>rest <00:37:40.315>of <00:37:40.455>chase, <00:37:40.595>this <00:37:40.735>means <00:37:40.875>that <00:37:41.015>you <00:37:41.155>need

843
00:37:42.765 --> 00:37:43.805
<00:37:42.765>to <00:37:42.898>tell <00:37:43.032>your <00:37:43.166>users <00:37:43.299>that <00:37:43.433>they <00:37:43.567>need <00:37:43.701>to

844
00:37:43.805 --> 00:37:45.125
<00:37:43.805>install <00:37:44.102>the <00:37:44.399>I <00:37:44.696>three <00:37:44.993>compiler.

845
00:37:45.995 --> 00:37:48.805
<00:37:45.995>That <00:37:46.170>can <00:37:46.345>be <00:37:46.520>done, <00:37:46.694>but <00:37:46.870>be <00:37:47.045>much <00:37:47.220>nicer <00:37:47.395>not

846
00:37:48.805 --> 00:37:52.045
<00:37:48.805>to <00:37:48.921>have <00:37:49.038>two <00:37:49.154>be <00:37:49.271>much <00:37:49.388>nicer <00:37:49.504>to <00:37:49.621>say <00:37:49.738>you <00:37:49.855>can <00:37:49.971>just <00:37:50.088>use <00:37:50.205>stable.

847
00:37:52.505 --> 00:37:56.765
<00:37:52.505>So <00:37:52.645>that'd <00:37:52.785>be <00:37:52.925>great. <00:37:53.065>Um, <00:37:53.205>third <00:37:53.345>tank, <00:37:53.485>um, <00:37:53.625>at <00:37:53.765>the <00:37:53.905>moment,

848
00:37:57.065 --> 00:37:59.045
<00:37:57.065>and <00:37:57.240>this <00:37:57.415>is <00:37:57.590>a <00:37:57.765>actually <00:37:57.940>a <00:37:58.115>bug <00:37:58.290>in <00:37:58.465>OC,

849
00:37:59.565 --> 00:38:02.765
<00:37:59.565>a <00:37:59.798>Bug <00:38:00.031>well <00:38:00.265>Corner <00:38:00.498>case <00:38:00.731>in <00:38:00.965>OC

850
00:38:03.465 --> 00:38:05.005
<00:38:03.465>per <00:38:03.742>se, <00:38:04.019>not <00:38:04.296>just <00:38:04.573>OC <00:38:04.851>Chase.

851
00:38:05.705 --> 00:38:08.285
<00:38:05.705>If <00:38:05.904>you <00:38:06.105>generate <00:38:06.305>the <00:38:06.505>documentation <00:38:06.705>for <00:38:06.904>an <00:38:07.105>entire

852
00:38:09.015 --> 00:38:11.725
<00:38:09.015>dependency <00:38:09.295>tree <00:38:09.575>and <00:38:09.855>there's <00:38:10.134>multiple <00:38:10.415>versions

853
00:38:12.065 --> 00:38:15.885
<00:38:12.065>of <00:38:12.205>the <00:38:12.345>same <00:38:12.485>crate, <00:38:12.625>only <00:38:12.765>one <00:38:12.905>version <00:38:13.045>will <00:38:13.185>actually <00:38:13.325>be <00:38:13.465>in

854
00:38:15.885 --> 00:38:16.965
<00:38:15.885>the <00:38:16.857>documentation.

855
00:38:17.835 --> 00:38:20.295
<00:38:17.835>So <00:38:18.010>if <00:38:18.185>you <00:38:18.360>have <00:38:18.535>two <00:38:18.710>versions <00:38:18.885>of <00:38:19.060>I <00:38:19.235>0.4

856
00:38:20.435 --> 00:38:23.455
<00:38:20.435>and <00:38:20.785>one, <00:38:21.134>whichever <00:38:21.485>gets <00:38:21.835>generated,

857
00:38:23.525 --> 00:38:25.575
<00:38:23.525>lost <00:38:23.725>is <00:38:23.925>the <00:38:24.125>only <00:38:24.325>one <00:38:24.525>you're <00:38:24.725>gonna <00:38:24.925>get

858
00:38:25.845 --> 00:38:29.735
<00:38:25.845>because <00:38:26.020>all <00:38:26.194>the <00:38:26.370>files <00:38:26.544>are <00:38:26.720>called <00:38:26.895>create <00:38:27.069>name <00:38:27.245>extension.

859
00:38:30.355 --> 00:38:34.135
<00:38:30.355>So <00:38:30.530>Hyper <00:38:30.705>0.4 <00:38:30.880>documentation <00:38:31.055>is <00:38:31.230>gonna <00:38:31.405>be <00:38:31.580>Hyper <00:38:31.755>Chis

860
00:38:34.635 --> 00:38:37.885
<00:38:34.635>and <00:38:34.790>Hyper <00:38:34.946>Z <00:38:35.101>1.0 <00:38:35.257>documentation <00:38:35.412>is <00:38:35.568>gonna <00:38:35.723>be <00:38:35.879>hyper <00:38:36.035>do.

861
00:38:38.625 --> 00:38:41.805
<00:38:38.625>So <00:38:38.800>risk, <00:38:38.975>condition, <00:38:39.150>whichever <00:38:39.325>comes <00:38:39.500>last <00:38:39.675>is <00:38:39.850>gonna <00:38:40.025>prevail.

862
00:38:42.065 --> 00:38:45.325
<00:38:42.065>That's <00:38:42.220>not <00:38:42.376>great. <00:38:42.531>Um, <00:38:42.687>so <00:38:42.842>this <00:38:42.998>is <00:38:43.153>one <00:38:43.309>problem <00:38:43.465>needs

863
00:38:45.325 --> 00:38:47.645
<00:38:45.325>to <00:38:45.500>be <00:38:45.674>solved, <00:38:45.850>which <00:38:46.024>is <00:38:46.200>affects <00:38:46.375>both <00:38:46.549>the <00:38:46.725>JSN

864
00:38:47.645 --> 00:38:48.725
<00:38:47.645>and <00:38:47.969>the <00:38:48.293>HTML <00:38:48.616>output.

865
00:38:48.725 --> 00:38:51.845
<00:38:48.725>Like <00:38:48.865>this <00:38:49.005>is <00:38:49.145>true, <00:38:49.285>has <00:38:49.424>been <00:38:49.565>through <00:38:49.705>for <00:38:49.845>many <00:38:49.985>years <00:38:50.125>both.

866
00:38:53.905 --> 00:38:56.165
<00:38:53.905>And <00:38:54.138>uh, <00:38:54.371>what <00:38:54.605>else? <00:38:54.838>It's <00:38:55.071>in <00:38:55.305>there.

867
00:38:56.165 --> 00:38:58.605
<00:38:56.165>Well <00:38:56.320>another <00:38:56.476>thing <00:38:56.631>is <00:38:56.787>at <00:38:56.942>the <00:38:57.098>moment <00:38:57.253>there's <00:38:57.409>equal <00:38:57.565>difficulty

868
00:38:58.825 --> 00:39:02.885
<00:38:58.825>as <00:38:59.000>well <00:38:59.174>in <00:38:59.350>pinpointing <00:38:59.524>when <00:38:59.700>you <00:38:59.875>have <00:39:00.049>multiple <00:39:00.225>versions

869
00:39:02.885 --> 00:39:04.685
<00:39:02.885>of <00:39:03.118>a <00:39:03.351>dependency <00:39:03.585>that <00:39:03.818>are <00:39:04.051>board <00:39:04.285>fared

870
00:39:04.685 --> 00:39:07.725
<00:39:04.685>inside <00:39:04.825>the <00:39:04.965>same <00:39:05.105>document <00:39:05.245>to <00:39:05.384>know <00:39:05.525>which <00:39:05.665>items <00:39:05.805>are <00:39:05.945>coming <00:39:06.085>from

871
00:39:07.725 --> 00:39:10.685
<00:39:07.725>which <00:39:07.880>version <00:39:08.036>at <00:39:08.191>the <00:39:08.347>moment <00:39:08.502>that <00:39:08.658>it's <00:39:08.813>not <00:39:08.969>it <00:39:09.125>easy

872
00:39:10.985 --> 00:39:12.245
<00:39:10.985>to <00:39:12.118>disambiguate.

873
00:39:12.825 --> 00:39:16.445
<00:39:12.825>Um, <00:39:12.952>there's <00:39:13.079>an <00:39:13.206>open <00:39:13.334>MCP <00:39:13.461>which <00:39:13.588>I <00:39:13.715>opened <00:39:13.843>with <00:39:13.970>the <00:39:14.097>RAs <00:39:14.225>compiler

874
00:39:16.445 --> 00:39:17.925
<00:39:16.445>to <00:39:16.611>try <00:39:16.778>to <00:39:16.944>find <00:39:17.111>a <00:39:17.277>way <00:39:17.444>to <00:39:17.610>solve <00:39:17.777>this.

875
00:39:18.545 --> 00:39:21.645
<00:39:18.545>Um, <00:39:18.672>so <00:39:18.799>as <00:39:18.926>you, <00:39:19.054>you <00:39:19.181>know, <00:39:19.308>as <00:39:19.435>you <00:39:19.563>start <00:39:19.690>to <00:39:19.817>build <00:39:19.945>stuff

876
00:39:21.645 --> 00:39:23.485
<00:39:21.645>that <00:39:21.800>is <00:39:21.956>more <00:39:22.111>and <00:39:22.267>more <00:39:22.422>complex, <00:39:22.578>you're <00:39:22.733>gonna <00:39:22.889>eat <00:39:23.045>some

877
00:39:23.485 --> 00:39:24.685
<00:39:23.485>of <00:39:23.755>these <00:39:24.025>kind <00:39:24.295>cases <00:39:24.565>and

878
00:39:24.685 --> 00:39:26.245
<00:39:24.685>that <00:39:24.860>limits <00:39:25.035>a <00:39:25.210>little <00:39:25.384>bit <00:39:25.560>what <00:39:25.735>you <00:39:25.910>can <00:39:26.085>do.

879
00:39:26.865 --> 00:39:29.245
<00:39:26.865>Uh, <00:39:27.098>but <00:39:27.331>I <00:39:27.564>think <00:39:27.798>definitely <00:39:28.031>these <00:39:28.265>things

880
00:39:29.385 --> 00:39:30.445
<00:39:29.385>are <00:39:29.623>going <00:39:29.862>to <00:39:30.100>be <00:39:30.339>solved

881
00:39:31.745 --> 00:39:32.745
<00:39:31.745>Mm-Hmm. <00:39:32.645>Yeah,

882
00:39:32.745 --> 00:39:34.285
<00:39:32.745>some <00:39:33.207>very <00:39:33.669>valid <00:39:34.131>points.

883
00:39:34.665 --> 00:39:36.165
<00:39:34.665>Thanks <00:39:34.935>for <00:39:35.205>sharing <00:39:35.475>those <00:39:35.745>with <00:39:36.015>us.

884
00:39:36.665 --> 00:39:39.085
<00:39:36.665>Um, <00:39:36.898>Luca, <00:39:37.131>you <00:39:37.365>wrote <00:39:37.598>in <00:39:37.831>your <00:39:38.065>bio

885
00:39:39.235 --> 00:39:41.325
<00:39:39.235>that <00:39:39.435>you <00:39:39.635>are <00:39:39.835>a <00:39:40.035>author <00:39:40.235>of <00:39:40.435>a <00:39:40.635>book.

886
00:39:42.195 --> 00:39:46.295
<00:39:42.195>Um, <00:39:42.322>I'm <00:39:42.449>interested <00:39:42.576>in, <00:39:42.704>uh, <00:39:42.831>how <00:39:42.958>did <00:39:43.085>you <00:39:43.213>get <00:39:43.340>the <00:39:43.467>idea <00:39:43.595>to

887
00:39:46.985 --> 00:39:48.375
<00:39:46.985>write <00:39:47.193>the <00:39:47.402>book <00:39:47.610>in <00:39:47.819>the <00:39:48.027>first <00:39:48.236>place

888
00:39:48.435 --> 00:39:50.095
<00:39:48.435>and <00:39:48.785>what's <00:39:49.134>like <00:39:49.485>the <00:39:49.835>process

889
00:39:50.635 --> 00:39:53.335
<00:39:50.635>of <00:39:50.868>writing <00:39:51.101>a <00:39:51.335>scientific <00:39:51.568>book <00:39:51.801>like <00:39:52.035>this?

890
00:39:54.125 --> 00:39:57.015
<00:39:54.125>Well, <00:39:54.280>the <00:39:54.436>idea <00:39:54.591>was <00:39:54.747>not <00:39:54.902>really <00:39:55.058>to <00:39:55.213>write <00:39:55.369>a <00:39:55.525>book.

891
00:39:57.395 --> 00:39:59.655
<00:39:57.395>Um, <00:39:57.550>just <00:39:57.706>to <00:39:57.861>give <00:39:58.017>you <00:39:58.172>a <00:39:58.328>little <00:39:58.483>bit <00:39:58.639>of <00:39:58.795>history,

892
00:39:59.765 --> 00:40:01.575
<00:39:59.765>this <00:40:00.231>was <00:40:00.698>think <00:40:01.165>four

893
00:40:01.575 --> 00:40:03.095
<00:40:01.575>or <00:40:01.803>five <00:40:02.031>years <00:40:02.259>ago <00:40:02.486>at <00:40:02.714>this <00:40:02.942>point,

894
00:40:03.735 --> 00:40:05.855
<00:40:03.735>I <00:40:03.935>was <00:40:04.135>a <00:40:04.335>principal <00:40:04.535>engineer <00:40:04.735>at <00:40:04.935>True <00:40:05.135>Layer,

895
00:40:05.855 --> 00:40:08.015
<00:40:05.855>which <00:40:06.055>is <00:40:06.255>a <00:40:06.455>financial <00:40:06.655>technology <00:40:06.855>company <00:40:07.055>in <00:40:07.255>London.

896
00:40:08.795 --> 00:40:11.535
<00:40:08.795>And <00:40:08.995>two <00:40:09.195>layer <00:40:09.395>at <00:40:09.595>started <00:40:09.795>to <00:40:09.995>adopt <00:40:10.195>trust.

897
00:40:11.815 --> 00:40:13.935
<00:40:11.815>I <00:40:11.990>was <00:40:12.165>one <00:40:12.340>of <00:40:12.515>the <00:40:12.690>people <00:40:12.865>leading <00:40:13.040>the <00:40:13.215>adoption

898
00:40:14.035 --> 00:40:15.495
<00:40:14.035>and <00:40:14.297>just <00:40:14.560>making <00:40:14.823>sure <00:40:15.086>everything <00:40:15.348>worked.

899
00:40:15.835 --> 00:40:18.135
<00:40:15.835>And <00:40:15.975>I <00:40:16.115>was <00:40:16.255>also <00:40:16.395>the <00:40:16.535>main <00:40:16.675>architect <00:40:16.815>of <00:40:16.955>a <00:40:17.095>new <00:40:17.235>system,

900
00:40:18.135 --> 00:40:19.615
<00:40:18.135>like <00:40:18.325>a <00:40:18.515>banking <00:40:18.705>ledger <00:40:18.896>that <00:40:19.086>we <00:40:19.276>were <00:40:19.466>building.

901
00:40:20.555 --> 00:40:23.055
<00:40:20.555>And <00:40:20.730>as <00:40:20.904>you <00:40:21.080>start <00:40:21.254>building <00:40:21.430>a <00:40:21.605>system <00:40:21.779>in <00:40:21.955>trust,

902
00:40:23.075 --> 00:40:25.575
<00:40:23.075>as <00:40:23.214>was <00:40:23.355>our <00:40:23.495>case, <00:40:23.634>you <00:40:23.774>need <00:40:23.915>to <00:40:24.055>onboard <00:40:24.194>people <00:40:24.335>to <00:40:24.475>rest.

903
00:40:26.835 --> 00:40:29.295
<00:40:26.835>And <00:40:26.962>I <00:40:27.089>would <00:40:27.216>normally <00:40:27.344>point <00:40:27.471>them <00:40:27.598>at <00:40:27.725>the <00:40:27.853>book <00:40:27.980>on, <00:40:28.107>you <00:40:28.235>know,

904
00:40:29.295 --> 00:40:31.095
<00:40:29.295>similar <00:40:29.575>resources <00:40:29.855>to <00:40:30.135>learn <00:40:30.415>the <00:40:30.695>language.

905
00:40:31.355 --> 00:40:34.295
<00:40:31.355>But <00:40:31.530>the <00:40:31.705>reality <00:40:31.880>is <00:40:32.055>there's <00:40:32.230>a <00:40:32.405>big <00:40:32.580>gap <00:40:32.755>between,

906
00:40:34.445 --> 00:40:35.495
<00:40:34.445>I've <00:40:34.760>read <00:40:35.075>Thera <00:40:35.390>book

907
00:40:35.915 --> 00:40:39.495
<00:40:35.915>and <00:40:36.090>I <00:40:36.265>can <00:40:36.440>go <00:40:36.615>write <00:40:36.790>a <00:40:36.965>production <00:40:37.140>grade <00:40:37.315>microservice

908
00:40:40.035 --> 00:40:42.895
<00:40:40.035>that's <00:40:40.234>gonna <00:40:40.435>run <00:40:40.634>inside <00:40:40.835>a <00:40:41.035>cluster, <00:40:41.234>for <00:40:41.435>example,

909
00:40:43.355 --> 00:40:46.895
<00:40:43.355>and <00:40:43.495>it's <00:40:43.635>gonna <00:40:43.775>handle <00:40:43.915>requests <00:40:44.055>and <00:40:44.195>it's <00:40:44.335>gonna <00:40:44.475>be <00:40:44.615>tested <00:40:44.755>well

910
00:40:46.895 --> 00:40:49.775
<00:40:46.895>and <00:40:47.095>it's <00:40:47.295>gonna <00:40:47.495>handle <00:40:47.695>connection <00:40:47.895>to <00:40:48.095>databases, <00:40:48.295>telemetry,

911
00:40:49.795 --> 00:40:51.055
<00:40:49.795>all <00:40:49.984>sorts <00:40:50.173>of <00:40:50.362>things <00:40:50.551>that <00:40:50.740>are <00:40:50.929>needed.

912
00:40:52.435 --> 00:40:55.375
<00:40:52.435>And <00:40:52.590>I <00:40:52.746>realized <00:40:52.901>that <00:40:53.057>there <00:40:53.212>was, <00:40:53.368>this <00:40:53.523>gap <00:40:53.679>was <00:40:53.835>empty.

913
00:40:55.605 --> 00:40:57.855
<00:40:55.605>Like, <00:40:55.745>you <00:40:55.885>know, <00:40:56.025>I <00:40:56.165>had <00:40:56.305>my <00:40:56.445>fellow <00:40:56.585>engineers, <00:40:56.725>which <00:40:56.865>I <00:40:57.005>had

914
00:40:57.855 --> 00:41:01.415
<00:40:57.855>to <00:40:58.010>mentor <00:40:58.166>and <00:40:58.321>train <00:40:58.477>and <00:40:58.632>I <00:40:58.788>didn't <00:40:58.943>have <00:40:59.099>anything <00:40:59.255>coherent.

915
00:41:02.135 --> 00:41:04.455
<00:41:02.135>I <00:41:02.275>could <00:41:02.415>link <00:41:02.555>them <00:41:02.695>to, <00:41:02.835>I <00:41:02.975>could <00:41:03.115>send <00:41:03.255>them, <00:41:03.395>you <00:41:03.535>know,

916
00:41:04.455 --> 00:41:06.175
<00:41:04.455>scattered <00:41:04.805>articles <00:41:05.154>on <00:41:05.505>the <00:41:05.855>internet

917
00:41:06.175 --> 00:41:08.895
<00:41:06.175>and <00:41:06.330>how <00:41:06.486>to <00:41:06.641>do <00:41:06.797>small <00:41:06.952>bits <00:41:07.108>of <00:41:07.263>the <00:41:07.419>big <00:41:07.575>picture,

918
00:41:09.515 --> 00:41:11.255
<00:41:09.515>but <00:41:09.748>there <00:41:09.981>was <00:41:10.214>no <00:41:10.448>big <00:41:10.681>picture <00:41:10.915>reference.

919
00:41:11.795 --> 00:41:13.975
<00:41:11.795>And <00:41:11.950>so <00:41:12.106>I <00:41:12.261>started <00:41:12.417>to <00:41:12.572>write <00:41:12.728>a <00:41:12.883>big <00:41:13.039>picture <00:41:13.195>reference.

920
00:41:14.035 --> 00:41:16.975
<00:41:14.035>So <00:41:14.190>I <00:41:14.346>started <00:41:14.501>to <00:41:14.657>write <00:41:14.812>something <00:41:14.968>as <00:41:15.123>that <00:41:15.279>was <00:41:15.435>meant

921
00:41:17.235 --> 00:41:19.175
<00:41:17.235>to <00:41:17.515>be <00:41:17.795>a <00:41:18.075>blog <00:41:18.355>post <00:41:18.635>series.

922
00:41:19.685 --> 00:41:21.455
<00:41:19.685>It's <00:41:19.918>like, <00:41:20.151>okay, <00:41:20.384>zero <00:41:20.618>to <00:41:20.851>production <00:41:21.085>address,

923
00:41:21.595 --> 00:41:23.655
<00:41:21.595>I'm <00:41:21.750>gonna <00:41:21.906>take <00:41:22.061>you <00:41:22.217>from, <00:41:22.372>you <00:41:22.528>know, <00:41:22.683>the <00:41:22.839>rust <00:41:22.995>language

924
00:41:23.755 --> 00:41:26.055
<00:41:23.755>to <00:41:23.910>you <00:41:24.066>can <00:41:24.221>build <00:41:24.377>production <00:41:24.532>stuff <00:41:24.688>with <00:41:24.843>the <00:41:24.999>rust <00:41:25.155>language.

925
00:41:26.955 --> 00:41:29.255
<00:41:26.955>And <00:41:27.188>the <00:41:27.421>web <00:41:27.654>series <00:41:27.888>was <00:41:28.121>very <00:41:28.355>successful.

926
00:41:29.255 --> 00:41:30.295
<00:41:29.255>There <00:41:29.442>was <00:41:29.629>a <00:41:29.816>lot <00:41:30.003>of <00:41:30.191>interest.

927
00:41:30.315 --> 00:41:33.845
<00:41:30.315>And <00:41:30.470>then, <00:41:30.626>you <00:41:30.781>know, <00:41:30.937>once <00:41:31.092>you <00:41:31.248>cross <00:41:31.403>a <00:41:31.559>certain <00:41:31.715>number

928
00:41:33.905 --> 00:41:36.605
<00:41:33.905>of <00:41:34.060>words, <00:41:34.216>utilize <00:41:34.371>that <00:41:34.527>you <00:41:34.682>are <00:41:34.838>actually <00:41:34.993>writing <00:41:35.149>a <00:41:35.305>book.

929
00:41:37.105 --> 00:41:39.965
<00:41:37.105>And <00:41:37.232>so <00:41:37.359>then <00:41:37.486>it <00:41:37.614>was <00:41:37.741>converted <00:41:37.868>into <00:41:37.995>a <00:41:38.123>book <00:41:38.250>which <00:41:38.377>exists <00:41:38.505>both

930
00:41:39.965 --> 00:41:41.765
<00:41:39.965>in <00:41:40.198>physical <00:41:40.431>formats <00:41:40.665>and <00:41:40.898>in <00:41:41.131>book <00:41:41.365>formats

931
00:41:41.785 --> 00:41:43.085
<00:41:41.785>and <00:41:42.077>it's <00:41:42.370>more <00:41:42.662>600 <00:41:42.955>pages.

932
00:41:43.265 --> 00:41:44.605
<00:41:43.265>So <00:41:43.506>it's <00:41:43.747>a <00:41:43.988>lot <00:41:44.229>of <00:41:44.471>content.

933
00:41:45.265 --> 00:41:47.205
<00:41:45.265>Uh, <00:41:45.404>which <00:41:45.545>is <00:41:45.685>why <00:41:45.825>I <00:41:45.964>decided <00:41:46.105>to <00:41:46.245>make <00:41:46.384>it <00:41:46.525>a <00:41:46.665>book

934
00:41:48.065 --> 00:41:49.845
<00:41:48.065>and <00:41:48.345>the <00:41:48.625>process <00:41:48.905>was <00:41:49.185>fairly <00:41:49.465>straightforward

935
00:41:49.905 --> 00:41:52.885
<00:41:49.905>for <00:41:50.105>me <00:41:50.305>is <00:41:50.505>usually <00:41:50.705>you <00:41:50.905>go <00:41:51.105>through <00:41:51.305>defining

936
00:41:53.465 --> 00:41:56.205
<00:41:53.465>who <00:41:53.745>your <00:41:54.025>target <00:41:54.305>reader <00:41:54.585>is, <00:41:54.865>like

937
00:41:56.425 --> 00:41:58.165
<00:41:56.425>who <00:41:56.658>should <00:41:56.891>be <00:41:57.125>picking <00:41:57.358>this <00:41:57.591>book <00:41:57.825>up?

938
00:41:58.315 --> 00:42:01.445
<00:41:58.315>Like <00:41:58.490>who's <00:41:58.665>the <00:41:58.840>person <00:41:59.015>that <00:41:59.190>picks <00:41:59.365>this <00:41:59.540>book <00:41:59.715>up

939
00:42:01.445 --> 00:42:02.765
<00:42:01.445>and <00:42:01.643>gets <00:42:01.841>the <00:42:02.039>most <00:42:02.237>out <00:42:02.435>of <00:42:02.633>it?

940
00:42:03.265 --> 00:42:06.005
<00:42:03.265>And <00:42:03.404>then <00:42:03.545>out <00:42:03.685>of <00:42:03.825>that <00:42:03.964>target <00:42:04.105>reader, <00:42:04.245>so <00:42:04.384>you <00:42:04.525>identify, <00:42:04.665>okay,

941
00:42:06.035 --> 00:42:08.085
<00:42:06.035>what <00:42:06.210>do <00:42:06.384>they <00:42:06.560>know, <00:42:06.734>what <00:42:06.910>do <00:42:07.085>they <00:42:07.259>wanna <00:42:07.435>learn,

942
00:42:08.585 --> 00:42:10.045
<00:42:08.585>how <00:42:08.772>they <00:42:08.960>get <00:42:09.148>them <00:42:09.335>from <00:42:09.523>A <00:42:09.711>to <00:42:09.899>B?

943
00:42:10.745 --> 00:42:13.925
<00:42:10.745>And <00:42:10.884>so <00:42:11.025>from <00:42:11.165>there <00:42:11.305>you <00:42:11.444>get <00:42:11.585>a <00:42:11.725>table <00:42:11.865>of <00:42:12.005>content <00:42:12.145>outline.

944
00:42:14.155 --> 00:42:16.205
<00:42:14.155>It's <00:42:14.355>like, <00:42:14.555>okay, <00:42:14.755>we're <00:42:14.955>gonna <00:42:15.155>cover <00:42:15.355>these <00:42:15.555>arguments

945
00:42:16.545 --> 00:42:19.285
<00:42:16.545>and <00:42:16.720>they're <00:42:16.895>gonna <00:42:17.070>be <00:42:17.245>covered <00:42:17.420>in <00:42:17.595>this <00:42:17.770>sequence, <00:42:17.945>uh,

946
00:42:19.285 --> 00:42:21.605
<00:42:19.285>because <00:42:19.518>this <00:42:19.751>makes <00:42:19.984>the <00:42:20.218>most <00:42:20.451>pedagogical <00:42:20.685>sense.

947
00:42:21.675 --> 00:42:24.965
<00:42:21.675>Because <00:42:21.791>if <00:42:21.908>I <00:42:22.025>go <00:42:22.141>in <00:42:22.258>this <00:42:22.375>direction <00:42:22.491>at <00:42:22.608>every <00:42:22.725>step <00:42:22.841>of <00:42:22.958>the <00:42:23.075>way,

948
00:42:25.305 --> 00:42:26.965
<00:42:25.305>I'm <00:42:25.538>teaching <00:42:25.771>them <00:42:26.004>something <00:42:26.238>they <00:42:26.471>don't <00:42:26.705>know.

949
00:42:27.705 --> 00:42:30.005
<00:42:27.705>But <00:42:27.985>the <00:42:28.265>challenge <00:42:28.545>level <00:42:28.825>is <00:42:29.105>stable.

950
00:42:30.545 --> 00:42:32.565
<00:42:30.545>So <00:42:30.778>they're <00:42:31.011>always <00:42:31.245>be, <00:42:31.478>they're <00:42:31.711>always <00:42:31.945>challenged,

951
00:42:32.565 --> 00:42:35.565
<00:42:32.565>but <00:42:32.740>they're <00:42:32.915>not <00:42:33.090>challenged <00:42:33.265>too <00:42:33.440>much, <00:42:33.615>in <00:42:33.790>which <00:42:33.965>case,

952
00:42:35.565 --> 00:42:37.005
<00:42:35.565>you <00:42:35.781>know, <00:42:35.997>they <00:42:36.213>just <00:42:36.429>abandon <00:42:36.645>the <00:42:36.861>book

953
00:42:37.385 --> 00:42:38.565
<00:42:37.385>and <00:42:37.597>they're <00:42:37.809>not <00:42:38.022>challenged <00:42:38.234>too <00:42:38.447>little,

954
00:42:38.565 --> 00:42:39.565
<00:42:38.565>in <00:42:38.745>which <00:42:38.925>case <00:42:39.105>they <00:42:39.285>get <00:42:39.465>bored.

955
00:42:39.705 --> 00:42:41.045
<00:42:39.705>And <00:42:39.906>so <00:42:40.107>they <00:42:40.308>also <00:42:40.509>abandon <00:42:40.710>the <00:42:40.911>book.

956
00:42:41.465 --> 00:42:42.525
<00:42:41.465>So <00:42:41.703>you <00:42:41.942>want <00:42:42.180>people <00:42:42.419>to,

957
00:42:42.545 --> 00:42:45.325
<00:42:42.545>to <00:42:42.720>be <00:42:42.895>challenged <00:42:43.070>at <00:42:43.245>a <00:42:43.420>consistent <00:42:43.595>level <00:42:43.770>throughout <00:42:43.945>so

958
00:42:45.325 --> 00:42:47.845
<00:42:45.325>that <00:42:45.452>they <00:42:45.579>make <00:42:45.706>it <00:42:45.834>to <00:42:45.961>the <00:42:46.088>end <00:42:46.215>and <00:42:46.343>they <00:42:46.470>actually <00:42:46.597>learn <00:42:46.725>things.

959
00:42:48.585 --> 00:42:50.605
<00:42:48.585>And <00:42:48.760>the <00:42:48.935>book <00:42:49.110>takes <00:42:49.285>a <00:42:49.460>very <00:42:49.635>end <00:42:49.810>on <00:42:49.985>approach.

960
00:42:50.905 --> 00:42:55.085
<00:42:50.905>So <00:42:51.045>it's <00:42:51.185>the <00:42:51.325>telling <00:42:51.465>you <00:42:51.605>how <00:42:51.745>to <00:42:51.885>build <00:42:52.025>a <00:42:52.165>production <00:42:52.305>system.

961
00:42:56.225 --> 00:42:58.565
<00:42:56.225>You <00:42:56.400>are <00:42:56.575>building <00:42:56.750>a <00:42:56.924>production <00:42:57.100>system <00:42:57.275>throughout <00:42:57.450>the <00:42:57.625>book,

962
00:42:58.665 --> 00:43:00.325
<00:42:58.665>you're <00:42:58.945>building <00:42:59.225>an <00:42:59.505>email <00:42:59.785>newsletter <00:43:00.065>service,

963
00:43:01.225 --> 00:43:02.605
<00:43:01.225>and <00:43:01.473>there's <00:43:01.721>a <00:43:01.970>lot <00:43:02.218>of <00:43:02.467>code.

964
00:43:02.875 --> 00:43:05.925
<00:43:02.875>Because <00:43:03.030>the <00:43:03.186>reality <00:43:03.341>is <00:43:03.497>if <00:43:03.652>you <00:43:03.808>wanna <00:43:03.963>be <00:43:04.119>production <00:43:04.275>system,

965
00:43:06.065 --> 00:43:08.325
<00:43:06.065>you <00:43:06.205>need <00:43:06.345>to <00:43:06.485>be <00:43:06.625>familiar <00:43:06.765>with <00:43:06.905>code, <00:43:07.045>you <00:43:07.185>need <00:43:07.325>to <00:43:07.465>know

966
00:43:08.325 --> 00:43:10.685
<00:43:08.325>what <00:43:08.441>it <00:43:08.558>looks <00:43:08.674>like, <00:43:08.791>you <00:43:08.908>need <00:43:09.024>to <00:43:09.141>know <00:43:09.258>to <00:43:09.375>write <00:43:09.491>it, <00:43:09.608>you <00:43:09.725>need

967
00:43:10.685 --> 00:43:12.325
<00:43:10.685>to <00:43:10.884>go <00:43:11.085>through <00:43:11.285>the <00:43:11.485>process <00:43:11.685>of <00:43:11.884>refactoring <00:43:12.085>it.

968
00:43:12.325 --> 00:43:13.685
<00:43:12.325>There's <00:43:12.569>a <00:43:12.814>lot <00:43:13.059>of <00:43:13.304>testing <00:43:13.549>stuff.

969
00:43:14.225 --> 00:43:16.685
<00:43:14.225>Uh, <00:43:14.424>so <00:43:14.625>it's <00:43:14.825>meant <00:43:15.025>almost <00:43:15.225>as <00:43:15.424>a <00:43:15.625>workshop,

970
00:43:16.685 --> 00:43:18.405
<00:43:16.685>like <00:43:17.035>600 <00:43:17.384>pages <00:43:17.735>long <00:43:18.085>workshop.

971
00:43:18.945 --> 00:43:20.005
<00:43:18.945>And <00:43:19.104>I <00:43:19.263>keep <00:43:19.422>it <00:43:19.581>up <00:43:19.740>to <00:43:19.899>date.

972
00:43:20.035 --> 00:43:21.645
<00:43:20.035>Like <00:43:20.268>this <00:43:20.501>is <00:43:20.734>something <00:43:20.968>I <00:43:21.201>do <00:43:21.435>regularly.

973
00:43:21.645 --> 00:43:24.085
<00:43:21.645>Every <00:43:21.820>three <00:43:21.995>to <00:43:22.170>six <00:43:22.345>months <00:43:22.520>there's <00:43:22.695>a <00:43:22.870>new <00:43:23.045>release.

974
00:43:24.465 --> 00:43:26.325
<00:43:24.465>And <00:43:24.665>so <00:43:24.865>the <00:43:25.065>book <00:43:25.265>is <00:43:25.465>using <00:43:25.665>the <00:43:25.865>latest

975
00:43:26.325 --> 00:43:27.525
<00:43:26.325>version <00:43:26.595>of <00:43:26.865>all <00:43:27.135>the <00:43:27.405>libraries.

976
00:43:27.785 --> 00:43:31.045
<00:43:27.785>So <00:43:27.912>if <00:43:28.039>you <00:43:28.166>pick <00:43:28.294>it <00:43:28.421>up <00:43:28.548>today, <00:43:28.675>it, <00:43:28.803>it <00:43:28.930>is <00:43:29.057>as <00:43:29.185>relevant

977
00:43:31.065 --> 00:43:32.245
<00:43:31.065>as <00:43:31.277>it <00:43:31.489>was <00:43:31.702>three <00:43:31.914>years <00:43:32.127>ago

978
00:43:32.635 --> 00:43:35.845
<00:43:32.635>because <00:43:32.790>as <00:43:32.946>gone <00:43:33.101>through <00:43:33.257>the, <00:43:33.412>it <00:43:33.568>is <00:43:33.723>followed <00:43:33.879>the <00:43:34.035>ecosystem

979
00:43:35.865 --> 00:43:37.485
<00:43:35.865>as <00:43:36.145>it <00:43:36.424>evolves, <00:43:36.705>so <00:43:36.984>to <00:43:37.265>say.

980
00:43:39.145 --> 00:43:43.165
<00:43:39.145>And <00:43:39.285>how <00:43:39.425>long <00:43:39.565>would <00:43:39.705>you <00:43:39.845>say <00:43:39.985>does, <00:43:40.125>um, <00:43:40.265>does <00:43:40.405>um, <00:43:40.545>beginner

981
00:43:43.465 --> 00:43:47.135
<00:43:43.465>or <00:43:43.620>a <00:43:43.776>new <00:43:43.931>reader, <00:43:44.087>um, <00:43:44.242>have <00:43:44.398>to <00:43:44.553>plan <00:43:44.709>in <00:43:44.865>time

982
00:43:47.235 --> 00:43:48.735
<00:43:47.235>for <00:43:47.572>like <00:43:47.910>the <00:43:48.247>600 <00:43:48.585>pages?

983
00:43:49.085 --> 00:43:51.255
<00:43:49.085>Depends <00:43:49.318>on <00:43:49.551>your <00:43:49.785>background, <00:43:50.018>right? <00:43:50.251>Um, <00:43:50.485>mm-hmm.

984
00:43:51.335 --> 00:43:53.375
<00:43:51.335>You <00:43:51.490>usually <00:43:51.646>have <00:43:51.801>two <00:43:51.957>types <00:43:52.112>of <00:43:52.268>people <00:43:52.423>picking <00:43:52.579>this <00:43:52.735>up.

985
00:43:53.595 --> 00:43:57.135
<00:43:53.595>You <00:43:53.770>have <00:43:53.944>folks <00:43:54.120>who <00:43:54.294>are <00:43:54.470>advanced <00:43:54.645>trust <00:43:54.819>users, <00:43:54.995>right?

986
00:43:57.135 --> 00:44:00.335
<00:43:57.135>They'd <00:43:57.335>be <00:43:57.535>using <00:43:57.735>rust <00:43:57.935>successfully <00:43:58.135>in <00:43:58.335>various <00:43:58.535>places.

987
00:44:01.195 --> 00:44:03.055
<00:44:01.195>Um, <00:44:01.545>but <00:44:01.895>perhaps <00:44:02.245>they're <00:44:02.595>new

988
00:44:03.155 --> 00:44:04.655
<00:44:03.155>to <00:44:03.425>the <00:44:03.695>domain <00:44:03.965>of <00:44:04.235>backend <00:44:04.505>development.

989
00:44:05.275 --> 00:44:07.055
<00:44:05.275>And <00:44:05.555>this <00:44:05.835>is <00:44:06.115>one <00:44:06.395>reader <00:44:06.675>persona.

990
00:44:07.075 --> 00:44:09.575
<00:44:07.075>The <00:44:07.250>other <00:44:07.424>reader <00:44:07.600>persona <00:44:07.774>is, <00:44:07.950>I'm <00:44:08.125>new <00:44:08.299>to <00:44:08.475>Rust,

991
00:44:09.715 --> 00:44:12.175
<00:44:09.715>but <00:44:09.890>I've <00:44:10.065>done <00:44:10.240>some <00:44:10.415>web <00:44:10.590>development <00:44:10.765>in <00:44:10.940>other <00:44:11.115>ecosystems,

992
00:44:12.385 --> 00:44:15.375
<00:44:12.385>JavaScript, <00:44:12.618>C <00:44:12.851>Sharp, <00:44:13.085>Java, <00:44:13.318>you <00:44:13.551>name <00:44:13.785>it.

993
00:44:15.875 --> 00:44:19.495
<00:44:15.875>So <00:44:16.030>I <00:44:16.186>actually <00:44:16.341>just <00:44:16.497>wanna <00:44:16.652>transfer <00:44:16.808>my <00:44:16.963>domain <00:44:17.119>knowledge <00:44:17.275>into

994
00:44:19.495 --> 00:44:20.895
<00:44:19.495>this <00:44:19.915>new <00:44:20.335>technical <00:44:20.755>ecosystem.

995
00:44:21.395 --> 00:44:23.055
<00:44:21.395>And <00:44:21.595>generally <00:44:21.795>I <00:44:21.995>would <00:44:22.195>say <00:44:22.395>like <00:44:22.595>a <00:44:22.795>few

996
00:44:23.055 --> 00:44:24.775
<00:44:23.055>weeks <00:44:23.404>is <00:44:23.754>enough <00:44:24.105>for <00:44:24.455>both.

997
00:44:24.775 --> 00:44:26.655
<00:44:24.775>Like <00:44:24.975>if <00:44:25.175>you're <00:44:25.375>actually <00:44:25.575>going <00:44:25.775>through <00:44:25.975>it <00:44:26.175>consistently,

998
00:44:26.675 --> 00:44:29.375
<00:44:26.675>you <00:44:26.830>can <00:44:26.986>really <00:44:27.141>cover <00:44:27.297>to <00:44:27.452>cover <00:44:27.608>in <00:44:27.763>two, <00:44:27.919>three <00:44:28.075>weeks.

999
00:44:29.725 --> 00:44:32.725
<00:44:29.725>Obviously <00:44:29.880>the <00:44:30.036>less <00:44:30.191>time <00:44:30.347>you <00:44:30.502>have, <00:44:30.658>the <00:44:30.813>more <00:44:30.969>that <00:44:31.125>expands,

1000
00:44:32.905 --> 00:44:33.965
<00:44:32.905>uh, <00:44:33.223>over <00:44:33.541>the <00:44:33.859>months.

1001
00:44:34.625 --> 00:44:37.365
<00:44:34.625>Um, <00:44:34.800>but <00:44:34.975>I <00:44:35.150>think <00:44:35.325>that's, <00:44:35.500>that's <00:44:35.675>a <00:44:35.850>good <00:44:36.025>assumption.

1002
00:44:38.755 --> 00:44:42.485
<00:44:38.755>Alright. <00:44:38.910>And <00:44:39.066>um, <00:44:39.221>maybe <00:44:39.377>one <00:44:39.532>more <00:44:39.688>question <00:44:39.843>from <00:44:39.999>my <00:44:40.155>side.

1003
00:44:42.485 --> 00:44:44.605
<00:44:42.485>You <00:44:42.660>also <00:44:42.835>wrote <00:44:43.010>in <00:44:43.185>your <00:44:43.360>bio <00:44:43.535>that <00:44:43.710>you're <00:44:43.885>part

1004
00:44:44.605 --> 00:44:45.725
<00:44:44.605>of <00:44:44.941>the <00:44:45.277>Rust <00:44:45.613>community.

1005
00:44:46.105 --> 00:44:48.125
<00:44:46.105>Do <00:44:46.338>you <00:44:46.571>have <00:44:46.805>maybe <00:44:47.038>some, <00:44:47.271>some <00:44:47.505>meetups

1006
00:44:48.145 --> 00:44:51.205
<00:44:48.145>or <00:44:48.320>your <00:44:48.495>some <00:44:48.670>community <00:44:48.845>hubs <00:44:49.020>to <00:44:49.195>recommend <00:44:49.370>for <00:44:49.545>newcomers?

1007
00:44:51.225 --> 00:44:54.925
<00:44:51.225>So <00:44:51.380>I <00:44:51.536>was, <00:44:51.691>for <00:44:51.847>several <00:44:52.002>years, <00:44:52.158>one <00:44:52.313>of <00:44:52.469>the <00:44:52.625>organizers

1008
00:44:54.925 --> 00:44:57.445
<00:44:54.925>of <00:44:55.065>the <00:44:55.205>RAs <00:44:55.345>London <00:44:55.485>Meetup, <00:44:55.625>uh, <00:44:55.765>when <00:44:55.905>I <00:44:56.045>was <00:44:56.185>in <00:44:56.325>London.

1009
00:44:57.745 --> 00:44:59.525
<00:44:57.745>I'm <00:44:57.900>no <00:44:58.056>longer <00:44:58.211>in <00:44:58.367>London. <00:44:58.522>I <00:44:58.678>moved <00:44:58.833>back <00:44:58.989>to <00:44:59.145>Italy,

1010
00:44:59.665 --> 00:45:00.725
<00:44:59.665>uh, <00:45:00.142>last <00:45:00.618>summer.

1011
00:45:01.025 --> 00:45:03.365
<00:45:01.025>So <00:45:01.225>no <00:45:01.425>longer <00:45:01.625>part, <00:45:01.825>uh, <00:45:02.025>of <00:45:02.225>the <00:45:02.425>organization.

1012
00:45:03.905 --> 00:45:06.485
<00:45:03.905>But <00:45:04.045>the <00:45:04.185>RAs <00:45:04.325>London <00:45:04.465>Meetup <00:45:04.605>is <00:45:04.745>definitely <00:45:04.885>one <00:45:05.025>of <00:45:05.165>the <00:45:05.305>most

1013
00:45:07.125 --> 00:45:09.565
<00:45:07.125>interesting <00:45:07.325>and <00:45:07.525>biggest <00:45:07.725>RAs <00:45:07.925>meetup <00:45:08.125>in <00:45:08.325>the <00:45:08.525>world,

1014
00:45:09.845 --> 00:45:10.885
<00:45:09.845>I <00:45:10.000>would <00:45:10.157>say, <00:45:10.313>not <00:45:10.469>just <00:45:10.625>in <00:45:10.781>Europe.

1015
00:45:11.425 --> 00:45:12.805
<00:45:11.425>Uh, <00:45:11.673>every <00:45:11.921>time <00:45:12.170>there's <00:45:12.418>an <00:45:12.667>event,

1016
00:45:12.805 --> 00:45:14.285
<00:45:12.805>there's <00:45:13.071>hundreds <00:45:13.337>of <00:45:13.604>people <00:45:13.870>showing <00:45:14.136>up.

1017
00:45:14.335 --> 00:45:16.045
<00:45:14.335>We're <00:45:14.568>actually <00:45:14.801>doing <00:45:15.035>an <00:45:15.268>event <00:45:15.501>in <00:45:15.735>London

1018
00:45:16.265 --> 00:45:17.405
<00:45:16.265>on <00:45:16.521>the <00:45:16.778>7th <00:45:17.034>of <00:45:17.291>February.

1019
00:45:17.665 --> 00:45:20.045
<00:45:17.665>I'm <00:45:17.820>gonna <00:45:17.976>be <00:45:18.131>over <00:45:18.287>in <00:45:18.442>London <00:45:18.598>to <00:45:18.753>discuss <00:45:18.909>RA <00:45:19.065>adoption.

1020
00:45:20.745 --> 00:45:24.205
<00:45:20.745>So <00:45:20.900>what <00:45:21.056>it <00:45:21.211>looks <00:45:21.367>like <00:45:21.522>for <00:45:21.678>people <00:45:21.833>to <00:45:21.989>adopt <00:45:22.145>transit,

1021
00:45:24.485 --> 00:45:27.005
<00:45:24.485>a <00:45:24.640>company <00:45:24.796>from <00:45:24.951>the <00:45:25.107>point <00:45:25.262>of <00:45:25.418>view <00:45:25.573>of <00:45:25.729>a <00:45:25.885>CTO

1022
00:45:27.005 --> 00:45:28.805
<00:45:27.005>or <00:45:27.285>engineering <00:45:27.565>manager, <00:45:27.845>but <00:45:28.125>you <00:45:28.405>need

1023
00:45:28.805 --> 00:45:30.405
<00:45:28.805>to <00:45:29.154>design <00:45:29.504>the <00:45:29.855>adoption <00:45:30.205>strategy

1024
00:45:30.465 --> 00:45:31.565
<00:45:30.465>to <00:45:30.712>make <00:45:30.960>sure <00:45:31.207>it's <00:45:31.455>successful.

1025
00:45:32.655 --> 00:45:35.115
<00:45:32.655>But <00:45:32.888>generally <00:45:33.121>speaking, <00:45:33.355>like <00:45:33.588>there's <00:45:33.821>three <00:45:34.055>types

1026
00:45:35.115 --> 00:45:36.515
<00:45:35.115>of <00:45:35.325>events <00:45:35.535>that <00:45:35.745>you'll <00:45:35.955>find <00:45:36.165>in <00:45:36.375>Rust.

1027
00:45:36.615 --> 00:45:37.755
<00:45:36.615>So <00:45:36.957>there's <00:45:37.299>local <00:45:37.641>meetups.

1028
00:45:38.195 --> 00:45:41.315
<00:45:38.195>I <00:45:38.335>always <00:45:38.475>invite <00:45:38.615>people <00:45:38.755>to <00:45:38.895>check <00:45:39.035>if <00:45:39.175>their <00:45:39.315>biggest, <00:45:39.455>you <00:45:39.595>know,

1029
00:45:41.655 --> 00:45:45.915
<00:45:41.655>center <00:45:41.795>as <00:45:41.935>a <00:45:42.075>local <00:45:42.215>meetup <00:45:42.355>in <00:45:42.495>Europe, <00:45:42.635>most <00:45:42.775>big <00:45:42.915>cities <00:45:43.055>do.

1030
00:45:46.415 --> 00:45:50.475
<00:45:46.415>Uh, <00:45:46.590>there's <00:45:46.765>Russ <00:45:46.940>conferences, <00:45:47.115>um, <00:45:47.290>there's <00:45:47.465>RAs <00:45:47.640>Fest, <00:45:47.815>uh,

1031
00:45:50.475 --> 00:45:52.635
<00:45:50.475>the <00:45:50.674>Russ <00:45:50.875>Fest <00:45:51.075>network <00:45:51.275>of <00:45:51.475>conferences <00:45:51.674>in <00:45:51.875>Europe.

1032
00:45:52.705 --> 00:45:55.315
<00:45:52.705>There's <00:45:52.880>usually <00:45:53.055>Aras <00:45:53.230>conference <00:45:53.404>every <00:45:53.580>two <00:45:53.755>to <00:45:53.930>three <00:45:54.105>months.

1033
00:45:56.105 --> 00:45:57.875
<00:45:56.105>Russ <00:45:56.455>Nation <00:45:56.805>in <00:45:57.155>March <00:45:57.505>is,

1034
00:45:57.875 --> 00:46:00.075
<00:45:57.875>the <00:45:58.015>next <00:45:58.155>one's <00:45:58.295>gonna <00:45:58.435>be <00:45:58.575>in <00:45:58.715>London <00:45:58.855>the <00:45:58.995>week <00:45:59.135>before <00:45:59.275>Easter.

1035
00:46:00.225 --> 00:46:02.875
<00:46:00.225>There's <00:46:00.424>gonna <00:46:00.625>be <00:46:00.825>Russ <00:46:01.025>Netherlands, <00:46:01.225>beginning <00:46:01.424>of <00:46:01.625>May.

1036
00:46:03.025 --> 00:46:05.635
<00:46:03.025>There's <00:46:03.225>gonna <00:46:03.425>be <00:46:03.625>Raric <00:46:03.825>at <00:46:04.025>a <00:46:04.225>certain <00:46:04.425>point.

1037
00:46:05.675 --> 00:46:06.955
<00:46:05.675>I <00:46:05.839>don't <00:46:06.004>know <00:46:06.168>if <00:46:06.333>in <00:46:06.497>May <00:46:06.662>or <00:46:06.827>June.

1038
00:46:07.375 --> 00:46:08.515
<00:46:07.375>And <00:46:07.631>there's <00:46:07.888>gonna <00:46:08.144>be <00:46:08.401>Uterus,

1039
00:46:08.515 --> 00:46:10.995
<00:46:08.515>which <00:46:08.714>is <00:46:08.915>the <00:46:09.115>conference <00:46:09.315>we <00:46:09.515>may <00:46:09.714>meta <00:46:09.915>organize,

1040
00:46:11.045 --> 00:46:12.715
<00:46:11.045>which <00:46:11.245>is <00:46:11.445>gonna <00:46:11.645>be <00:46:11.845>in <00:46:12.045>October <00:46:12.245>next <00:46:12.445>year

1041
00:46:12.715 --> 00:46:13.995
<00:46:12.715>and <00:46:12.945>was <00:46:13.175>in <00:46:13.406>October <00:46:13.636>last <00:46:13.866>year.

1042
00:46:14.415 --> 00:46:16.755
<00:46:14.415>So <00:46:14.615>if <00:46:14.815>you <00:46:15.015>want, <00:46:15.215>you <00:46:15.415>know, <00:46:15.615>RAs <00:46:15.815>events,

1043
00:46:16.815 --> 00:46:18.075
<00:46:16.815>the <00:46:17.098>calendar <00:46:17.382>is <00:46:17.665>pretty <00:46:17.948>packed.

1044
00:46:18.385 --> 00:46:19.555
<00:46:18.385>Plus <00:46:18.648>you <00:46:18.911>also <00:46:19.174>have <00:46:19.438>Rascon,

1045
00:46:19.565 --> 00:46:22.835
<00:46:19.565>which <00:46:19.720>is <00:46:19.876>gonna <00:46:20.031>be <00:46:20.187>in <00:46:20.342>Canada, <00:46:20.498>I <00:46:20.653>think <00:46:20.809>this <00:46:20.965>year.

1046
00:46:23.015 --> 00:46:24.195
<00:46:23.015>So <00:46:23.546>that's <00:46:24.077>20.

1047
00:46:25.545 --> 00:46:28.995
<00:46:25.545>Okay. <00:46:25.778>Very <00:46:26.011>full <00:46:26.245>schedule, <00:46:26.478>very <00:46:26.711>frequent <00:46:26.945>events.

1048
00:46:29.015 --> 00:46:30.875
<00:46:29.015>And <00:46:29.248>it <00:46:29.481>sounds <00:46:29.714>like <00:46:29.948>the, <00:46:30.181>the <00:46:30.415>different,

1049
00:46:30.945 --> 00:46:34.715
<00:46:30.945>like <00:46:31.145>RAs <00:46:31.345>community <00:46:31.545>chapters <00:46:31.745>are <00:46:31.945>pretty <00:46:32.145>well <00:46:32.345>connected

1050
00:46:34.715 --> 00:46:37.035
<00:46:34.715>throughout <00:46:35.065>Europe <00:46:35.415>also, <00:46:35.765>so <00:46:36.115>it's

1051
00:46:37.615 --> 00:46:40.315
<00:46:37.615>Europe <00:46:37.770>is <00:46:37.926>a, <00:46:38.081>sounds <00:46:38.237>like <00:46:38.392>it's <00:46:38.548>a <00:46:38.703>small <00:46:38.859>place <00:46:39.015>so

1052
00:46:40.315 --> 00:46:41.875
<00:46:40.315>to <00:46:40.595>say <00:46:40.875>like <00:46:41.155>Yeah, <00:46:41.435>every <00:46:41.715>organizer

1053
00:46:41.875 --> 00:46:43.155
<00:46:41.875>knows <00:46:42.259>every <00:46:42.643>other <00:46:43.027>organizer.

1054
00:46:43.415 --> 00:46:46.795
<00:46:43.415>Um, <00:46:43.542>we <00:46:43.669>all <00:46:43.796>try <00:46:43.924>to <00:46:44.051>make <00:46:44.178>sure <00:46:44.305>that <00:46:44.433>events <00:46:44.560>get <00:46:44.687>enough <00:46:44.815>exposure

1055
00:46:47.145 --> 00:46:49.955
<00:46:47.145>because <00:46:47.378>generally <00:46:47.611>speaking, <00:46:47.845>these <00:46:48.078>events <00:46:48.311>are <00:46:48.545>good

1056
00:46:50.055 --> 00:46:51.955
<00:46:50.055>for <00:46:50.288>the <00:46:50.521>health <00:46:50.754>of <00:46:50.988>the <00:46:51.221>REST <00:46:51.455>project

1057
00:46:52.095 --> 00:46:53.835
<00:46:52.095>and <00:46:52.328>the <00:46:52.561>REST <00:46:52.794>ecosystem <00:46:53.028>as <00:46:53.261>a <00:46:53.495>whole.

1058
00:46:54.175 --> 00:46:55.875
<00:46:54.175>So <00:46:54.375>we <00:46:54.575>all <00:46:54.775>want <00:46:54.975>these <00:46:55.175>conferences <00:46:55.375>to <00:46:55.575>succeed.

1059
00:46:55.895 --> 00:46:58.515
<00:46:55.895>We <00:46:56.128>want <00:46:56.361>these <00:46:56.595>conferences <00:46:56.828>to <00:46:57.061>actually <00:46:57.295>help

1060
00:46:59.025 --> 00:47:00.915
<00:46:59.025>educate <00:46:59.375>people <00:46:59.725>about <00:47:00.075>what's <00:47:00.425>possible,

1061
00:47:00.935 --> 00:47:02.075
<00:47:00.935>what's <00:47:01.277>new, <00:47:01.618>what's <00:47:01.961>coming.

1062
00:47:02.695 --> 00:47:04.635
<00:47:02.695>Uh, <00:47:02.870>I <00:47:03.045>think <00:47:03.220>that's <00:47:03.395>one <00:47:03.570>of <00:47:03.745>the <00:47:03.920>main <00:47:04.095>purposes

1063
00:47:04.635 --> 00:47:07.075
<00:47:04.635>and <00:47:04.790>actually <00:47:04.946>allow <00:47:05.101>people <00:47:05.257>to <00:47:05.412>meet <00:47:05.568>in <00:47:05.723>person <00:47:05.879>from <00:47:06.035>time

1064
00:47:07.075 --> 00:47:10.235
<00:47:07.075>to <00:47:07.230>time, <00:47:07.386>from, <00:47:07.541>you <00:47:07.697>know, <00:47:07.852>a <00:47:08.008>lot <00:47:08.163>of <00:47:08.319>remote <00:47:08.475>interactions

1065
00:47:10.255 --> 00:47:11.755
<00:47:10.255>and <00:47:10.525>open <00:47:10.795>source <00:47:11.065>projects <00:47:11.335>and <00:47:11.605>such.

1066
00:47:13.385 --> 00:47:15.115
<00:47:13.385>Yeah, <00:47:13.665>co <00:47:13.945>communities <00:47:14.225>are <00:47:14.505>very <00:47:14.785>important

1067
00:47:15.215 --> 00:47:16.635
<00:47:15.215>for <00:47:15.641>each <00:47:16.067>tech <00:47:16.493>stack

1068
00:47:16.655 --> 00:47:19.915
<00:47:16.655>and <00:47:16.795>happy <00:47:16.935>to <00:47:17.075>hear <00:47:17.215>that <00:47:17.355>Rust <00:47:17.495>has <00:47:17.635>such <00:47:17.775>a <00:47:17.915>tight <00:47:18.055>community.

1069
00:47:20.375 --> 00:47:22.395
<00:47:20.375>And <00:47:20.608>yeah. <00:47:20.841>So <00:47:21.075>thanks <00:47:21.308>for <00:47:21.541>sharing <00:47:21.775>this

1070
00:47:22.465 --> 00:47:23.915
<00:47:22.465>with <00:47:22.726>us, <00:47:22.987>Luca, <00:47:23.248>being <00:47:23.509>so <00:47:23.770>active.

1071
00:47:24.285 --> 00:47:27.595
<00:47:24.285>Thank <00:47:24.401>you <00:47:24.518>for <00:47:24.634>the <00:47:24.751>talk. <00:47:24.868>Thank <00:47:24.984>you <00:47:25.101>for <00:47:25.218>the <00:47:25.335>extended <00:47:25.451>q <00:47:25.568>and <00:47:25.685>a

1072
00:47:28.015 --> 00:47:30.515
<00:47:28.015>and <00:47:28.170>hope <00:47:28.326>to <00:47:28.481>see <00:47:28.637>you <00:47:28.792>soon <00:47:28.948>on <00:47:29.103>another <00:47:29.259>live <00:47:29.415>day.

1073
00:47:31.475 --> 00:47:34.075
<00:47:31.475>Likewise. <00:47:32.174>Bye <00:47:32.875>Luca.