WEBVTT

1
00:00:02.920 --> 00:00:03.510
<00:00:02.920>Thank <00:00:03.185>you, <00:00:03.450>Ben.

2
00:00:03.625 --> 00:00:05.645
<00:00:03.625>Let <00:00:03.858>me <00:00:04.091>quickly <00:00:04.325>adjust <00:00:04.558>my <00:00:04.791>screen <00:00:05.025>so

3
00:00:05.645 --> 00:00:07.525
<00:00:05.645>that <00:00:05.925>I <00:00:06.204>have <00:00:06.484>everything <00:00:06.765>under <00:00:07.045>control.

4
00:00:07.745 --> 00:00:10.005
<00:00:07.745>See, <00:00:07.885>I <00:00:08.025>thank <00:00:08.164>you <00:00:08.305>again. <00:00:08.445>Thank <00:00:08.585>you, <00:00:08.725>um, <00:00:08.865>for <00:00:09.004>having <00:00:09.145>me.

5
00:00:10.005 --> 00:00:11.125
<00:00:10.005>Thank <00:00:10.173>you <00:00:10.341>for <00:00:10.509>coming <00:00:10.677>to <00:00:10.845>my <00:00:11.013>talk.

6
00:00:11.155 --> 00:00:12.565
<00:00:11.155>It's <00:00:11.472>called <00:00:11.789>The <00:00:12.106>Eternal <00:00:12.424>Sunshine

7
00:00:12.565 --> 00:00:14.045
<00:00:12.565>of <00:00:12.898>this <00:00:13.231>Sparkless <00:00:13.564>programming <00:00:13.897>Language.

8
00:00:14.475 --> 00:00:16.845
<00:00:14.475>Bene <00:00:14.650>already <00:00:14.825>did <00:00:15.000>a <00:00:15.174>fantastic <00:00:15.350>introduction. <00:00:15.524>I'm <00:00:15.700>so <00:00:15.875>happy.

9
00:00:16.985 --> 00:00:19.125
<00:00:16.985>I'm <00:00:17.218>always <00:00:17.451>happy <00:00:17.685>when <00:00:17.918>I <00:00:18.151>see, <00:00:18.384>um,

10
00:00:19.145 --> 00:00:22.125
<00:00:19.145>the <00:00:19.300>Types <00:00:19.456>Script <00:00:19.611>in <00:00:19.767>50 <00:00:19.922>lessons <00:00:20.078>book <00:00:20.233>in <00:00:20.389>somebody's <00:00:20.544>bookshelf.

11
00:00:22.355 --> 00:00:23.765
<00:00:22.355>It's <00:00:22.778>a <00:00:23.201>beautiful <00:00:23.624>book.

12
00:00:23.915 --> 00:00:27.245
<00:00:23.915>It's, <00:00:24.031>it's <00:00:24.148>nice <00:00:24.265>to <00:00:24.381>look <00:00:24.498>at, <00:00:24.615>it's <00:00:24.731>nice <00:00:24.848>to <00:00:24.965>hold <00:00:25.081>in <00:00:25.198>your <00:00:25.314>hands.

13
00:00:27.395 --> 00:00:28.805
<00:00:27.395>It's <00:00:27.606>also <00:00:27.817>good <00:00:28.029>to <00:00:28.241>read, <00:00:28.452>I <00:00:28.664>hope.

14
00:00:29.225 --> 00:00:31.885
<00:00:29.225>Um, <00:00:29.352>and <00:00:29.479>yeah, <00:00:29.606>it <00:00:29.734>has <00:00:29.861>become <00:00:29.988>a <00:00:30.115>little <00:00:30.243>passion <00:00:30.370>of <00:00:30.497>mine <00:00:30.625>to,

15
00:00:32.625 --> 00:00:35.445
<00:00:32.625>to <00:00:32.800>write <00:00:32.975>down <00:00:33.150>what <00:00:33.325>I <00:00:33.500>think <00:00:33.675>about <00:00:33.850>programming <00:00:34.025>languages.

16
00:00:36.005 --> 00:00:37.845
<00:00:36.005>Speaking <00:00:36.285>of <00:00:36.565>that, <00:00:36.845>um, <00:00:37.125>I <00:00:37.405>want

17
00:00:37.845 --> 00:00:39.525
<00:00:37.845>to <00:00:38.019>talk <00:00:38.195>a <00:00:38.370>little <00:00:38.545>bit <00:00:38.720>about <00:00:38.894>c <00:00:39.070>plus <00:00:39.245>plus

18
00:00:39.525 --> 00:00:42.525
<00:00:39.525>before <00:00:39.665>we <00:00:39.805>dive <00:00:39.945>deep, <00:00:40.085>deep <00:00:40.225>into <00:00:40.364>some <00:00:40.504>of <00:00:40.644>the <00:00:40.785>rust <00:00:40.925>features

19
00:00:42.525 --> 00:00:43.845
<00:00:42.525>that <00:00:42.821>I <00:00:43.119>personally <00:00:43.416>enjoy <00:00:43.713>most.

20
00:00:43.945 --> 00:00:46.725
<00:00:43.945>And, <00:00:44.085>um, <00:00:44.225>this <00:00:44.365>is <00:00:44.505>some <00:00:44.645>sort <00:00:44.785>of <00:00:44.925>a <00:00:45.065>subtitle, <00:00:45.205>the <00:00:45.345>Endurance

21
00:00:46.825 --> 00:00:48.285
<00:00:46.825>of <00:00:47.087>Pain <00:00:47.350>of <00:00:47.613>c <00:00:47.876>plus <00:00:48.138>Plus.

22
00:00:48.505 --> 00:00:50.535
<00:00:48.505>And <00:00:48.971>Bear <00:00:49.438>with <00:00:49.905>me.

23
00:00:50.735 --> 00:00:53.535
<00:00:50.735>I <00:00:50.935>don't <00:00:51.135>mean <00:00:51.335>the <00:00:51.535>pain <00:00:51.735>that <00:00:51.935>you <00:00:52.135>have

24
00:00:53.535 --> 00:00:55.655
<00:00:53.535>to <00:00:53.690>endure <00:00:53.846>when <00:00:54.001>you're <00:00:54.157>going <00:00:54.312>to <00:00:54.468>code <00:00:54.623>c <00:00:54.779>plus <00:00:54.934>plus.

25
00:00:56.035 --> 00:00:57.415
<00:00:56.035>I'm <00:00:56.283>rather <00:00:56.531>talking <00:00:56.780>about <00:00:57.028>the <00:00:57.277>pain

26
00:00:57.415 --> 00:00:59.455
<00:00:57.415>that <00:00:57.648>the <00:00:57.881>standard <00:00:58.115>committee <00:00:58.348>is <00:00:58.581>confronted <00:00:58.815>with

27
00:00:59.535 --> 00:01:01.335
<00:00:59.535>because <00:00:59.885>apparently <00:01:00.235>everybody <00:01:00.584>tells <00:01:00.934>them

28
00:01:01.335 --> 00:01:02.815
<00:01:01.335>that <00:01:01.601>the <00:01:01.867>pro <00:01:02.134>language <00:01:02.400>is <00:01:02.667>s**t.

29
00:01:03.105 --> 00:01:05.895
<00:01:03.105>Sorry <00:01:03.338>for <00:01:03.571>swearing <00:01:03.805>to <00:01:04.038>three <00:01:04.271>minutes <00:01:04.504>in.

30
00:01:06.435 --> 00:01:08.255
<00:01:06.435>Um, <00:01:06.901>that <00:01:07.368>just <00:01:07.835>happened.

31
00:01:08.715 --> 00:01:10.935
<00:01:08.715>Um, <00:01:08.855>and <00:01:08.995>you <00:01:09.135>know, <00:01:09.275>I <00:01:09.415>think <00:01:09.555>it's <00:01:09.695>a <00:01:09.835>little <00:01:09.975>bit <00:01:10.115>of,

32
00:01:11.095 --> 00:01:14.015
<00:01:11.095>a <00:01:11.235>little <00:01:11.375>bit <00:01:11.515>unfair <00:01:11.655>to <00:01:11.795>constantly <00:01:11.935>pick <00:01:12.075>on <00:01:12.215>c <00:01:12.355>plus <00:01:12.495>plus.

33
00:01:14.235 --> 00:01:16.775
<00:01:14.235>You <00:01:14.375>need <00:01:14.515>to <00:01:14.655>know <00:01:14.795>where <00:01:14.935>c <00:01:15.075>plus <00:01:15.215>plus <00:01:15.355>is <00:01:15.495>coming <00:01:15.635>from

34
00:01:16.775 --> 00:01:19.015
<00:01:16.775>and <00:01:16.950>how <00:01:17.125>it <00:01:17.300>developed <00:01:17.475>into <00:01:17.650>the <00:01:17.825>program, <00:01:18.000>again, <00:01:18.175>which,

35
00:01:19.435 --> 00:01:20.535
<00:01:19.435>uh, <00:01:19.633>then <00:01:19.831>you <00:01:20.029>ended <00:01:20.227>up <00:01:20.425>with.

36
00:01:21.115 --> 00:01:25.205
<00:01:21.115>Um, <00:01:21.255>one <00:01:21.395>thing <00:01:21.535>that <00:01:21.675>I <00:01:21.815>can <00:01:21.955>highly <00:01:22.095>recommend <00:01:22.235>is <00:01:22.375>the <00:01:22.515>video,

37
00:01:25.255 --> 00:01:27.925
<00:01:25.255>which <00:01:25.395>is <00:01:25.535>linked <00:01:25.675>here <00:01:25.815>called <00:01:25.955>the <00:01:26.095>Design <00:01:26.235>of <00:01:26.375>c <00:01:26.515>plus <00:01:26.655>plus.

38
00:01:28.115 --> 00:01:31.205
<00:01:28.115>It's <00:01:28.289>been <00:01:28.464>recorded <00:01:28.640>in <00:01:28.815>1994, <00:01:28.990>just <00:01:29.164>year <00:01:29.339>before <00:01:29.515>for

39
00:01:31.205 --> 00:01:34.725
<00:01:31.205>before <00:01:31.380>Java <00:01:31.554>came, <00:01:31.730>became <00:01:31.905>stable, <00:01:32.080>where <00:01:32.255>Beyond <00:01:32.429>True <00:01:32.605>Strip

40
00:01:34.725 --> 00:01:37.805
<00:01:34.725>after <00:01:34.852>10 <00:01:34.979>years, <00:01:35.106>after <00:01:35.234>a <00:01:35.361>decade <00:01:35.488>of <00:01:35.615>c <00:01:35.743>plus <00:01:35.870>plus <00:01:35.997>in <00:01:36.125>production,

41
00:01:38.445 --> 00:01:40.685
<00:01:38.445>describes <00:01:38.911>his <00:01:39.378>original <00:01:39.845>intention

42
00:01:40.915 --> 00:01:42.205
<00:01:40.914>with <00:01:41.301>the <00:01:41.689>programming <00:01:42.076>language.

43
00:01:42.505 --> 00:01:43.805
<00:01:42.505>And <00:01:42.739>it <00:01:42.973>was <00:01:43.207>all <00:01:43.441>about <00:01:43.675>types.

44
00:01:43.905 --> 00:01:47.685
<00:01:43.905>It <00:01:44.045>was <00:01:44.185>all <00:01:44.325>about <00:01:44.465>trying <00:01:44.605>to <00:01:44.745>create <00:01:44.885>user <00:01:45.025>defined <00:01:45.165>types, <00:01:45.305>trying

45
00:01:47.685 --> 00:01:49.845
<00:01:47.685>to <00:01:47.918>create <00:01:48.151>the <00:01:48.385>relationships <00:01:48.618>between <00:01:48.851>those <00:01:49.085>types

46
00:01:50.225 --> 00:01:52.085
<00:01:50.225>to <00:01:50.574>support <00:01:50.925>large <00:01:51.274>scale <00:01:51.625>programming.

47
00:01:52.085 --> 00:01:56.005
<00:01:52.085>If <00:01:52.225>some <00:01:52.365>of <00:01:52.505>the <00:01:52.645>video <00:01:52.785>who <00:01:52.925>has <00:01:53.065>done <00:01:53.205>TypeScript, <00:01:53.345>for <00:01:53.485>example,

48
00:01:56.265 --> 00:01:57.525
<00:01:56.265>that's <00:01:56.548>about <00:01:56.832>the <00:01:57.115>same <00:01:57.399>goals.

49
00:01:58.065 --> 00:02:00.085
<00:01:58.065>Um, <00:01:58.240>they <00:01:58.414>wanted <00:01:58.590>to <00:01:58.765>have <00:01:58.940>the <00:01:59.115>best <00:01:59.289>of <00:01:59.465>C,

50
00:02:00.085 --> 00:02:01.685
<00:02:00.085>but <00:02:00.434>improved <00:02:00.785>aesthetic <00:02:01.134>type <00:02:01.485>checking.

51
00:02:02.305 --> 00:02:06.325
<00:02:02.305>If <00:02:02.432>you <00:02:02.559>understand <00:02:02.686>the <00:02:02.814>type <00:02:02.941>system <00:02:03.068>of <00:02:03.195>C, <00:02:03.323>which <00:02:03.450>is, <00:02:03.577>you <00:02:03.705>know,

52
00:02:06.325 --> 00:02:09.445
<00:02:06.325>pictured <00:02:06.452>here, <00:02:06.579>then <00:02:06.706>you <00:02:06.834>know <00:02:06.961>that <00:02:07.088>this <00:02:07.215>is <00:02:07.343>a <00:02:07.470>very <00:02:07.597>noble <00:02:07.725>goal

53
00:02:09.445 --> 00:02:10.525
<00:02:09.445>and <00:02:09.769>people <00:02:10.092>really <00:02:10.417>want

54
00:02:10.525 --> 00:02:13.885
<00:02:10.525>to <00:02:10.700>have <00:02:10.875>proper <00:02:11.050>type <00:02:11.225>systems <00:02:11.400>in <00:02:11.575>c <00:02:11.750>plus <00:02:11.925>plus.

55
00:02:14.305 --> 00:02:18.005
<00:02:14.305>And <00:02:14.432>this <00:02:14.559>is <00:02:14.686>also <00:02:14.814>what <00:02:14.941>brought <00:02:15.068>c <00:02:15.195>plus <00:02:15.323>plus, <00:02:15.450>um, <00:02:15.577>um, <00:02:15.705>on,

56
00:02:18.065 --> 00:02:19.565
<00:02:18.065>on <00:02:18.290>the <00:02:18.515>screen <00:02:18.740>of <00:02:18.965>so <00:02:19.190>many <00:02:19.415>developers.

57
00:02:19.565 --> 00:02:21.325
<00:02:19.565>This <00:02:19.740>is <00:02:19.915>why <00:02:20.090>it <00:02:20.265>was <00:02:20.440>love <00:02:20.615>during <00:02:20.790>the <00:02:20.965>eighties.

58
00:02:21.325 --> 00:02:23.045
<00:02:21.325>This <00:02:21.500>is <00:02:21.674>why <00:02:21.850>people <00:02:22.024>wanted <00:02:22.200>to <00:02:22.375>work <00:02:22.549>with <00:02:22.725>it.

59
00:02:23.705 --> 00:02:25.965
<00:02:23.704>Um, <00:02:23.860>you <00:02:24.016>had <00:02:24.171>the <00:02:24.327>power <00:02:24.482>and <00:02:24.638>the <00:02:24.793>speed <00:02:24.949>of <00:02:25.105>C

60
00:02:26.145 --> 00:02:28.445
<00:02:26.145>but <00:02:26.285>you <00:02:26.425>had <00:02:26.565>a <00:02:26.705>type <00:02:26.845>system <00:02:26.985>that <00:02:27.125>you <00:02:27.265>can <00:02:27.405>express <00:02:27.545>yourself

61
00:02:28.445 --> 00:02:31.325
<00:02:28.445>with, <00:02:28.678>um, <00:02:28.911>which <00:02:29.144>was <00:02:29.378>great <00:02:29.611>for <00:02:29.845>writing

62
00:02:32.165 --> 00:02:33.685
<00:02:32.165>applications <00:02:32.620>that <00:02:33.077>can <00:02:33.533>scale.

63
00:02:34.505 --> 00:02:35.925
<00:02:34.505>If <00:02:34.664>you <00:02:34.824>look <00:02:34.984>a <00:02:35.144>little <00:02:35.303>bit <00:02:35.463>on <00:02:35.623>the <00:02:35.783>timeline

64
00:02:35.925 --> 00:02:39.365
<00:02:35.925>of <00:02:36.100>other <00:02:36.275>programming <00:02:36.450>languages <00:02:36.625>that <00:02:36.800>came, <00:02:36.975>um, <00:02:37.150>in <00:02:37.325>place,

65
00:02:39.705 --> 00:02:44.085
<00:02:39.704>the <00:02:39.812>c <00:02:39.920>plus <00:02:40.028>plus <00:02:40.135>is <00:02:40.243>about <00:02:40.351>as <00:02:40.458>old <00:02:40.566>as <00:02:40.674>I'm, <00:02:40.781>it <00:02:40.889>was <00:02:40.997>incepted <00:02:41.105>much

66
00:02:44.085 --> 00:02:47.245
<00:02:44.085>before <00:02:44.240>my <00:02:44.396>inception, <00:02:44.551>but <00:02:44.707>the <00:02:44.862>first <00:02:45.018>release <00:02:45.173>was <00:02:45.329>about <00:02:45.485>1983.

67
00:02:47.905 --> 00:02:49.845
<00:02:47.905>And <00:02:48.185>since <00:02:48.465>then, <00:02:48.745>about <00:02:49.025>every <00:02:49.305>decade

68
00:02:49.905 --> 00:02:51.965
<00:02:49.905>or <00:02:50.080>so, <00:02:50.255>people <00:02:50.430>tried <00:02:50.605>to <00:02:50.780>get <00:02:50.955>rid <00:02:51.130>of <00:02:51.305>it.

69
00:02:52.905 --> 00:02:54.805
<00:02:52.905>Why? <00:02:53.060>Why <00:02:53.216>do <00:02:53.371>people <00:02:53.527>try <00:02:53.682>to <00:02:53.838>get <00:02:53.993>rid <00:02:54.149>of <00:02:54.305>it?

70
00:02:56.215 --> 00:03:00.245
<00:02:56.215>Let's <00:02:56.370>look <00:02:56.526>at <00:02:56.681>the <00:02:56.837>first <00:02:56.992>contestant <00:02:57.148>of <00:02:57.303>plus <00:02:57.459>plus <00:02:57.615>Java.

71
00:03:00.345 --> 00:03:03.485
<00:03:00.345>Um, <00:03:00.472>this <00:03:00.599>is, <00:03:00.726>um, <00:03:00.854>James <00:03:00.981>Gosling, <00:03:01.108>one <00:03:01.235>of <00:03:01.363>the <00:03:01.490>creators <00:03:01.617>of <00:03:01.745>Java

72
00:03:03.865 --> 00:03:06.925
<00:03:03.865>who <00:03:04.040>said <00:03:04.215>that, <00:03:04.390>well, <00:03:04.565>working <00:03:04.740>for <00:03:04.915>a <00:03:05.090>long <00:03:05.265>time

73
00:03:07.035 --> 00:03:11.005
<00:03:07.035>with <00:03:07.190>c <00:03:07.346>plus <00:03:07.501>plus, <00:03:07.657>you <00:03:07.812>realize <00:03:07.968>that <00:03:08.123>the <00:03:08.279>memory <00:03:08.435>management

74
00:03:11.545 --> 00:03:12.605
<00:03:11.545>can <00:03:11.863>be <00:03:12.180>very <00:03:12.499>frustrating

75
00:03:12.605 --> 00:03:14.045
<00:03:12.605>because <00:03:12.767>you <00:03:12.929>need <00:03:13.090>to <00:03:13.253>do <00:03:13.415>it <00:03:13.577>on <00:03:13.738>your <00:03:13.900>own.

76
00:03:14.385 --> 00:03:16.005
<00:03:14.385>You <00:03:14.665>need, <00:03:14.945>you <00:03:15.225>are <00:03:15.505>in <00:03:15.785>charge

77
00:03:16.185 --> 00:03:19.445
<00:03:16.185>of <00:03:16.360>having <00:03:16.535>proper <00:03:16.710>memory <00:03:16.885>management <00:03:17.060>in <00:03:17.235>c <00:03:17.410>plus <00:03:17.585>class,

78
00:03:19.865 --> 00:03:22.965
<00:03:19.865>and <00:03:20.065>Java <00:03:20.265>was <00:03:20.465>originally <00:03:20.665>designed <00:03:20.865>for <00:03:21.065>embedded <00:03:21.265>devices.

79
00:03:22.995 --> 00:03:24.965
<00:03:22.995>When <00:03:23.195>you <00:03:23.395>had <00:03:23.595>to <00:03:23.795>work <00:03:23.995>with <00:03:24.195>limited <00:03:24.395>resources,

80
00:03:25.755 --> 00:03:27.445
<00:03:25.755>this <00:03:25.954>can <00:03:26.155>be <00:03:26.355>a <00:03:26.555>problem <00:03:26.755>because <00:03:26.954>you <00:03:27.155>need

81
00:03:27.445 --> 00:03:30.845
<00:03:27.445>to <00:03:27.620>be <00:03:27.795>very <00:03:27.970>disciplined <00:03:28.144>in <00:03:28.320>doing <00:03:28.495>memory <00:03:28.670>management, <00:03:28.845>right?

82
00:03:31.465 --> 00:03:34.965
<00:03:31.465>Um, <00:03:31.665>they <00:03:31.865>said <00:03:32.065>a <00:03:32.265>programming <00:03:32.465>language <00:03:32.665>without <00:03:32.865>garbage

83
00:03:34.965 --> 00:03:39.675
<00:03:34.965>collection <00:03:35.105>was <00:03:35.245>not <00:03:35.385>suitable <00:03:35.525>for <00:03:35.665>the <00:03:35.805>task <00:03:35.945>they <00:03:36.085>wanted <00:03:36.225>to <00:03:36.365>do.

84
00:03:40.535 --> 00:03:43.755
<00:03:40.535>So, <00:03:40.768>um, <00:03:41.001>what <00:03:41.234>James <00:03:41.468>Gosling <00:03:41.701>and, <00:03:41.935>and,

85
00:03:43.855 --> 00:03:47.315
<00:03:43.855>and <00:03:44.030>colleagues <00:03:44.204>did <00:03:44.380>was <00:03:44.554>to <00:03:44.730>create <00:03:44.905>the <00:03:45.079>programming <00:03:45.255>language

86
00:03:47.385 --> 00:03:49.075
<00:03:47.385>that <00:03:47.584>kind <00:03:47.785>of <00:03:47.984>looks <00:03:48.185>like <00:03:48.385>c <00:03:48.584>plus <00:03:48.785>plus.

87
00:03:49.075 --> 00:03:53.635
<00:03:49.075>There's <00:03:49.250>lots <00:03:49.424>of, <00:03:49.600>of, <00:03:49.774>of, <00:03:49.950>um, <00:03:50.125>influence <00:03:50.299>in <00:03:50.475>terms

88
00:03:53.635 --> 00:03:55.555
<00:03:53.635>of <00:03:53.834>syntax, <00:03:54.035>in <00:03:54.234>terms <00:03:54.435>of <00:03:54.635>features, <00:03:54.834>in <00:03:55.035>terms

89
00:03:55.555 --> 00:03:58.555
<00:03:55.555>of <00:03:55.730>the <00:03:55.905>object <00:03:56.080>oriented <00:03:56.255>design <00:03:56.430>from <00:03:56.605>c <00:03:56.780>plus <00:03:56.955>plus,

90
00:03:58.575 --> 00:04:01.155
<00:03:58.575>but <00:03:58.730>get <00:03:58.886>rid <00:03:59.041>of <00:03:59.197>everything <00:03:59.352>that's <00:03:59.508>low <00:03:59.663>level <00:03:59.819>from <00:03:59.975>C.

91
00:04:01.535 --> 00:04:04.275
<00:04:01.535>So <00:04:01.710>take <00:04:01.885>what <00:04:02.060>they <00:04:02.234>liked <00:04:02.410>about <00:04:02.585>c <00:04:02.760>plus <00:04:02.935>plus

92
00:04:04.295 --> 00:04:06.915
<00:04:04.295>and <00:04:04.450>get <00:04:04.606>rid <00:04:04.761>of <00:04:04.917>everything <00:04:05.072>that, <00:04:05.228>uh, <00:04:05.383>which <00:04:05.539>was <00:04:05.695>frustrating,

93
00:04:07.085 --> 00:04:09.355
<00:04:07.085>which <00:04:07.225>led <00:04:07.365>to <00:04:07.505>Java, <00:04:07.645>which <00:04:07.785>is, <00:04:07.925>you <00:04:08.065>know, <00:04:08.205>a, <00:04:08.345>a <00:04:08.485>topic

94
00:04:09.355 --> 00:04:12.475
<00:04:09.355>that <00:04:09.554>we <00:04:09.755>can, <00:04:09.954>that <00:04:10.155>we <00:04:10.355>can, <00:04:10.554>um, <00:04:10.755>discuss

95
00:04:13.095 --> 00:04:14.995
<00:04:13.095>on <00:04:13.445>its <00:04:13.795>own <00:04:14.145>for <00:04:14.495>ages.

96
00:04:15.475 --> 00:04:16.475
<00:04:15.475>I <00:04:15.655>won't <00:04:15.835>do <00:04:16.015>that <00:04:16.195>here <00:04:16.375>today.

97
00:04:16.935 --> 00:04:19.475
<00:04:16.935>Um, <00:04:17.110>funny <00:04:17.285>enough, <00:04:17.459>the <00:04:17.635>original <00:04:17.810>working <00:04:17.985>title, <00:04:18.160>you <00:04:18.334>know,

98
00:04:19.475 --> 00:04:21.995
<00:04:19.475>it <00:04:19.675>is <00:04:19.875>Oak, <00:04:20.075>but <00:04:20.275>one <00:04:20.475>original <00:04:20.675>working <00:04:20.875>title

99
00:04:21.995 --> 00:04:25.115
<00:04:21.995>of <00:04:22.135>the <00:04:22.275>programming <00:04:22.415>language <00:04:22.555>was <00:04:22.695>c <00:04:22.835>plus <00:04:22.975>plus <00:04:23.115>plus <00:04:23.255>plus <00:04:23.395>minus

100
00:04:25.125 --> 00:04:27.155
<00:04:25.125>minus, <00:04:25.358>which <00:04:25.591>tells <00:04:25.825>you <00:04:26.058>a <00:04:26.291>lot <00:04:26.525>about

101
00:04:27.155 --> 00:04:28.995
<00:04:27.155>what <00:04:27.354>the <00:04:27.554>programing <00:04:27.755>language <00:04:27.955>was <00:04:28.155>supposed <00:04:28.354>to <00:04:28.554>be.

102
00:04:29.985 --> 00:04:34.235
<00:04:29.985>Fast, <00:04:30.140>Robert, <00:04:30.296>another <00:04:30.451>10 <00:04:30.607>years, <00:04:30.762>um, <00:04:30.918>Rob <00:04:31.073>Pike <00:04:31.229>was <00:04:31.385>sitting,

103
00:04:34.415 --> 00:04:39.045
<00:04:34.415>uh, <00:04:34.570>together <00:04:34.726>with, <00:04:34.881>um, <00:04:35.037>um, <00:04:35.192>Rob <00:04:35.348>Prisma <00:04:35.503>at <00:04:35.659>Google, <00:04:35.815>um,

104
00:04:39.675 --> 00:04:41.525
<00:04:39.675>compiling <00:04:39.955>some <00:04:40.235>c <00:04:40.515>plus <00:04:40.795>plus <00:04:41.075>code

105
00:04:41.525 --> 00:04:43.895
<00:04:41.525>because <00:04:41.875>they <00:04:42.224>needed <00:04:42.575>efficient <00:04:42.924>memory.

106
00:04:43.965 --> 00:04:45.095
<00:04:43.965>Chow <00:04:44.219>was <00:04:44.473>not <00:04:44.727>cutting <00:04:44.982>it,

107
00:04:45.315 --> 00:04:46.775
<00:04:45.315>and <00:04:45.643>they <00:04:45.972>were <00:04:46.300>increasingly <00:04:46.628>frustrated

108
00:04:47.165 --> 00:04:48.695
<00:04:47.165>because <00:04:47.624>of <00:04:48.083>similar <00:04:48.542>reasons.

109
00:04:49.125 --> 00:04:51.895
<00:04:49.125>They <00:04:49.280>also <00:04:49.436>had <00:04:49.591>ation <00:04:49.747>with <00:04:49.902>c <00:04:50.058>plus <00:04:50.213>plus <00:04:50.369>memory <00:04:50.525>management.

110
00:04:51.895 --> 00:04:52.935
<00:04:51.895>This <00:04:52.207>was <00:04:52.519>just <00:04:52.831>cumbersome,

111
00:04:52.935 --> 00:04:54.295
<00:04:52.935>especially <00:04:53.179>in <00:04:53.424>a <00:04:53.669>large <00:04:53.914>scale <00:04:54.159>project.

112
00:04:55.385 --> 00:04:58.125
<00:04:55.385>And <00:04:55.512>on <00:04:55.639>top <00:04:55.766>of <00:04:55.894>that, <00:04:56.021>they <00:04:56.148>had <00:04:56.275>to <00:04:56.403>work <00:04:56.530>with <00:04:56.657>slow <00:04:56.784>builds.

113
00:04:58.125 --> 00:04:59.205
<00:04:58.125>They <00:04:58.368>told <00:04:58.611>that, <00:04:58.854>you <00:04:59.097>know,

114
00:04:59.465 --> 00:05:01.765
<00:04:59.465>if <00:04:59.698>they <00:04:59.931>would <00:05:00.165>have <00:05:00.398>concatenated <00:05:00.631>every <00:05:00.865>file

115
00:05:01.765 --> 00:05:04.365
<00:05:01.765>that <00:05:01.965>they've <00:05:02.164>written <00:05:02.365>on, <00:05:02.565>it <00:05:02.765>would've <00:05:02.965>been <00:05:03.164>about

116
00:05:04.365 --> 00:05:05.605
<00:05:04.365>4.2 <00:05:04.737>megabytes <00:05:05.109>or <00:05:05.481>something.

117
00:05:06.425 --> 00:05:10.405
<00:05:06.425>But <00:05:06.580>if <00:05:06.736>you <00:05:06.891>expand <00:05:07.047>all <00:05:07.202>the <00:05:07.358>includes <00:05:07.513>from, <00:05:07.669>um, <00:05:07.825>from,

118
00:05:10.475 --> 00:05:13.685
<00:05:10.475>from <00:05:10.615>the <00:05:10.755>module <00:05:10.895>system <00:05:11.035>at <00:05:11.175>the <00:05:11.315>time, <00:05:11.455>how <00:05:11.595>you, <00:05:11.735>how <00:05:11.875>you

119
00:05:14.285 --> 00:05:17.635
<00:05:14.285>structure <00:05:14.518>application, <00:05:14.751>you <00:05:14.985>had <00:05:15.218>about <00:05:15.451>eight <00:05:15.685>gigabytes

120
00:05:17.785 --> 00:05:19.835
<00:05:17.785>that <00:05:17.960>were <00:05:18.135>delivered <00:05:18.310>to <00:05:18.485>the <00:05:18.660>input <00:05:18.835>of <00:05:19.010>the <00:05:19.185>compiler,

121
00:05:19.835 --> 00:05:23.075
<00:05:19.835>which <00:05:20.114>resulted <00:05:20.395>in <00:05:20.674>tremendous <00:05:20.955>compiling <00:05:21.234>efforts.

122
00:05:23.975 --> 00:05:26.235
<00:05:23.975>Um, <00:05:24.175>also, <00:05:24.375>the <00:05:24.575>language <00:05:24.775>was <00:05:24.975>already <00:05:25.175>very <00:05:25.375>vast.

123
00:05:26.235 --> 00:05:28.235
<00:05:26.235>This <00:05:26.468>was <00:05:26.701>around <00:05:26.935>2007, <00:05:27.168>you <00:05:27.401>know, <00:05:27.635>um,

124
00:05:28.555 --> 00:05:30.435
<00:05:28.555>c <00:05:28.788>plus <00:05:29.021>plus <00:05:29.255>2003 <00:05:29.488>was <00:05:29.721>out <00:05:29.955>already.

125
00:05:31.135 --> 00:05:33.835
<00:05:31.135>Um, <00:05:31.310>people <00:05:31.485>decided <00:05:31.659>on <00:05:31.835>language <00:05:32.010>subsets <00:05:32.185>to <00:05:32.360>work <00:05:32.534>with.

126
00:05:33.835 --> 00:05:36.475
<00:05:33.835>You <00:05:33.974>know, <00:05:34.114>if <00:05:34.255>you <00:05:34.395>get <00:05:34.534>then <00:05:34.674>another <00:05:34.815>developer <00:05:34.955>into <00:05:35.094>your <00:05:35.234>team,

127
00:05:37.225 --> 00:05:39.555
<00:05:37.225>they <00:05:37.425>need <00:05:37.625>to <00:05:37.825>adjust <00:05:38.025>to <00:05:38.225>that <00:05:38.425>language <00:05:38.625>subset

128
00:05:39.825 --> 00:05:42.595
<00:05:39.825>because <00:05:40.025>the <00:05:40.224>language <00:05:40.425>itself <00:05:40.625>was <00:05:40.825>just <00:05:41.025>too <00:05:41.224>vast

129
00:05:42.855 --> 00:05:44.555
<00:05:42.855>and <00:05:43.205>too <00:05:43.555>much <00:05:43.905>to <00:05:44.255>understand.

130
00:05:45.615 --> 00:05:48.275
<00:05:45.615>And <00:05:45.770>this <00:05:45.926>also <00:05:46.081>led <00:05:46.237>to <00:05:46.392>a <00:05:46.548>poor <00:05:46.703>program <00:05:46.859>understanding <00:05:47.015>you.

131
00:05:48.415 --> 00:05:50.435
<00:05:48.415>You <00:05:48.590>need <00:05:48.765>to <00:05:48.940>learn <00:05:49.115>the <00:05:49.290>conventions <00:05:49.465>of <00:05:49.640>the <00:05:49.815>team

132
00:05:50.435 --> 00:05:52.835
<00:05:50.435>before <00:05:50.590>you <00:05:50.746>can <00:05:50.901>learn <00:05:51.057>what <00:05:51.212>the <00:05:51.368>program <00:05:51.523>is <00:05:51.679>actually <00:05:51.835>about.

133
00:05:53.335 --> 00:05:55.115
<00:05:53.335>And <00:05:53.568>this <00:05:53.801>is <00:05:54.034>something <00:05:54.268>that <00:05:54.501>bothered <00:05:54.734>them.

134
00:05:55.135 --> 00:05:56.595
<00:05:55.135>So <00:05:55.354>they <00:05:55.573>did <00:05:55.792>about <00:05:56.011>the <00:05:56.230>same <00:05:56.449>thing

135
00:05:56.595 --> 00:05:57.830
<00:05:56.595>as <00:05:56.817>Jane <00:05:57.039>Gosling <00:05:57.261>10 <00:05:57.484>years <00:05:57.706>ago,

136
00:05:57.830 --> 00:06:00.885
<00:05:57.830>and <00:05:57.969>they <00:05:58.109>said, <00:05:58.250>let's <00:05:58.390>remove <00:05:58.530>everything <00:05:58.669>we <00:05:58.810>hate <00:05:58.950>about <00:05:59.090>c <00:05:59.229>plus

137
00:06:00.885 --> 00:06:02.445
<00:06:00.885>plus, <00:06:01.118>which <00:06:01.351>is, <00:06:01.585>you <00:06:01.818>know, <00:06:02.051>basically <00:06:02.284>everything

138
00:06:02.445 --> 00:06:05.405
<00:06:02.445>that <00:06:02.600>Brianna <00:06:02.756>added, <00:06:02.911>let's <00:06:03.067>focus <00:06:03.222>on <00:06:03.378>the <00:06:03.533>core <00:06:03.689>of <00:06:03.844>C

139
00:06:05.465 --> 00:06:06.845
<00:06:05.465>and <00:06:05.775>let's <00:06:06.086>make <00:06:06.396>that <00:06:06.707>better.

140
00:06:07.025 --> 00:06:09.485
<00:06:07.025>And <00:06:07.152>this <00:06:07.279>led <00:06:07.406>to <00:06:07.534>go, <00:06:07.661>uh, <00:06:07.788>which <00:06:07.915>is, <00:06:08.043>you <00:06:08.170>know, <00:06:08.297>uh, <00:06:08.424>uh,

141
00:06:09.585 --> 00:06:10.725
<00:06:09.585>go <00:06:09.790>is <00:06:09.995>also <00:06:10.200>a <00:06:10.405>broken <00:06:10.611>language

142
00:06:10.725 --> 00:06:12.885
<00:06:10.725>that <00:06:11.005>is <00:06:11.285>highly <00:06:11.565>debated <00:06:11.845>among <00:06:12.125>developers.

143
00:06:13.385 --> 00:06:16.405
<00:06:13.385>Um, <00:06:13.560>I <00:06:13.735>personally <00:06:13.909>don't, <00:06:14.085>don't <00:06:14.260>like <00:06:14.435>working <00:06:14.610>with <00:06:14.784>Go,

144
00:06:16.405 --> 00:06:19.445
<00:06:16.405>but <00:06:16.560>I <00:06:16.716>like <00:06:16.871>listening <00:06:17.027>to <00:06:17.182>Rob <00:06:17.338>Pike <00:06:17.493>talking <00:06:17.649>about <00:06:17.804>Go.

145
00:06:20.105 --> 00:06:24.825
<00:06:20.105>Um, <00:06:20.260>Rob <00:06:20.416>Pike <00:06:20.571>has <00:06:20.727>a <00:06:20.882>lot <00:06:21.038>of <00:06:21.193>great <00:06:21.349>design <00:06:21.505>decisions.

146
00:06:25.695 --> 00:06:27.835
<00:06:25.695>He <00:06:25.928>understands <00:06:26.161>how <00:06:26.395>programming <00:06:26.628>languages <00:06:26.861>can <00:06:27.094>work,

147
00:06:27.855 --> 00:06:29.515
<00:06:27.855>and <00:06:28.010>I <00:06:28.166>think <00:06:28.321>the <00:06:28.477>work <00:06:28.632>that <00:06:28.788>he <00:06:28.943>did <00:06:29.099>is <00:06:29.255>remarkable.

148
00:06:29.855 --> 00:06:33.755
<00:06:29.855>So, <00:06:29.971>um, <00:06:30.088>go <00:06:30.205>check <00:06:30.321>out <00:06:30.438>the <00:06:30.555>link <00:06:30.671>that <00:06:30.788>I <00:06:30.905>have <00:06:31.021>here, <00:06:31.138>uh, <00:06:31.255>below,

149
00:06:33.755 --> 00:06:36.115
<00:06:33.755>and <00:06:33.910>also <00:06:34.066>check <00:06:34.221>out <00:06:34.377>every <00:06:34.532>video <00:06:34.688>of <00:06:34.843>him <00:06:34.999>on <00:06:35.155>YouTube,

150
00:06:36.935 --> 00:06:39.965
<00:06:36.935>which <00:06:37.090>leads <00:06:37.246>me <00:06:37.401>for <00:06:37.557>the <00:06:37.712>first <00:06:37.868>time <00:06:38.023>to <00:06:38.179>Rust, <00:06:38.335>rust,

151
00:06:40.245 --> 00:06:43.085
<00:06:40.245>I <00:06:40.385>guess <00:06:40.525>also <00:06:40.665>about <00:06:40.805>the <00:06:40.945>same <00:06:41.085>time <00:06:41.225>incepted <00:06:41.365>as <00:06:41.505>as <00:06:41.645>go,

152
00:06:43.085 --> 00:06:46.245
<00:06:43.085>but <00:06:43.318>not <00:06:43.551>released <00:06:43.784>before <00:06:44.018>2015, <00:06:44.251>um, <00:06:44.484>had

153
00:06:46.965 --> 00:06:49.805
<00:06:46.965>a <00:06:47.140>very <00:06:47.315>similar <00:06:47.490>problem <00:06:47.665>at <00:06:47.840>a <00:06:48.015>very <00:06:48.190>similar <00:06:48.365>time.

154
00:06:50.165 --> 00:06:51.405
<00:06:50.165>C <00:06:50.444>plus <00:06:50.723>plus <00:06:51.002>was <00:06:51.280>unmanageable.

155
00:06:51.405 --> 00:06:53.165
<00:06:51.405>People <00:06:51.755>worked <00:06:52.104>on <00:06:52.455>language <00:06:52.804>subset.

156
00:06:53.385 --> 00:06:58.125
<00:06:53.385>It <00:06:53.540>was <00:06:53.696>hard <00:06:53.851>to <00:06:54.007>write <00:06:54.162>concurrent <00:06:54.318>applications <00:06:54.473>to <00:06:54.629>write, <00:06:54.784>um,

157
00:06:58.305 --> 00:07:00.725
<00:06:58.305>um, <00:06:58.771>uh, <00:06:59.238>multi-feed <00:06:59.705>applications.

158
00:07:01.345 --> 00:07:03.845
<00:07:01.345>Um, <00:07:01.520>and <00:07:01.695>they <00:07:01.870>wanted <00:07:02.045>to <00:07:02.220>create <00:07:02.395>the <00:07:02.570>programming <00:07:02.745>language

159
00:07:04.075 --> 00:07:05.645
<00:07:04.075>with <00:07:04.425>no <00:07:04.775>compromise <00:07:05.125>on <00:07:05.474>performance.

160
00:07:05.985 --> 00:07:07.525
<00:07:05.985>Um, <00:07:06.216>they <00:07:06.447>had <00:07:06.678>a <00:07:06.909>garbage <00:07:07.140>collector <00:07:07.371>first,

161
00:07:07.525 --> 00:07:08.965
<00:07:07.525>but <00:07:07.741>they <00:07:07.957>removed <00:07:08.173>the <00:07:08.388>garbage <00:07:08.604>collector <00:07:08.820>thanks

162
00:07:08.965 --> 00:07:10.365
<00:07:08.965>to <00:07:09.217>the <00:07:09.469>work <00:07:09.721>of <00:07:09.973>Newcomb <00:07:10.225>Masaki.

163
00:07:10.465 --> 00:07:13.125
<00:07:10.465>Um, <00:07:10.604>I <00:07:10.744>had <00:07:10.885>the <00:07:11.025>privilege <00:07:11.164>to <00:07:11.304>talk <00:07:11.445>to <00:07:11.585>him <00:07:11.724>about <00:07:11.864>it.

164
00:07:13.625 --> 00:07:17.005
<00:07:13.625>Um, <00:07:13.765>when, <00:07:13.905>when <00:07:14.045>going <00:07:14.185>with <00:07:14.325>the <00:07:14.465>tram <00:07:14.605>from <00:07:14.745>the <00:07:14.885>hotel <00:07:15.025>to,

165
00:07:17.025 --> 00:07:20.885
<00:07:17.025>to <00:07:17.200>Euros, <00:07:17.375>um, <00:07:17.549>it's <00:07:17.724>actually <00:07:17.900>remarkable <00:07:18.075>what <00:07:18.250>they <00:07:18.424>did

166
00:07:21.145 --> 00:07:24.125
<00:07:21.145>to <00:07:21.344>bring <00:07:21.544>something <00:07:21.745>from <00:07:21.945>academic <00:07:22.145>inter <00:07:22.344>programing <00:07:22.544>language

167
00:07:24.125 --> 00:07:29.055
<00:07:24.125>that <00:07:24.300>is <00:07:24.475>used <00:07:24.650>by <00:07:24.825>thousands <00:07:25.000>hundred <00:07:25.175>thousands <00:07:25.350>of <00:07:25.525>people.

168
00:07:29.395 --> 00:07:30.535
<00:07:29.395>Go <00:07:29.651>check <00:07:29.908>out <00:07:30.164>this <00:07:30.421>video.

169
00:07:30.685 --> 00:07:32.775
<00:07:30.685>Heck <00:07:30.885>without <00:07:31.085>fear, <00:07:31.285>you <00:07:31.485>learn <00:07:31.685>a <00:07:31.885>lot <00:07:32.085>about

170
00:07:33.525 --> 00:07:37.185
<00:07:33.525>what <00:07:33.700>the <00:07:33.875>basic <00:07:34.049>design <00:07:34.224>of <00:07:34.400>rust <00:07:34.575>is <00:07:34.750>actually <00:07:34.924>about.

171
00:07:38.485 --> 00:07:39.905
<00:07:38.485>And, <00:07:38.740>you <00:07:38.996>know, <00:07:39.251>lots <00:07:39.507>of <00:07:39.763>development.

172
00:07:40.245 --> 00:07:43.705
<00:07:40.245>People <00:07:40.372>try <00:07:40.499>to <00:07:40.626>get <00:07:40.754>rid <00:07:40.881>of <00:07:41.008>pain <00:07:41.135>points <00:07:41.263>in <00:07:41.390>c <00:07:41.517>plus <00:07:41.645>plus

173
00:07:43.805 --> 00:07:47.085
<00:07:43.805>and <00:07:44.005>try <00:07:44.205>to <00:07:44.405>make <00:07:44.605>a <00:07:44.805>better <00:07:45.005>program <00:07:45.205>language.

174
00:07:47.425 --> 00:07:50.285
<00:07:47.425>But <00:07:47.565>you <00:07:47.705>know <00:07:47.845>what? <00:07:47.985>The <00:07:48.125>c <00:07:48.265>plus <00:07:48.405>plus <00:07:48.545>folks <00:07:48.685>are <00:07:48.825>not

175
00:07:50.445 --> 00:07:51.565
<00:07:50.445>sleeping <00:07:51.453>actually.

176
00:07:51.565 --> 00:07:53.685
<00:07:51.565>They're <00:07:51.915>also <00:07:52.265>working <00:07:52.615>to <00:07:52.965>on,

177
00:07:53.785 --> 00:07:56.605
<00:07:53.784>on <00:07:54.064>making <00:07:54.344>their <00:07:54.624>programming <00:07:54.905>language <00:07:55.184>better

178
00:07:56.745 --> 00:07:58.285
<00:07:56.745>and <00:07:57.207>introduce <00:07:57.669>more <00:07:58.131>features.

179
00:07:58.705 --> 00:08:00.885
<00:07:58.705>If <00:07:58.880>you <00:07:59.055>look <00:07:59.229>at <00:07:59.405>the <00:07:59.580>second <00:07:59.755>c <00:07:59.930>plus <00:08:00.104>plus,

180
00:08:00.985 --> 00:08:03.165
<00:08:00.985>now <00:08:01.218>we <00:08:01.451>have <00:08:01.685>things <00:08:01.918>like <00:08:02.151>memory <00:08:02.385>safety,

181
00:08:03.165 --> 00:08:05.005
<00:08:03.165>which <00:08:03.320>is <00:08:03.476>very <00:08:03.631>similar <00:08:03.787>to <00:08:03.942>what <00:08:04.098>you <00:08:04.253>have <00:08:04.409>in <00:08:04.565>Rust.

182
00:08:05.005 --> 00:08:06.565
<00:08:05.005>You <00:08:05.238>have <00:08:05.471>unique <00:08:05.705>point <00:08:05.938>of <00:08:06.171>share <00:08:06.405>pointers.

183
00:08:06.565 --> 00:08:10.485
<00:08:06.565>You <00:08:06.740>have <00:08:06.915>move <00:08:07.090>semantics <00:08:07.265>all <00:08:07.440>abstracted <00:08:07.615>in <00:08:07.790>respective, <00:08:07.965>um,

184
00:08:10.745 --> 00:08:15.165
<00:08:10.745>helper <00:08:10.885>types <00:08:11.025>that <00:08:11.165>bring <00:08:11.305>you <00:08:11.445>to <00:08:11.585>a <00:08:11.725>rust <00:08:11.865>like <00:08:12.005>experience <00:08:12.145>on

185
00:08:15.165 --> 00:08:16.485
<00:08:15.165>how <00:08:15.402>you <00:08:15.640>can <00:08:15.877>ma <00:08:16.115>manage <00:08:16.353>memory.

186
00:08:17.545 --> 00:08:19.205
<00:08:17.545>Uh, <00:08:17.895>with <00:08:18.245>titrates <00:08:18.595>and <00:08:18.945>concepts.

187
00:08:19.385 --> 00:08:21.565
<00:08:19.385>You <00:08:19.560>have <00:08:19.735>zero <00:08:19.909>cost <00:08:20.085>abstractions, <00:08:20.260>which <00:08:20.435>are <00:08:20.610>very <00:08:20.784>similar

188
00:08:21.665 --> 00:08:26.045
<00:08:21.665>to <00:08:21.820>traits <00:08:21.976>in <00:08:22.131>Rust, <00:08:22.287>but <00:08:22.442>you <00:08:22.598>know, <00:08:22.753>c <00:08:22.909>plus <00:08:23.065>ified.

189
00:08:26.705 --> 00:08:30.045
<00:08:26.705>Um, <00:08:26.880>and <00:08:27.055>also <00:08:27.229>get <00:08:27.405>rid <00:08:27.580>of <00:08:27.755>all <00:08:27.930>your <00:08:28.104>includes

190
00:08:30.045 --> 00:08:32.245
<00:08:30.045>and <00:08:30.220>all <00:08:30.395>your <00:08:30.570>header <00:08:30.745>files <00:08:30.920>with <00:08:31.095>modules <00:08:31.270>and <00:08:31.445>imports.

191
00:08:32.245 --> 00:08:33.365
<00:08:32.245>You <00:08:32.446>can <00:08:32.648>have <00:08:32.849>fast <00:08:33.051>compiled <00:08:33.253>tag

192
00:08:33.365 --> 00:08:36.805
<00:08:33.365>as <00:08:33.520>you <00:08:33.676>have <00:08:33.831>proper <00:08:33.987>structuring <00:08:34.142>of <00:08:34.298>your <00:08:34.453>application <00:08:34.609>40 <00:08:34.765>years

193
00:08:37.255 --> 00:08:39.005
<00:08:37.255>after <00:08:37.534>the <00:08:37.814>c <00:08:38.095>plus <00:08:38.375>plus <00:08:38.655>inception.

194
00:08:39.145 --> 00:08:42.525
<00:08:39.145>You <00:08:39.319>finally <00:08:39.495>can <00:08:39.669>structure <00:08:39.845>your <00:08:40.020>c <00:08:40.194>plus <00:08:40.370>plus <00:08:40.544>application

195
00:08:43.035 --> 00:08:45.725
<00:08:43.034>like <00:08:43.209>you <00:08:43.385>would <00:08:43.559>do <00:08:43.735>in <00:08:43.909>a <00:08:44.084>modern <00:08:44.260>programming <00:08:44.435>language.

196
00:08:46.185 --> 00:08:48.445
<00:08:46.185>You <00:08:46.385>have <00:08:46.584>an <00:08:46.785>expanded <00:08:46.984>standard <00:08:47.185>library <00:08:47.385>array <00:08:47.584>vectors,

197
00:08:48.445 --> 00:08:51.445
<00:08:48.445>and <00:08:48.678>you <00:08:48.911>have <00:08:49.145>primase <00:08:49.378>for <00:08:49.611>asynchronous <00:08:49.845>programming,

198
00:08:51.445 --> 00:08:53.205
<00:08:51.445>for <00:08:51.795>concurrency, <00:08:52.145>for <00:08:52.495>cot <00:08:52.845>routines.

199
00:08:53.205 --> 00:08:55.125
<00:08:53.205>You <00:08:53.405>know, <00:08:53.605>a <00:08:53.805>concept <00:08:54.005>that <00:08:54.205>is <00:08:54.405>also <00:08:54.605>around

200
00:08:55.320 --> 00:08:58.565
<00:08:55.320>for <00:08:55.447>ages <00:08:55.574>now <00:08:55.701>finds <00:08:55.829>its <00:08:55.956>way <00:08:56.083>to <00:08:56.210>be <00:08:56.338>a <00:08:56.465>first <00:08:56.592>class <00:08:56.720>citizen

201
00:08:59.145 --> 00:09:01.205
<00:08:59.145>in <00:08:59.378>the <00:08:59.611>c <00:08:59.845>plus <00:09:00.078>plus <00:09:00.311>programming <00:09:00.545>language.

202
00:09:01.205 --> 00:09:03.005
<00:09:01.205>Fantastic. <00:09:01.485>Lots <00:09:01.765>of <00:09:02.045>new <00:09:02.325>stuff <00:09:02.605>there.

203
00:09:03.315 --> 00:09:06.565
<00:09:03.315>Lots <00:09:03.515>of <00:09:03.715>things <00:09:03.915>inspired <00:09:04.115>from <00:09:04.315>programming <00:09:04.515>languages <00:09:04.715>like

204
00:09:06.565 --> 00:09:07.725
<00:09:06.565>Go <00:09:07.087>RAs, <00:09:07.609>Java.

205
00:09:07.955 --> 00:09:10.085
<00:09:07.955>They <00:09:08.155>look <00:09:08.355>beyond <00:09:08.555>the <00:09:08.755>edge <00:09:08.955>of <00:09:09.155>the <00:09:09.355>plate.

206
00:09:10.115 --> 00:09:11.685
<00:09:10.115>They <00:09:10.465>know <00:09:10.815>what's <00:09:11.165>going <00:09:11.515>on

207
00:09:11.945 --> 00:09:15.445
<00:09:11.945>and <00:09:12.145>they <00:09:12.345>can <00:09:12.545>modify <00:09:12.745>the <00:09:12.945>language <00:09:13.145>to <00:09:13.345>something

208
00:09:15.795 --> 00:09:17.445
<00:09:15.795>that <00:09:16.145>is <00:09:16.495>modern <00:09:16.844>and <00:09:17.194>usable.

209
00:09:18.425 --> 00:09:21.165
<00:09:18.425>And, <00:09:18.580>you <00:09:18.736>know, <00:09:18.891>this <00:09:19.047>is <00:09:19.202>even <00:09:19.358>what, <00:09:19.513>what <00:09:19.669>Brianna <00:09:19.824>uh,

210
00:09:21.165 --> 00:09:23.565
<00:09:21.165>says <00:09:21.305>when <00:09:21.444>he, <00:09:21.584>when <00:09:21.724>he <00:09:21.865>gives <00:09:22.005>c <00:09:22.145>plus <00:09:22.285>plus <00:09:22.425>talks, <00:09:22.564>he

211
00:09:24.105 --> 00:09:27.165
<00:09:24.105>is <00:09:24.245>very <00:09:24.385>critical <00:09:24.525>about <00:09:24.665>the <00:09:24.805>way <00:09:24.945>c <00:09:25.085>plus <00:09:25.225>plus <00:09:25.365>is <00:09:25.505>taught

212
00:09:27.165 --> 00:09:29.645
<00:09:27.165>because <00:09:27.339>he <00:09:27.515>says, <00:09:27.689>yeah, <00:09:27.865>well, <00:09:28.040>c <00:09:28.214>plus <00:09:28.390>plus <00:09:28.564>has

213
00:09:30.225 --> 00:09:31.285
<00:09:30.225>is <00:09:30.543>a <00:09:30.861>huge <00:09:31.179>standard.

214
00:09:31.905 --> 00:09:34.005
<00:09:31.905>It <00:09:32.105>says <00:09:32.305>what's <00:09:32.505>valid, <00:09:32.704>but <00:09:32.905>not <00:09:33.105>what's <00:09:33.305>useful.

215
00:09:34.785 --> 00:09:37.605
<00:09:34.785>Um, <00:09:34.925>and <00:09:35.064>people, <00:09:35.204>if <00:09:35.344>you <00:09:35.485>go <00:09:35.625>to <00:09:35.765>university <00:09:35.905>or <00:09:36.045>to <00:09:36.185>bootcamps

216
00:09:37.605 --> 00:09:39.125
<00:09:37.605>or <00:09:37.800>wherever <00:09:37.995>where <00:09:38.191>you <00:09:38.386>learn <00:09:38.582>c <00:09:38.777>plus <00:09:38.973>plus,

217
00:09:39.665 --> 00:09:42.165
<00:09:39.665>you <00:09:39.820>learn <00:09:39.976>the <00:09:40.131>c <00:09:40.287>plus <00:09:40.442>plus <00:09:40.598>from <00:09:40.753>20 <00:09:40.909>years <00:09:41.064>ago.

218
00:09:42.185 --> 00:09:43.485
<00:09:42.185>The <00:09:42.380>c <00:09:42.574>plus <00:09:42.770>plus <00:09:42.965>that <00:09:43.160>I <00:09:43.355>learned

219
00:09:43.485 --> 00:09:45.445
<00:09:43.485>and <00:09:43.612>I <00:09:43.739>was <00:09:43.866>pretty <00:09:43.994>s**t <00:09:44.121>at <00:09:44.248>c <00:09:44.375>plus <00:09:44.503>plus, <00:09:44.630>to <00:09:44.757>be <00:09:44.885>honest.

220
00:09:45.505 --> 00:09:47.485
<00:09:45.505>Second <00:09:45.705>swearing <00:09:45.905>just <00:09:46.105>another <00:09:46.305>year <00:09:46.505>in <00:09:46.705>the <00:09:46.905>swear.

221
00:09:48.185 --> 00:09:52.925
<00:09:48.185>Um, <00:09:48.385>so <00:09:48.584>he <00:09:48.785>urges <00:09:48.984>people <00:09:49.185>to <00:09:49.385>teach <00:09:49.584>better

222
00:09:53.585 --> 00:09:56.445
<00:09:53.585>to, <00:09:53.725>to <00:09:53.865>get <00:09:54.005>new <00:09:54.145>programmers <00:09:54.285>on <00:09:54.425>board <00:09:54.565>in <00:09:54.705>a <00:09:54.845>better <00:09:54.985>way

223
00:09:56.445 --> 00:09:58.805
<00:09:56.445>with <00:09:56.725>modern <00:09:57.005>concepts, <00:09:57.285>with <00:09:57.565>proper <00:09:57.845>subsets.

224
00:09:58.805 --> 00:10:00.765
<00:09:58.805>And <00:09:58.979>there's <00:09:59.155>this <00:09:59.329>little <00:09:59.505>word, <00:09:59.680>again, <00:09:59.854>the <00:10:00.030>language <00:10:00.204>subset

225
00:10:01.535 --> 00:10:04.365
<00:10:01.535>focus <00:10:01.768>on <00:10:02.001>the <00:10:02.235>carefully <00:10:02.468>selected <00:10:02.701>language <00:10:02.935>subset.

226
00:10:04.555 --> 00:10:06.925
<00:10:04.555>This <00:10:04.710>is <00:10:04.866>the <00:10:05.021>key <00:10:05.177>to <00:10:05.332>understand <00:10:05.488>good <00:10:05.643>c <00:10:05.799>plus <00:10:05.954>plus.

227
00:10:06.945 --> 00:10:09.205
<00:10:06.945>And <00:10:07.145>this <00:10:07.345>is <00:10:07.545>also <00:10:07.745>something <00:10:07.945>that, <00:10:08.145>for <00:10:08.345>example,

228
00:10:09.205 --> 00:10:10.365
<00:10:09.205>channel <00:10:09.466>a <00:10:09.727>roof <00:10:09.988>from <00:10:10.249>Google.

229
00:10:10.615 --> 00:10:13.365
<00:10:10.615>Again, <00:10:11.081>15 <00:10:11.548>years <00:10:12.015>after,

230
00:10:13.615 --> 00:10:18.045
<00:10:13.615>after <00:10:13.790>go <00:10:13.965>go <00:10:14.140>Google <00:10:14.315>creates <00:10:14.490>another <00:10:14.665>low <00:10:14.840>level, <00:10:15.015>uh,

231
00:10:18.045 --> 00:10:20.325
<00:10:18.045>programming <00:10:18.511>language, <00:10:18.978>um, <00:10:19.444>sorry,

232
00:10:20.325 --> 00:10:22.725
<00:10:20.325>high <00:10:20.558>level <00:10:20.791>programming <00:10:21.025>language, <00:10:21.258>uh, <00:10:21.491>um, <00:10:21.725>um,

233
00:10:22.915 --> 00:10:24.365
<00:10:22.915>high <00:10:23.350>performance <00:10:23.785>programming <00:10:24.220>language,

234
00:10:24.495 --> 00:10:26.565
<00:10:24.495>which <00:10:24.728>is <00:10:24.961>called <00:10:25.195>Carbon, <00:10:25.428>which <00:10:25.661>really <00:10:25.895>tries

235
00:10:26.565 --> 00:10:28.245
<00:10:26.565>to <00:10:26.798>be <00:10:27.031>a <00:10:27.265>c <00:10:27.498>plus <00:10:27.731>plus <00:10:27.965>successor.

236
00:10:28.245 --> 00:10:31.285
<00:10:28.245>It <00:10:28.420>wants <00:10:28.595>to <00:10:28.770>integrate <00:10:28.945>well <00:10:29.120>with <00:10:29.295>c <00:10:29.470>plus <00:10:29.645>plus.

237
00:10:31.585 --> 00:10:35.645
<00:10:31.585>Its <00:10:31.701>goal <00:10:31.818>is <00:10:31.935>to <00:10:32.051>be <00:10:32.168>a <00:10:32.285>good <00:10:32.401>tool <00:10:32.518>that <00:10:32.635>works <00:10:32.751>really, <00:10:32.868>really <00:10:32.985>well

238
00:10:35.645 --> 00:10:39.165
<00:10:35.645>with <00:10:35.800>c <00:10:35.956>plus <00:10:36.111>plus, <00:10:36.267>but <00:10:36.422>has <00:10:36.578>a <00:10:36.733>very <00:10:36.889>small <00:10:37.045>language,

239
00:10:39.635 --> 00:10:42.805
<00:10:39.635>some <00:10:39.810>new <00:10:39.985>construct <00:10:40.160>that <00:10:40.335>make <00:10:40.510>it <00:10:40.685>modern, <00:10:40.860>um, <00:10:41.035>and,

240
00:10:42.805 --> 00:10:45.885
<00:10:42.805>and <00:10:42.960>something <00:10:43.116>that <00:10:43.271>makes <00:10:43.427>it <00:10:43.582>easier <00:10:43.738>to <00:10:43.893>reason <00:10:44.049>about, <00:10:44.204>easy

241
00:10:46.025 --> 00:10:47.845
<00:10:46.025>to <00:10:46.305>understand <00:10:46.584>and <00:10:46.865>easier <00:10:47.145>to <00:10:47.425>write.

242
00:10:48.025 --> 00:10:49.885
<00:10:48.025>So <00:10:48.199>the <00:10:48.375>goal <00:10:48.550>is <00:10:48.725>to <00:10:48.900>get <00:10:49.074>rid <00:10:49.250>of <00:10:49.425>everything

243
00:10:49.885 --> 00:10:51.525
<00:10:49.885>that <00:10:50.118>people <00:10:50.351>hate <00:10:50.585>about <00:10:50.818>c <00:10:51.051>plus <00:10:51.285>plus,

244
00:10:51.525 --> 00:10:54.445
<00:10:51.525>have <00:10:51.699>a <00:10:51.875>proper <00:10:52.050>defined <00:10:52.225>language <00:10:52.400>subset <00:10:52.574>that <00:10:52.750>integrates <00:10:52.925>well

245
00:10:54.915 --> 00:10:55.925
<00:10:54.915>with <00:10:55.218>c <00:10:55.521>plus <00:10:55.824>plus.

246
00:10:56.385 --> 00:11:01.085
<00:10:56.385>Um, <00:10:56.512>also <00:10:56.639>look <00:10:56.766>at <00:10:56.894>CPP <00:10:57.021>front <00:10:57.148>two, <00:10:57.275>um, <00:10:57.403>um, <00:10:57.530>by <00:10:57.657>Herb <00:10:57.785>Ner,

247
00:11:01.145 --> 00:11:03.765
<00:11:01.145>who <00:11:01.285>has <00:11:01.425>also <00:11:01.564>been <00:11:01.704>in <00:11:01.845>the <00:11:01.985>c <00:11:02.125>plus <00:11:02.265>plus <00:11:02.405>standard <00:11:02.545>committee

248
00:11:03.785 --> 00:11:04.805
<00:11:03.785>for, <00:11:04.243>for <00:11:04.703>ages.

249
00:11:05.625 --> 00:11:08.965
<00:11:05.625>Um, <00:11:05.765>he <00:11:05.905>also <00:11:06.045>tries <00:11:06.185>to <00:11:06.325>get <00:11:06.465>rid <00:11:06.605>of <00:11:06.745>lots <00:11:06.885>of, <00:11:07.025>of

250
00:11:09.815 --> 00:11:12.425
<00:11:09.815>technically <00:11:10.095>debt, <00:11:10.375>basically, <00:11:10.655>that <00:11:10.935>comes <00:11:11.215>along

251
00:11:12.425 --> 00:11:13.705
<00:11:12.425>with <00:11:12.655>the <00:11:12.885>c <00:11:13.116>plus <00:11:13.346>plus <00:11:13.577>language.

252
00:11:14.335 --> 00:11:15.425
<00:11:14.335>This, <00:11:15.315>and,

253
00:11:15.445 --> 00:11:19.705
<00:11:15.445>and <00:11:15.572>he, <00:11:15.699>Chandler <00:11:15.826>really <00:11:15.954>nailed <00:11:16.081>it <00:11:16.208>in <00:11:16.335>his <00:11:16.463>talk <00:11:16.590>at <00:11:16.717>CPP <00:11:16.845>North

254
00:11:19.875 --> 00:11:23.585
<00:11:19.875>where <00:11:20.050>he <00:11:20.225>said <00:11:20.400>that <00:11:20.575>c <00:11:20.750>plus <00:11:20.925>plus <00:11:21.100>accumulated <00:11:21.275>decades

255
00:11:23.805 --> 00:11:25.505
<00:11:23.805>of <00:11:24.155>technical <00:11:24.505>debt <00:11:24.854>because <00:11:25.204>they

256
00:11:25.505 --> 00:11:27.025
<00:11:25.505>prioritize <00:11:26.189>backwards <00:11:26.872>compatibility.

257
00:11:27.375 --> 00:11:29.225
<00:11:27.375>This <00:11:27.550>is <00:11:27.725>a <00:11:27.900>noble <00:11:28.075>goal, <00:11:28.250>don't <00:11:28.425>get <00:11:28.600>me <00:11:28.775>wrong.

258
00:11:29.515 --> 00:11:31.945
<00:11:29.515>Don't <00:11:29.689>think <00:11:29.865>about <00:11:30.040>c <00:11:30.215>plus <00:11:30.390>plus <00:11:30.564>for <00:11:30.740>being <00:11:30.915>old

259
00:11:32.005 --> 00:11:34.705
<00:11:32.005>and <00:11:32.205>trying <00:11:32.405>to <00:11:32.605>cater <00:11:32.805>to <00:11:33.005>developers <00:11:33.205>who <00:11:33.405>worked

260
00:11:34.705 --> 00:11:36.585
<00:11:34.705>with <00:11:35.055>the <00:11:35.405>language <00:11:35.755>for <00:11:36.105>ages.

261
00:11:36.855 --> 00:11:39.145
<00:11:36.855>It's <00:11:37.088>about <00:11:37.321>four <00:11:37.555>decades <00:11:37.788>worth <00:11:38.021>of <00:11:38.255>code.

262
00:11:39.535 --> 00:11:40.625
<00:11:39.535>This <00:11:39.780>is <00:11:40.025>a <00:11:40.270>noble <00:11:40.516>goal,

263
00:11:40.685 --> 00:11:43.825
<00:11:40.685>but <00:11:40.824>it <00:11:40.964>leads <00:11:41.104>to, <00:11:41.244>to <00:11:41.385>this <00:11:41.525>one <00:11:41.665>problem <00:11:41.805>that <00:11:41.944>we <00:11:42.084>have

264
00:11:43.825 --> 00:11:46.385
<00:11:43.825>where <00:11:44.025>we <00:11:44.225>constantly <00:11:44.425>need <00:11:44.625>new <00:11:44.825>programming <00:11:45.025>languages <00:11:45.225>like

265
00:11:46.385 --> 00:11:50.065
<00:11:46.385>trust <00:11:46.501>that <00:11:46.618>it's <00:11:46.735>not <00:11:46.851>about <00:11:46.968>what <00:11:47.085>we <00:11:47.201>can <00:11:47.318>add <00:11:47.435>to <00:11:47.551>c <00:11:47.668>plus <00:11:47.785>plus,

266
00:11:50.485 --> 00:11:52.945
<00:11:50.485>but <00:11:50.685>what <00:11:50.885>we <00:11:51.085>can't <00:11:51.285>remove <00:11:51.485>c <00:11:51.685>plus <00:11:51.885>plus

267
00:11:53.795 --> 00:11:56.005
<00:11:53.795>prioritizes <00:11:54.495>backwards <00:11:55.194>compatibility.

268
00:11:56.115 --> 00:12:00.965
<00:11:56.115>This <00:11:56.270>is <00:11:56.426>a, <00:11:56.581>a <00:11:56.737>very, <00:11:56.892>um, <00:11:57.048>um, <00:11:57.203>hastily <00:11:57.359>adjusted <00:11:57.515>quote

269
00:12:00.985 --> 00:12:02.165
<00:12:00.985>by <00:12:01.162>the <00:12:01.339>author <00:12:01.516>of <00:12:01.693>the <00:12:01.870>Little <00:12:02.047>Prince.

270
00:12:03.345 --> 00:12:05.685
<00:12:03.345>I'm <00:12:03.520>probably <00:12:03.695>butchering <00:12:03.870>his <00:12:04.045>name, <00:12:04.220>but <00:12:04.395>it <00:12:04.570>nails <00:12:04.745>it.

271
00:12:05.945 --> 00:12:09.325
<00:12:05.945>We <00:12:06.061>are <00:12:06.178>not <00:12:06.295>talking <00:12:06.411>about <00:12:06.528>what <00:12:06.645>we <00:12:06.761>can <00:12:06.878>add <00:12:06.995>to <00:12:07.111>make <00:12:07.228>it <00:12:07.345>modern,

272
00:12:09.625 --> 00:12:12.725
<00:12:09.625>but <00:12:09.765>what <00:12:09.905>we <00:12:10.045>can't <00:12:10.185>remove, <00:12:10.325>um, <00:12:10.465>for <00:12:10.605>example, <00:12:10.745>like <00:12:10.885>this <00:12:11.025>house,

273
00:12:12.725 --> 00:12:15.205
<00:12:12.725>this <00:12:12.865>is <00:12:13.005>in <00:12:13.145>in <00:12:13.285>book <00:12:13.425>photograph <00:12:13.565>by <00:12:13.705>my <00:12:13.845>friend <00:12:13.985>RN <00:12:14.125>Meyer.

274
00:12:15.585 --> 00:12:17.285
<00:12:15.585>Um, <00:12:15.818>this <00:12:16.051>has <00:12:16.285>been <00:12:16.518>designed <00:12:16.751>by <00:12:16.985>committee.

275
00:12:17.345 --> 00:12:20.245
<00:12:17.345>You <00:12:17.500>can <00:12:17.656>see <00:12:17.811>the <00:12:17.967>decade <00:12:18.122>those <00:12:18.278>features <00:12:18.433>have <00:12:18.589>been <00:12:18.745>added

276
00:12:20.265 --> 00:12:22.445
<00:12:20.265>to <00:12:20.439>the <00:12:20.615>roof <00:12:20.790>of <00:12:20.965>this <00:12:21.140>beautiful <00:12:21.314>house <00:12:21.490>right <00:12:21.665>next

277
00:12:22.505 --> 00:12:24.805
<00:12:22.505>to <00:12:22.680>the <00:12:22.855>main <00:12:23.030>station, <00:12:23.205>uh, <00:12:23.380>in, <00:12:23.555>in <00:12:23.730>in <00:12:23.905>book.

278
00:12:24.905 --> 00:12:27.525
<00:12:24.905>And <00:12:25.045>also <00:12:25.185>if <00:12:25.324>you <00:12:25.464>look <00:12:25.605>about <00:12:25.745>the, <00:12:25.885>the, <00:12:26.025>the <00:12:26.165>page <00:12:26.305>size

279
00:12:27.585 --> 00:12:30.045
<00:12:27.585>of <00:12:27.760>the <00:12:27.935>standards <00:12:28.110>that <00:12:28.285>the <00:12:28.460>most <00:12:28.635>recent <00:12:28.810>one, <00:12:28.985>no,

280
00:12:30.125 --> 00:12:31.965
<00:12:30.125>it's <00:12:30.280>not <00:12:30.436>the <00:12:30.591>most <00:12:30.747>recent <00:12:30.902>one, <00:12:31.058>c <00:12:31.213>plus <00:12:31.369>plus, <00:12:31.525>uh,

281
00:12:31.965 --> 00:12:33.245
<00:12:31.965>2023 <00:12:32.541>came <00:12:33.117>out.

282
00:12:33.705 --> 00:12:35.805
<00:12:33.705>Um, <00:12:33.985>it's <00:12:34.265>double <00:12:34.545>in <00:12:34.825>size <00:12:35.105>to

283
00:12:35.805 --> 00:12:37.685
<00:12:35.805>what <00:12:36.038>there <00:12:36.271>was <00:12:36.505>about <00:12:36.738>20 <00:12:36.971>years <00:12:37.204>ago.

284
00:12:38.105 --> 00:12:39.405
<00:12:38.105>Um, <00:12:38.397>there's <00:12:38.690>all <00:12:38.982>new <00:12:39.275>features.

285
00:12:40.065 --> 00:12:42.245
<00:12:40.065>Rarely <00:12:40.265>something <00:12:40.465>is <00:12:40.665>deprecated <00:12:40.865>or <00:12:41.065>removed <00:12:41.265>from <00:12:41.465>it.

286
00:12:42.435 --> 00:12:47.165
<00:12:42.435>It's <00:12:42.574>all <00:12:42.714>added. <00:12:42.854>And <00:12:42.994>there <00:12:43.135>are <00:12:43.275>just <00:12:43.415>more <00:12:43.555>than <00:12:43.694>one <00:12:43.834>way

287
00:12:47.165 --> 00:12:49.005
<00:12:47.165>to <00:12:47.398>do <00:12:47.631>things <00:12:47.865>in <00:12:48.098>this <00:12:48.331>programming <00:12:48.564>language.

288
00:12:50.875 --> 00:12:52.535
<00:12:50.875>And <00:12:51.075>this <00:12:51.275>is <00:12:51.475>why <00:12:51.675>people <00:12:51.875>hate, <00:12:52.075>hate <00:12:52.275>it.

289
00:12:52.645 --> 00:12:54.575
<00:12:52.645>This <00:12:52.819>is <00:12:52.995>why <00:12:53.170>people <00:12:53.345>are <00:12:53.520>so <00:12:53.694>frustrated <00:12:53.870>with <00:12:54.045>it.

290
00:12:54.845 --> 00:12:56.175
<00:12:54.845>It's <00:12:55.144>a <00:12:55.443>hard <00:12:55.742>programming <00:12:56.041>language.

291
00:12:56.275 --> 00:12:57.695
<00:12:56.275>It <00:12:56.488>requires <00:12:56.701>you <00:12:56.914>to <00:12:57.127>learn <00:12:57.340>a <00:12:57.553>lot

292
00:12:57.695 --> 00:12:59.495
<00:12:57.695>and <00:12:57.870>it <00:12:58.045>requires <00:12:58.220>you <00:12:58.395>to <00:12:58.570>focus <00:12:58.745>on <00:12:58.920>a <00:12:59.095>subset

293
00:12:59.765 --> 00:13:04.135
<00:12:59.765>because <00:12:59.920>it <00:13:00.076>comes <00:13:00.231>with <00:13:00.387>so <00:13:00.542>much <00:13:00.698>technically <00:13:00.853>that <00:13:01.009>legacy <00:13:01.165>code

294
00:13:04.435 --> 00:13:08.095
<00:13:04.435>and <00:13:04.901>also <00:13:05.368>education <00:13:05.834>material

295
00:13:08.365 --> 00:13:10.895
<00:13:08.365>that <00:13:08.598>focuses <00:13:08.831>on <00:13:09.065>all <00:13:09.298>those <00:13:09.531>legacy <00:13:09.765>code.

296
00:13:11.115 --> 00:13:12.335
<00:13:11.115>If <00:13:11.334>you <00:13:11.554>go <00:13:11.773>to <00:13:11.993>Stack <00:13:12.213>Overflow

297
00:13:12.335 --> 00:13:14.975
<00:13:12.335>and <00:13:12.462>find <00:13:12.589>the <00:13:12.716>c <00:13:12.844>plus <00:13:12.971>plus <00:13:13.098>questions, <00:13:13.225>you <00:13:13.353>really <00:13:13.480>need <00:13:13.607>to <00:13:13.735>look

298
00:13:15.715 --> 00:13:16.975
<00:13:15.715>at <00:13:15.904>the <00:13:16.093>time <00:13:16.282>it <00:13:16.471>has <00:13:16.660>been <00:13:16.849>written

299
00:13:18.055 --> 00:13:20.395
<00:13:18.055>to <00:13:18.210>understand <00:13:18.366>if <00:13:18.521>it's <00:13:18.677>a <00:13:18.832>modern <00:13:18.988>solution <00:13:19.143>to <00:13:19.299>the <00:13:19.454>problem.

300
00:13:20.735 --> 00:13:22.155
<00:13:20.735>And <00:13:20.894>for <00:13:21.054>lots <00:13:21.214>of <00:13:21.374>things, <00:13:21.533>you <00:13:21.693>know, <00:13:21.853>if <00:13:22.012>you,

301
00:13:22.155 --> 00:13:25.235
<00:13:22.155>if <00:13:22.310>you <00:13:22.466>advance <00:13:22.621>the <00:13:22.777>programming <00:13:22.932>language, <00:13:23.088>if <00:13:23.243>can't <00:13:23.399>just <00:13:23.555>say,

302
00:13:25.235 --> 00:13:27.825
<00:13:25.235>well, <00:13:25.390>this <00:13:25.546>is <00:13:25.701>how <00:13:25.857>we <00:13:26.012>would <00:13:26.168>do <00:13:26.323>it <00:13:26.479>right <00:13:26.635>now,

303
00:13:28.165 --> 00:13:30.145
<00:13:28.165>the <00:13:28.398>ecosystem <00:13:28.631>has <00:13:28.865>to <00:13:29.098>move <00:13:29.331>with <00:13:29.564>it.

304
00:13:30.485 --> 00:13:32.705
<00:13:30.485>You <00:13:30.718>still <00:13:30.951>end <00:13:31.185>up <00:13:31.418>working <00:13:31.651>with <00:13:31.885>libraries

305
00:13:32.775 --> 00:13:35.105
<00:13:32.775>that <00:13:32.930>have <00:13:33.086>been <00:13:33.241>incepted <00:13:33.397>20 <00:13:33.552>years <00:13:33.708>ago <00:13:33.863>that <00:13:34.019>you <00:13:34.175>need

306
00:13:35.105 --> 00:13:37.385
<00:13:35.105>to <00:13:35.280>use <00:13:35.455>in <00:13:35.630>your <00:13:35.805>programming, <00:13:35.980>uh, <00:13:36.155>in <00:13:36.330>your <00:13:36.505>programs

307
00:13:37.755 --> 00:13:41.695
<00:13:37.755>where <00:13:37.955>you <00:13:38.155>can't <00:13:38.355>use <00:13:38.555>modern <00:13:38.755>programming <00:13:38.955>language <00:13:39.155>features.

308
00:13:42.755 --> 00:13:46.695
<00:13:42.755>And <00:13:42.895>this <00:13:43.035>leads <00:13:43.175>me <00:13:43.314>eventually <00:13:43.455>to <00:13:43.595>the <00:13:43.735>core <00:13:43.875>of <00:13:44.015>today's <00:13:44.155>talk.

309
00:13:46.695 --> 00:13:47.775
<00:13:46.695>Sorry <00:13:46.938>for <00:13:47.181>this <00:13:47.424>long <00:13:47.667>intro,

310
00:13:47.795 --> 00:13:51.845
<00:13:47.795>but <00:13:47.922>I <00:13:48.049>think <00:13:48.176>you <00:13:48.304>need <00:13:48.431>to <00:13:48.558>understand <00:13:48.685>where <00:13:48.813>we <00:13:48.940>are <00:13:49.067>coming <00:13:49.194>from

311
00:13:51.845 --> 00:13:53.325
<00:13:51.845>to <00:13:52.178>understand <00:13:52.511>why <00:13:52.844>it's <00:13:53.177>important

312
00:13:53.345 --> 00:13:55.005
<00:13:53.345>to <00:13:53.578>have <00:13:53.811>those <00:13:54.045>fantastic <00:13:54.278>features <00:13:54.511>in <00:13:54.745>rust

313
00:13:55.005 --> 00:13:56.325
<00:13:55.005>that <00:13:55.203>I'm <00:13:55.401>going <00:13:55.599>to <00:13:55.797>talk <00:13:55.995>about <00:13:56.193>today.

314
00:13:57.065 --> 00:13:58.165
<00:13:57.065>So <00:13:57.312>let's <00:13:57.560>talk <00:13:57.807>about <00:13:58.055>Rust.

315
00:13:58.785 --> 00:14:01.655
<00:13:58.785>Um, <00:13:59.251>I <00:13:59.718>guess <00:14:00.185>lots

316
00:14:01.655 --> 00:14:03.815
<00:14:01.655>of <00:14:01.829>people <00:14:02.005>already <00:14:02.180>talked <00:14:02.355>about <00:14:02.530>rust <00:14:02.704>and <00:14:02.880>memory <00:14:03.055>management.

317
00:14:03.815 --> 00:14:07.455
<00:14:03.815>This <00:14:03.931>is <00:14:04.048>one <00:14:04.165>of <00:14:04.281>the, <00:14:04.398>of <00:14:04.515>the, <00:14:04.631>the <00:14:04.748>key <00:14:04.865>features <00:14:04.981>of <00:14:05.098>Rust <00:14:05.215>that,

318
00:14:07.455 --> 00:14:10.015
<00:14:07.455>that <00:14:07.610>people <00:14:07.766>love <00:14:07.921>and <00:14:08.077>people <00:14:08.232>adore <00:14:08.388>and <00:14:08.543>they <00:14:08.699>understand <00:14:08.855>it.

319
00:14:10.595 --> 00:14:11.935
<00:14:10.595>Um, <00:14:10.836>it <00:14:11.077>really <00:14:11.318>gives <00:14:11.559>you <00:14:11.800>a,

320
00:14:12.135 --> 00:14:14.775
<00:14:12.135>a <00:14:12.335>totally <00:14:12.535>different <00:14:12.735>feeling <00:14:12.935>about <00:14:13.135>how <00:14:13.335>memory <00:14:13.535>works.

321
00:14:15.205 --> 00:14:16.455
<00:14:15.205>Your <00:14:15.486>programs <00:14:15.767>are <00:14:16.048>getting <00:14:16.330>better.

322
00:14:16.455 --> 00:14:18.775
<00:14:16.455>Even <00:14:16.610>your <00:14:16.766>non <00:14:16.921>RAs <00:14:17.077>programs <00:14:17.232>are <00:14:17.388>getting <00:14:17.543>better <00:14:17.699>once <00:14:17.855>you

323
00:14:18.775 --> 00:14:20.415
<00:14:18.775>understand <00:14:19.055>how <00:14:19.334>RA <00:14:19.615>does <00:14:19.895>memory <00:14:20.175>management.

324
00:14:21.035 --> 00:14:25.415
<00:14:21.035>So <00:14:21.268>that's <00:14:21.501>something <00:14:21.735>that <00:14:21.968>is <00:14:22.201>definitely <00:14:22.435>a,

325
00:14:25.495 --> 00:14:27.415
<00:14:25.495>a <00:14:25.670>wonderful <00:14:25.845>feature <00:14:26.020>in <00:14:26.195>Rust <00:14:26.370>that <00:14:26.545>I, <00:14:26.720>I <00:14:26.895>wouldn't,

326
00:14:27.575 --> 00:14:28.935
<00:14:27.575>I <00:14:27.728>wouldn't <00:14:27.881>want <00:14:28.034>to <00:14:28.187>miss, <00:14:28.340>but <00:14:28.492>this <00:14:28.646>is <00:14:28.799>not

327
00:14:28.935 --> 00:14:30.215
<00:14:28.935>what <00:14:29.127>I'm <00:14:29.319>going <00:14:29.511>to <00:14:29.703>focus <00:14:29.895>on <00:14:30.087>today.

328
00:14:30.505 --> 00:14:32.055
<00:14:30.505>Today <00:14:30.737>I <00:14:30.970>want <00:14:31.202>to <00:14:31.435>talk <00:14:31.667>about <00:14:31.900>my

329
00:14:32.695 --> 00:14:34.655
<00:14:32.695>personal <00:14:32.975>favorite <00:14:33.255>feature, <00:14:33.535>which <00:14:33.815>is <00:14:34.095>traits.

330
00:14:35.995 --> 00:14:39.845
<00:14:35.995>Traits, <00:14:36.122>you <00:14:36.249>know, <00:14:36.376>are <00:14:36.504>the <00:14:36.631>heart <00:14:36.758>of <00:14:36.885>the <00:14:37.013>type <00:14:37.140>system <00:14:37.267>in <00:14:37.395>rust.

331
00:14:40.745 --> 00:14:42.885
<00:14:40.745>And <00:14:40.945>they, <00:14:41.145>what <00:14:41.345>you <00:14:41.545>basically <00:14:41.745>do <00:14:41.945>is <00:14:42.145>define

332
00:14:42.885 --> 00:14:44.365
<00:14:42.885>shared <00:14:43.329>behavior <00:14:43.773>between <00:14:44.217>types.

333
00:14:44.825 --> 00:14:47.405
<00:14:44.825>So <00:14:45.025>if <00:14:45.225>you <00:14:45.425>understand <00:14:45.625>interfaces <00:14:45.825>from <00:14:46.025>object <00:14:46.225>oriented

334
00:14:47.405 --> 00:14:48.885
<00:14:47.405>programming <00:14:47.738>languages, <00:14:48.071>yeah, <00:14:48.404>pretty <00:14:48.737>much,

335
00:14:48.885 --> 00:14:49.965
<00:14:48.885>pretty <00:14:49.128>much <00:14:49.371>the <00:14:49.614>same <00:14:49.857>thing.

336
00:14:49.965 --> 00:14:51.845
<00:14:49.965>You <00:14:50.165>can <00:14:50.365>describe <00:14:50.565>what <00:14:50.765>needs <00:14:50.965>to <00:14:51.165>be <00:14:51.365>done

337
00:14:51.865 --> 00:14:54.365
<00:14:51.865>and <00:14:51.981>then <00:14:52.098>well, <00:14:52.215>it <00:14:52.331>would <00:14:52.448>be <00:14:52.565>done <00:14:52.681>and <00:14:52.798>you <00:14:52.915>can <00:14:53.031>abstract <00:14:53.148>all <00:14:53.265>it,

338
00:14:55.615 --> 00:14:58.795
<00:14:55.615>but <00:14:55.755>it's <00:14:55.895>much <00:14:56.035>more <00:14:56.175>powerful <00:14:56.315>in <00:14:56.455>my, <00:14:56.595>in <00:14:56.735>my, <00:14:56.875>um, <00:14:57.015>experience.

339
00:14:59.085 --> 00:15:03.155
<00:14:59.085>There <00:14:59.212>are <00:14:59.339>some <00:14:59.466>details <00:14:59.594>to <00:14:59.721>it <00:14:59.848>which <00:14:59.975>make <00:15:00.103>it, <00:15:00.230>which <00:15:00.357>make <00:15:00.485>it

340
00:15:03.415 --> 00:15:07.195
<00:15:03.415>so <00:15:03.765>useful <00:15:04.115>to <00:15:04.464>an <00:15:04.814>extent,

341
00:15:07.195 --> 00:15:09.155
<00:15:07.195>which <00:15:07.350>I <00:15:07.506>haven't <00:15:07.661>seen <00:15:07.817>in <00:15:07.972>any <00:15:08.128>other <00:15:08.283>programming <00:15:08.439>language <00:15:08.595>yet.

342
00:15:10.575 --> 00:15:12.635
<00:15:10.575>And <00:15:10.730>one <00:15:10.886>thing <00:15:11.041>that <00:15:11.197>I <00:15:11.352>like <00:15:11.508>most <00:15:11.663>about <00:15:11.819>it <00:15:11.975>is

343
00:15:12.865 --> 00:15:15.635
<00:15:12.865>that <00:15:13.065>it's <00:15:13.265>also <00:15:13.465>the <00:15:13.665>same <00:15:13.865>means <00:15:14.065>of <00:15:14.265>abstraction

344
00:15:16.015 --> 00:15:17.115
<00:15:16.015>for <00:15:16.510>language <00:15:17.005>features.

345
00:15:17.695 --> 00:15:19.275
<00:15:17.695>So <00:15:17.975>you <00:15:18.255>can <00:15:18.535>define <00:15:18.815>those <00:15:19.095>traits

346
00:15:19.275 --> 00:15:21.635
<00:15:19.275>and <00:15:19.475>you <00:15:19.675>can <00:15:19.875>implement <00:15:20.074>language <00:15:20.275>features <00:15:20.475>with <00:15:20.675>it,

347
00:15:21.635 --> 00:15:23.755
<00:15:21.635>which <00:15:21.835>also <00:15:22.035>gives <00:15:22.235>you <00:15:22.435>a <00:15:22.635>very <00:15:22.835>nice <00:15:23.035>segue

348
00:15:24.295 --> 00:15:25.875
<00:15:24.295>to <00:15:24.645>introduce <00:15:24.995>new <00:15:25.344>language <00:15:25.694>features.

349
00:15:26.495 --> 00:15:27.915
<00:15:26.495>Um, <00:15:26.708>you <00:15:26.921>can <00:15:27.134>define <00:15:27.347>the <00:15:27.560>trait <00:15:27.772>first.

350
00:15:27.915 --> 00:15:29.075
<00:15:27.915>You <00:15:28.089>can <00:15:28.263>work <00:15:28.437>with <00:15:28.611>the <00:15:28.785>trade <00:15:28.959>first

351
00:15:29.075 --> 00:15:30.955
<00:15:29.075>and <00:15:29.308>suddenly <00:15:29.541>with <00:15:29.775>everything <00:15:30.008>implements <00:15:30.241>the <00:15:30.475>trade,

352
00:15:31.295 --> 00:15:33.675
<00:15:31.295>you <00:15:31.469>can <00:15:31.645>create <00:15:31.819>a <00:15:31.995>language <00:15:32.170>feature <00:15:32.344>out <00:15:32.520>of <00:15:32.694>it.

353
00:15:33.895 --> 00:15:35.475
<00:15:33.895>Let <00:15:34.069>me, <00:15:34.245>let <00:15:34.420>me <00:15:34.595>show <00:15:34.770>you <00:15:34.944>what <00:15:35.120>I <00:15:35.295>mean.

354
00:15:35.975 --> 00:15:38.795
<00:15:35.975>Um, <00:15:36.175>this <00:15:36.375>is, <00:15:36.575>this <00:15:36.775>is <00:15:36.975>my <00:15:37.175>go-to <00:15:37.375>introductory

355
00:15:39.425 --> 00:15:40.635
<00:15:39.425>example, <00:15:39.969>two <00:15:40.514>trades.

356
00:15:40.655 --> 00:15:42.515
<00:15:40.655>So <00:15:40.888>you <00:15:41.121>understand <00:15:41.355>it <00:15:41.588>within <00:15:41.821>one <00:15:42.055>minute.

357
00:15:43.095 --> 00:15:45.115
<00:15:43.095>I'm <00:15:43.250>having <00:15:43.406>here <00:15:43.561>a <00:15:43.717>couple <00:15:43.872>of <00:15:44.028>trucks <00:15:44.183>project <00:15:44.339>the <00:15:44.495>maintenance

358
00:15:45.115 --> 00:15:46.915
<00:15:45.115>hours, <00:15:45.290>and <00:15:45.465>I <00:15:45.640>want <00:15:45.815>to <00:15:45.990>define <00:15:46.165>a <00:15:46.340>trade <00:15:46.515>billable.

359
00:15:47.255 --> 00:15:49.595
<00:15:47.255>The <00:15:47.410>trades <00:15:47.566>billable <00:15:47.721>tells <00:15:47.877>me, <00:15:48.032>well, <00:15:48.188>I <00:15:48.343>can, <00:15:48.499>you <00:15:48.655>know,

360
00:15:49.595 --> 00:15:51.715
<00:15:49.595>charge <00:15:49.770>money <00:15:49.945>for <00:15:50.120>what <00:15:50.295>I've <00:15:50.470>been <00:15:50.645>worked <00:15:50.820>on, <00:15:50.995>fantastic.

361
00:15:52.055 --> 00:15:54.115
<00:15:52.055>And <00:15:52.334>it <00:15:52.614>returns <00:15:52.895>an <00:15:53.175>F <00:15:53.454>42.

362
00:15:54.665 --> 00:15:56.955
<00:15:54.665>Then <00:15:54.865>I <00:15:55.064>can <00:15:55.265>implement <00:15:55.464>billable <00:15:55.665>for <00:15:55.865>maintenance <00:15:56.064>hours,

363
00:15:56.955 --> 00:15:58.475
<00:15:56.955>maintenance <00:15:57.228>hours <00:15:57.502>go <00:15:57.775>by <00:15:58.049>a <00:15:58.323>rate

364
00:15:58.475 --> 00:16:00.835
<00:15:58.475>and <00:15:58.630>by <00:15:58.786>the <00:15:58.941>hours <00:15:59.097>that <00:15:59.252>I <00:15:59.408>worked, <00:15:59.563>uh, <00:15:59.719>worked <00:15:59.875>on.

365
00:16:01.095 --> 00:16:02.995
<00:16:01.095>So <00:16:01.295>I <00:16:01.495>multiply <00:16:01.695>them <00:16:01.895>and <00:16:02.095>return <00:16:02.295>them. <00:16:02.495>Fantastic.

366
00:16:03.155 --> 00:16:06.355
<00:16:03.155>I <00:16:03.310>define <00:16:03.466>the <00:16:03.621>trade, <00:16:03.777>implemented <00:16:03.932>it <00:16:04.088>for <00:16:04.243>my <00:16:04.399>own <00:16:04.555>type,

367
00:16:06.695 --> 00:16:08.435
<00:16:06.695>and <00:16:06.928>now <00:16:07.161>I <00:16:07.395>can <00:16:07.628>use <00:16:07.861>it <00:16:08.095>everywhere.

368
00:16:08.435 --> 00:16:10.475
<00:16:08.435>Billable <00:16:08.635>is <00:16:08.834>needed. <00:16:09.035>I <00:16:09.234>can <00:16:09.435>use <00:16:09.635>maintenance <00:16:09.834>hours

369
00:16:10.735 --> 00:16:12.155
<00:16:10.735>and <00:16:10.948>I <00:16:11.161>can <00:16:11.374>call <00:16:11.587>the <00:16:11.800>bill <00:16:12.012>method.

370
00:16:12.425 --> 00:16:17.355
<00:16:12.425>This <00:16:12.552>is <00:16:12.679>what <00:16:12.806>it's <00:16:12.934>about. <00:16:13.061>But <00:16:13.188>I <00:16:13.315>can <00:16:13.443>also <00:16:13.570>implement <00:16:13.697>my <00:16:13.824>defined

371
00:16:17.365 --> 00:16:19.755
<00:16:17.365>trade <00:16:17.598>for <00:16:17.831>types <00:16:18.065>that <00:16:18.298>I <00:16:18.531>don't <00:16:18.765>own

372
00:16:19.755 --> 00:16:21.075
<00:16:19.755>or <00:16:19.992>that <00:16:20.230>I <00:16:20.467>don't <00:16:20.705>have <00:16:20.943>defined.

373
00:16:21.215 --> 00:16:25.075
<00:16:21.215>So <00:16:21.415>this <00:16:21.615>is <00:16:21.815>F <00:16:22.015>42 <00:16:22.215>32, <00:16:22.415>F <00:16:22.615>32,

374
00:16:25.835 --> 00:16:29.875
<00:16:25.835>I <00:16:25.962>implement <00:16:26.089>my <00:16:26.216>billable <00:16:26.344>trade <00:16:26.471>for <00:16:26.598>this <00:16:26.725>type <00:16:26.853>that <00:16:26.980>is <00:16:27.107>in <00:16:27.235>rust.

375
00:16:30.575 --> 00:16:34.195
<00:16:30.575>And <00:16:30.715>I <00:16:30.855>just <00:16:30.995>say, <00:16:31.135>well <00:16:31.275>return <00:16:31.415>yourself, <00:16:31.555>um, <00:16:31.695>UNF <00:16:31.835>32 <00:16:31.975>already.

376
00:16:35.465 --> 00:16:37.675
<00:16:35.465>Just <00:16:35.605>take <00:16:35.745>it. <00:16:35.885>You <00:16:36.025>are <00:16:36.165>now <00:16:36.305>something <00:16:36.445>that <00:16:36.585>I <00:16:36.725>can <00:16:36.865>build.

377
00:16:38.545 --> 00:16:41.165
<00:16:38.545>Um, <00:16:38.778>and <00:16:39.011>this <00:16:39.245>is <00:16:39.478>very <00:16:39.711>simplified <00:16:39.944>here,

378
00:16:41.265 --> 00:16:42.885
<00:16:41.265>but <00:16:41.615>it's <00:16:41.965>also <00:16:42.314>incredibly <00:16:42.665>powerful

379
00:16:42.885 --> 00:16:46.125
<00:16:42.885>because <00:16:43.025>it <00:16:43.165>leads <00:16:43.305>us, <00:16:43.444>for <00:16:43.585>example, <00:16:43.725>to <00:16:43.865>create <00:16:44.005>like <00:16:44.145>IT <00:16:44.285>tools.

380
00:16:46.225 --> 00:16:50.485
<00:16:46.225>One <00:16:46.380>of <00:16:46.536>my <00:16:46.691>most <00:16:46.847>favorite <00:16:47.002>traits, <00:16:47.158>um, <00:16:47.313>iterators <00:16:47.469>design <00:16:47.625>pattern

381
00:16:50.485 --> 00:16:54.085
<00:16:50.485>that <00:16:50.592>is, <00:16:50.700>I <00:16:50.808>dunno, <00:16:50.915>20, <00:16:51.023>25 <00:16:51.131>years <00:16:51.238>old <00:16:51.346>now, <00:16:51.454>30 <00:16:51.561>years <00:16:51.669>old <00:16:51.777>by <00:16:51.885>now,

382
00:16:54.625 --> 00:16:57.885
<00:16:54.625>uh, <00:16:54.780>which <00:16:54.936>has <00:16:55.091>found <00:16:55.247>its <00:16:55.402>way <00:16:55.558>into <00:16:55.713>the <00:16:55.869>programming <00:16:56.025>language,

383
00:16:58.585 --> 00:17:01.165
<00:16:58.585>um, <00:16:58.865>is <00:16:59.145>a <00:16:59.425>trade <00:16:59.705>in <00:16:59.985>rust.

384
00:17:01.865 --> 00:17:06.775
<00:17:01.865>Um, <00:17:01.992>you <00:17:02.119>need <00:17:02.246>an <00:17:02.374>iterator <00:17:02.501>to <00:17:02.628>create <00:17:02.755>a <00:17:02.883>for <00:17:03.010>loop, <00:17:03.137>for <00:17:03.265>example,

385
00:17:06.915 --> 00:17:08.735
<00:17:06.915>but <00:17:07.115>you <00:17:07.315>also <00:17:07.514>have <00:17:07.714>methods <00:17:07.915>then <00:17:08.115>on <00:17:08.315>your

386
00:17:08.855 --> 00:17:09.975
<00:17:08.855>structures <00:17:09.191>that <00:17:09.527>implement <00:17:09.862>iterator.

387
00:17:11.235 --> 00:17:12.655
<00:17:11.234>And <00:17:11.490>the <00:17:11.746>iterator <00:17:12.001>comes, <00:17:12.257>you <00:17:12.512>know,

388
00:17:12.655 --> 00:17:14.455
<00:17:12.655>with <00:17:12.810>the <00:17:12.966>next <00:17:13.121>method <00:17:13.277>where <00:17:13.432>you <00:17:13.588>get <00:17:13.743>the <00:17:13.899>next <00:17:14.055>item.

389
00:17:14.515 --> 00:17:17.855
<00:17:14.515>And <00:17:14.655>on <00:17:14.795>top <00:17:14.935>of <00:17:15.075>this <00:17:15.215>method, <00:17:15.355>you <00:17:15.495>have <00:17:15.635>70 <00:17:15.775>more <00:17:15.915>methods

390
00:17:18.045 --> 00:17:19.815
<00:17:18.045>that <00:17:18.245>make <00:17:18.445>it <00:17:18.645>easier <00:17:18.845>to <00:17:19.045>work <00:17:19.245>with <00:17:19.445>collections

391
00:17:19.815 --> 00:17:22.095
<00:17:19.815>and <00:17:19.970>to <00:17:20.126>work <00:17:20.281>with <00:17:20.437>anything <00:17:20.592>that <00:17:20.748>has <00:17:20.903>an <00:17:21.059>iterator <00:17:21.215>implemented.

392
00:17:23.435 --> 00:17:24.775
<00:17:23.435>But <00:17:23.736>sometimes <00:17:24.038>it's <00:17:24.339>not <00:17:24.641>enough.

393
00:17:25.045 --> 00:17:28.215
<00:17:25.045>This <00:17:25.185>is <00:17:25.325>why <00:17:25.465>there's <00:17:25.605>a, <00:17:25.745>a <00:17:25.885>create <00:17:26.025>called <00:17:26.165>it <00:17:26.305>the <00:17:26.445>tools,

394
00:17:28.295 --> 00:17:29.415
<00:17:28.295>a <00:17:28.496>library <00:17:28.698>called <00:17:28.899>it <00:17:29.101>the <00:17:29.303>tools

395
00:17:29.565 --> 00:17:34.215
<00:17:29.565>that <00:17:29.765>implements <00:17:29.965>115 <00:17:30.165>more <00:17:30.365>methods <00:17:30.565>for <00:17:30.765>every <00:17:30.965>iterator

396
00:17:34.215 --> 00:17:35.295
<00:17:34.215>that <00:17:34.701>already <00:17:35.187>exists.

397
00:17:35.315 --> 00:17:37.895
<00:17:35.315>So <00:17:35.490>somebody <00:17:35.665>said, <00:17:35.840>if <00:17:36.015>you're <00:17:36.190>in <00:17:36.365>pen <00:17:36.540>an <00:17:36.715>iterator,

398
00:17:38.055 --> 00:17:39.415
<00:17:38.055>I <00:17:38.299>can <00:17:38.544>give <00:17:38.789>you <00:17:39.034>more <00:17:39.279>methods

399
00:17:39.795 --> 00:17:43.015
<00:17:39.795>and <00:17:39.950>all <00:17:40.106>you <00:17:40.261>need <00:17:40.417>to <00:17:40.572>do <00:17:40.728>is <00:17:40.883>input <00:17:41.039>this, <00:17:41.195>create

400
00:17:43.075 --> 00:17:44.895
<00:17:43.075>or <00:17:43.275>input <00:17:43.475>the <00:17:43.675>one <00:17:43.875>method <00:17:44.075>that <00:17:44.275>you <00:17:44.475>want

401
00:17:45.115 --> 00:17:46.135
<00:17:45.115>and <00:17:45.298>you <00:17:45.482>are <00:17:45.665>done <00:17:45.849>with <00:17:46.033>it.

402
00:17:46.315 --> 00:17:47.455
<00:17:46.315>How <00:17:46.657>fantastic <00:17:46.999>is <00:17:47.341>this?

403
00:17:47.675 --> 00:17:50.805
<00:17:47.675>So <00:17:47.815>this <00:17:47.955>is <00:17:48.095>something <00:17:48.235>that <00:17:48.375>makes <00:17:48.514>my <00:17:48.655>life <00:17:48.794>so <00:17:48.935>much <00:17:49.075>easier

404
00:17:51.155 --> 00:17:54.655
<00:17:51.155>because <00:17:51.435>I'm <00:17:51.715>having <00:17:51.995>quick <00:17:52.274>optimized <00:17:52.555>methods

405
00:17:54.765 --> 00:17:57.255
<00:17:54.765>that <00:17:54.905>I <00:17:55.045>just <00:17:55.185>can <00:17:55.325>add <00:17:55.465>on <00:17:55.605>everything <00:17:55.745>that <00:17:55.885>I <00:17:56.025>have <00:17:56.165>defined.

406
00:17:57.415 --> 00:17:58.415
<00:17:57.415>I <00:17:57.715>can <00:17:58.014>define <00:17:58.315>something

407
00:17:58.415 --> 00:18:00.415
<00:17:58.415>and <00:17:58.695>by <00:17:58.975>working <00:17:59.254>with <00:17:59.534>those <00:17:59.815>traits

408
00:18:00.525 --> 00:18:01.975
<00:18:00.525>that <00:18:00.786>come <00:18:01.047>from <00:18:01.308>the <00:18:01.569>standard <00:18:01.830>library,

409
00:18:02.955 --> 00:18:04.335
<00:18:02.955>my <00:18:03.265>software <00:18:03.576>can <00:18:03.886>be <00:18:04.197>extended

410
00:18:04.435 --> 00:18:07.735
<00:18:04.435>by <00:18:04.715>somebody <00:18:04.995>else <00:18:05.274>without <00:18:05.554>any <00:18:05.835>interference.

411
00:18:09.105 --> 00:18:10.475
<00:18:09.105>This <00:18:09.516>is <00:18:09.927>so <00:18:10.338>powerful.

412
00:18:10.775 --> 00:18:12.635
<00:18:10.775>Um, <00:18:10.930>I'm <00:18:11.086>going <00:18:11.241>to <00:18:11.397>show <00:18:11.552>you <00:18:11.708>a <00:18:11.863>couple <00:18:12.019>of <00:18:12.175>examples,

413
00:18:13.095 --> 00:18:14.395
<00:18:13.095>um, <00:18:13.329>in <00:18:13.563>a <00:18:13.797>couple <00:18:14.031>of <00:18:14.264>seconds.

414
00:18:15.775 --> 00:18:17.545
<00:18:15.775>Also, <00:18:15.975>what <00:18:16.175>we <00:18:16.375>can <00:18:16.575>extend <00:18:16.775>is <00:18:16.975>language <00:18:17.175>features.

415
00:18:17.885 --> 00:18:20.225
<00:18:17.885>So <00:18:18.025>this <00:18:18.165>is <00:18:18.305>actually <00:18:18.445>the <00:18:18.585>one <00:18:18.725>thing <00:18:18.865>that <00:18:19.004>that, <00:18:19.145>you <00:18:19.285>know,

416
00:18:20.225 --> 00:18:21.745
<00:18:20.225>made <00:18:20.420>it <00:18:20.615>click <00:18:20.811>for <00:18:21.006>me <00:18:21.202>to <00:18:21.397>understand, <00:18:21.592>oh,

417
00:18:21.765 --> 00:18:23.505
<00:18:21.765>I'm <00:18:21.940>having <00:18:22.115>here <00:18:22.290>plus <00:18:22.465>sign, <00:18:22.640>but <00:18:22.815>I <00:18:22.990>can <00:18:23.165>define

418
00:18:23.505 --> 00:18:24.585
<00:18:23.505>how <00:18:23.748>this <00:18:23.991>plus <00:18:24.234>sign <00:18:24.477>works.

419
00:18:25.525 --> 00:18:29.065
<00:18:25.525>Um, <00:18:25.680>I'm <00:18:25.836>having <00:18:25.991>here <00:18:26.147>clock, <00:18:26.302>um, <00:18:26.458>the <00:18:26.613>clock <00:18:26.769>stores <00:18:26.925>hours

420
00:18:29.085 --> 00:18:31.665
<00:18:29.085>and <00:18:29.240>minutes <00:18:29.396>in <00:18:29.551>U <00:18:29.707>32, <00:18:29.862>I <00:18:30.018>create <00:18:30.173>the <00:18:30.329>new <00:18:30.485>clock

421
00:18:31.665 --> 00:18:33.065
<00:18:31.665>and <00:18:31.917>I'm <00:18:32.169>having <00:18:32.421>here <00:18:32.673>normalized <00:18:32.925>function.

422
00:18:33.065 --> 00:18:37.185
<00:18:33.065>If <00:18:33.192>I'm <00:18:33.319>going <00:18:33.446>above <00:18:33.574>24 <00:18:33.701>hours, <00:18:33.828>then <00:18:33.955>I <00:18:34.083>start <00:18:34.210>at <00:18:34.337>zero <00:18:34.465>again.

423
00:18:37.185 --> 00:18:39.225
<00:18:37.185>If <00:18:37.360>I <00:18:37.534>go <00:18:37.710>below, <00:18:37.885>you <00:18:38.060>know, <00:18:38.235>you <00:18:38.409>calculate <00:18:38.585>just

424
00:18:39.445 --> 00:18:40.585
<00:18:39.445>to <00:18:39.701>have <00:18:39.958>a <00:18:40.214>proper <00:18:40.471>time.

425
00:18:40.925 --> 00:18:43.105
<00:18:40.925>Um, <00:18:41.100>also <00:18:41.274>with <00:18:41.450>minutes, <00:18:41.625>if <00:18:41.800>they <00:18:41.975>are <00:18:42.149>beyond <00:18:42.325>60,

426
00:18:43.405 --> 00:18:45.425
<00:18:43.405>you're <00:18:43.580>just <00:18:43.754>at <00:18:43.930>one <00:18:44.105>hour <00:18:44.280>and <00:18:44.455>take <00:18:44.629>the <00:18:44.805>rest

427
00:18:45.485 --> 00:18:47.305
<00:18:45.485>and <00:18:45.685>put <00:18:45.885>the <00:18:46.084>rest, <00:18:46.284>uh, <00:18:46.485>to <00:18:46.685>the <00:18:46.885>minutes

428
00:18:47.305 --> 00:18:48.345
<00:18:47.305>or <00:18:47.461>add <00:18:47.617>the <00:18:47.773>rest <00:18:47.929>to <00:18:48.085>the <00:18:48.241>minutes.

429
00:18:48.605 --> 00:18:50.185
<00:18:48.605>Um, <00:18:49.071>it's <00:18:49.538>pretty <00:18:50.005>simple.

430
00:18:50.215 --> 00:18:52.505
<00:18:50.215>It's <00:18:50.448>actually <00:18:50.681>not, <00:18:50.915>um, <00:18:51.148>not <00:18:51.381>that <00:18:51.615>tough.

431
00:18:52.505 --> 00:18:55.825
<00:18:52.505>And <00:18:52.680>I'm <00:18:52.855>having <00:18:53.030>here <00:18:53.205>this <00:18:53.380>add <00:18:53.555>minutes, <00:18:53.730>um, <00:18:53.905>method

432
00:18:55.825 --> 00:18:58.305
<00:18:55.825>where <00:18:55.932>I <00:18:56.040>say, <00:18:56.148>okay, <00:18:56.255>if, <00:18:56.363>if <00:18:56.471>I <00:18:56.578>want <00:18:56.686>to <00:18:56.794>add <00:18:56.901>more <00:18:57.009>minutes <00:18:57.117>to <00:18:57.225>it,

433
00:18:58.775 --> 00:19:00.985
<00:18:58.775>then <00:18:58.930>well <00:18:59.086>create <00:18:59.241>a <00:18:59.397>new <00:18:59.552>clock <00:18:59.708>with <00:18:59.863>the <00:19:00.019>new <00:19:00.175>hours

434
00:19:00.985 --> 00:19:02.665
<00:19:00.985>with <00:19:01.264>more <00:19:01.544>minutes, <00:19:01.824>it'll <00:19:02.104>be <00:19:02.385>normalized.

435
00:19:02.765 --> 00:19:04.305
<00:19:02.765>And <00:19:02.963>I'm <00:19:03.161>having <00:19:03.359>here <00:19:03.557>at <00:19:03.755>the <00:19:03.953>new <00:19:04.151>time,

436
00:19:04.865 --> 00:19:07.425
<00:19:04.865>probably <00:19:05.040>not <00:19:05.215>the <00:19:05.390>best <00:19:05.565>implementation, <00:19:05.740>but <00:19:05.915>it <00:19:06.090>doesn't <00:19:06.265>matter.

437
00:19:07.455 --> 00:19:09.785
<00:19:07.455>It's <00:19:07.688>just <00:19:07.921>moving <00:19:08.155>register <00:19:08.388>around. <00:19:08.621>It's <00:19:08.855>easy.

438
00:19:09.935 --> 00:19:11.345
<00:19:09.935>It's, <00:19:10.358>it's <00:19:10.781>okay. <00:19:11.204>It's,

439
00:19:11.345 --> 00:19:13.145
<00:19:11.345>it's <00:19:11.500>an <00:19:11.656>okay <00:19:11.811>abstraction <00:19:11.967>for <00:19:12.122>what <00:19:12.278>I <00:19:12.433>want <00:19:12.589>to <00:19:12.745>do.

440
00:19:14.225 --> 00:19:15.665
<00:19:14.225>I <00:19:14.440>just <00:19:14.657>don't <00:19:14.873>like <00:19:15.089>the <00:19:15.304>minutes <00:19:15.521>method.

441
00:19:15.925 --> 00:19:17.265
<00:19:15.925>Um, <00:19:16.166>I, <00:19:16.407>I <00:19:16.648>think <00:19:16.889>it's <00:19:17.131>cumbersome.

442
00:19:17.345 --> 00:19:19.305
<00:19:17.345>I <00:19:17.545>want <00:19:17.745>to <00:19:17.945>add <00:19:18.145>clocks <00:19:18.345>with <00:19:18.545>each <00:19:18.745>other.

443
00:19:19.385 --> 00:19:20.585
<00:19:19.385>I <00:19:19.565>want <00:19:19.745>to <00:19:19.925>time <00:19:20.105>with <00:19:20.285>each <00:19:20.465>other.

444
00:19:21.645 --> 00:19:24.865
<00:19:21.645>So <00:19:22.111>I <00:19:22.578>take, <00:19:23.045>sorry,

445
00:19:25.265 --> 00:19:29.755
<00:19:25.265>I <00:19:25.381>take <00:19:25.498>the <00:19:25.615>a <00:19:25.731>trade, <00:19:25.848>uh, <00:19:25.965>the <00:19:26.081>a <00:19:26.198>trade <00:19:26.315>from <00:19:26.431>standard <00:19:26.548>ops, <00:19:26.665>uh,

446
00:19:29.785 --> 00:19:31.715
<00:19:29.785>with <00:19:30.065>a <00:19:30.345>default <00:19:30.625>generic <00:19:30.905>type <00:19:31.185>parameter.

447
00:19:31.755 --> 00:19:34.275
<00:19:31.755>I <00:19:31.930>say <00:19:32.105>I <00:19:32.280>want <00:19:32.455>to <00:19:32.630>implement <00:19:32.805>add <00:19:32.980>four <00:19:33.155>o'clock.

448
00:19:35.055 --> 00:19:36.355
<00:19:35.055>And <00:19:35.250>if <00:19:35.445>I'm <00:19:35.640>doing <00:19:35.835>it <00:19:36.030>like <00:19:36.225>that,

449
00:19:37.805 --> 00:19:40.255
<00:19:37.805>this <00:19:38.038>self <00:19:38.271>parameter <00:19:38.505>here <00:19:38.738>is <00:19:38.971>also <00:19:39.205>clock.

450
00:19:40.835 --> 00:19:45.335
<00:19:40.835>So <00:19:41.068>I <00:19:41.301>can <00:19:41.535>implement <00:19:41.768>an <00:19:42.001>addition <00:19:42.235>for

451
00:19:46.705 --> 00:19:49.195
<00:19:46.705>the <00:19:46.985>same <00:19:47.264>type, <00:19:47.544>the <00:19:47.824>output <00:19:48.105>scope

452
00:19:49.195 --> 00:19:51.955
<00:19:49.195>and <00:19:49.322>everything <00:19:49.449>that <00:19:49.576>do <00:19:49.704>is <00:19:49.831>I <00:19:49.958>take <00:19:50.085>the <00:19:50.213>clock <00:19:50.340>that <00:19:50.467>comes <00:19:50.595>in

453
00:19:52.625 --> 00:19:55.925
<00:19:52.625>that <00:19:52.905>myself <00:19:53.185>and <00:19:53.465>take <00:19:53.745>the <00:19:54.025>hours

454
00:19:55.945 --> 00:19:57.405
<00:19:55.945>and <00:19:56.164>minutes <00:19:56.383>from <00:19:56.601>the <00:19:56.821>right <00:19:57.040>hand <00:19:57.259>side.

455
00:19:57.405 --> 00:19:59.445
<00:19:57.405>This <00:19:57.685>is <00:19:57.965>what <00:19:58.245>RHS <00:19:58.524>stands <00:19:58.805>for,

456
00:20:00.325 --> 00:20:01.805
<00:20:00.325>creating <00:20:00.515>on <00:20:00.705>the <00:20:00.895>clock, <00:20:01.086>having <00:20:01.276>a <00:20:01.466>new <00:20:01.657>output.

457
00:20:01.865 --> 00:20:05.765
<00:20:01.865>And <00:20:01.981>that's <00:20:02.098>about <00:20:02.215>it. <00:20:02.331>But <00:20:02.448>what <00:20:02.565>I <00:20:02.681>can <00:20:02.798>also <00:20:02.915>do <00:20:03.031>is <00:20:03.148>say, <00:20:03.265>well,

458
00:20:05.965 --> 00:20:09.725
<00:20:05.965>I <00:20:06.081>want <00:20:06.198>to <00:20:06.314>add <00:20:06.431>minutes <00:20:06.548>to <00:20:06.665>it, <00:20:06.781>which <00:20:06.898>are <00:20:07.014>represented <00:20:07.131>in <00:20:07.248>U <00:20:07.365>32.

459
00:20:09.945 --> 00:20:12.805
<00:20:09.945>So <00:20:10.072>I <00:20:10.199>say <00:20:10.326>well <00:20:10.454>implement <00:20:10.581>standard <00:20:10.708>ops <00:20:10.835>at <00:20:10.963>U <00:20:11.090>32 <00:20:11.217>for <00:20:11.345>o'clock.

460
00:20:13.105 --> 00:20:14.325
<00:20:13.105>The <00:20:13.379>output <00:20:13.654>is <00:20:13.928>again <00:20:14.203>clocked.

461
00:20:14.325 --> 00:20:16.645
<00:20:14.325>So <00:20:14.452>the <00:20:14.579>moment <00:20:14.706>I <00:20:14.834>add <00:20:14.961>a <00:20:15.088>clo <00:20:15.215>add <00:20:15.343>minutes <00:20:15.470>to <00:20:15.597>o <00:20:15.725>clock,

462
00:20:16.725 --> 00:20:18.965
<00:20:16.725>I <00:20:16.852>still <00:20:16.979>want <00:20:17.106>to <00:20:17.234>have <00:20:17.361>a <00:20:17.488>clock <00:20:17.615>and <00:20:17.743>call <00:20:17.870>the <00:20:17.997>self <00:20:18.125>add

463
00:20:18.965 --> 00:20:20.895
<00:20:18.965>minutes <00:20:20.365>method.

464
00:20:21.195 --> 00:20:24.215
<00:20:21.195>And <00:20:21.322>with <00:20:21.449>that <00:20:21.576>I <00:20:21.704>can <00:20:21.831>create <00:20:21.958>new <00:20:22.085>clocks <00:20:22.213>and <00:20:22.340>minutes <00:20:22.467>to <00:20:22.595>it

465
00:20:24.215 --> 00:20:27.655
<00:20:24.215>or <00:20:24.370>add <00:20:24.526>another <00:20:24.681>clocks <00:20:24.837>to <00:20:24.992>it <00:20:25.148>using <00:20:25.303>the <00:20:25.459>plus <00:20:25.615>operator.

466
00:20:28.045 --> 00:20:30.495
<00:20:28.045>Fantastic. <00:20:29.445>Um,

467
00:20:30.685 --> 00:20:33.095
<00:20:30.685>what <00:20:30.840>I <00:20:30.996>also <00:20:31.151>did <00:20:31.307>here <00:20:31.462>is <00:20:31.618>implementing <00:20:31.773>the <00:20:31.929>display <00:20:32.085>trade.

468
00:20:33.435 --> 00:20:36.095
<00:20:33.435>The <00:20:33.610>display <00:20:33.784>trade <00:20:33.960>tells <00:20:34.135>rust <00:20:34.310>that <00:20:34.485>this <00:20:34.659>is <00:20:34.835>compatible,

469
00:20:36.115 --> 00:20:38.535
<00:20:36.115>for <00:20:36.315>example, <00:20:36.515>with, <00:20:36.715>uh, <00:20:36.915>the <00:20:37.115>print <00:20:37.315>line <00:20:37.515>macro.

470
00:20:38.595 --> 00:20:39.815
<00:20:38.595>So <00:20:38.814>you <00:20:39.034>can <00:20:39.253>have <00:20:39.473>some <00:20:39.693>output,

471
00:20:40.115 --> 00:20:41.575
<00:20:40.115>you <00:20:40.377>can <00:20:40.640>have <00:20:40.903>some <00:20:41.166>display <00:20:41.429>output.

472
00:20:41.915 --> 00:20:44.535
<00:20:41.915>You <00:20:42.148>also <00:20:42.381>implement <00:20:42.615>a <00:20:42.848>two <00:20:43.081>string <00:20:43.315>method

473
00:20:45.115 --> 00:20:47.325
<00:20:45.115>or <00:20:45.315>the <00:20:45.515>two <00:20:45.715>stringing <00:20:45.915>create <00:20:46.115>just <00:20:46.315>with <00:20:46.515>it

474
00:20:47.325 --> 00:20:49.445
<00:20:47.325>because <00:20:47.500>you <00:20:47.675>know, <00:20:47.850>if <00:20:48.025>you're <00:20:48.200>creating <00:20:48.375>a <00:20:48.550>string <00:20:48.725>representation

475
00:20:49.475 --> 00:20:51.805
<00:20:49.475>with <00:20:49.675>display, <00:20:49.875>why <00:20:50.074>not <00:20:50.274>having <00:20:50.475>a <00:20:50.675>string <00:20:50.875>representation

476
00:20:51.855 --> 00:20:53.445
<00:20:51.855>where <00:20:52.135>you <00:20:52.415>get <00:20:52.695>an <00:20:52.975>actual <00:20:53.255>string.

477
00:20:53.505 --> 00:20:54.805
<00:20:53.505>So <00:20:53.797>this <00:20:54.090>comes <00:20:54.382>for <00:20:54.675>free.

478
00:20:55.145 --> 00:20:57.045
<00:20:55.145>All <00:20:55.320>you <00:20:55.495>need <00:20:55.670>to <00:20:55.845>do <00:20:56.020>is <00:20:56.195>implement <00:20:56.370>this <00:20:56.545>little

479
00:20:57.045 --> 00:20:58.445
<00:20:57.045>trait <00:20:57.297>and <00:20:57.549>you're <00:20:57.801>done <00:20:58.053>with <00:20:58.304>it.

480
00:20:58.555 --> 00:21:02.405
<00:20:58.555>Fantastic. <00:20:59.021>And <00:20:59.488>this <00:20:59.955>is

481
00:21:02.405 --> 00:21:03.805
<00:21:02.405>how <00:21:02.657>we <00:21:02.909>integrate <00:21:03.161>with <00:21:03.413>language <00:21:03.665>features.

482
00:21:03.825 --> 00:21:08.685
<00:21:03.825>So <00:21:03.980>we <00:21:04.136>can <00:21:04.291>define, <00:21:04.447>um, <00:21:04.602>it <00:21:04.758>for <00:21:04.913>multiple <00:21:05.069>types, <00:21:05.225>either

483
00:21:08.825 --> 00:21:12.925
<00:21:08.825>for, <00:21:08.952>you <00:21:09.079>know, <00:21:09.206>itself <00:21:09.334>or <00:21:09.461>for <00:21:09.588>a <00:21:09.715>concrete <00:21:09.843>type <00:21:09.970>for <00:21:10.097>U <00:21:10.225>32

484
00:21:12.925 --> 00:21:15.885
<00:21:12.925>or <00:21:13.100>what, <00:21:13.274>what <00:21:13.450>anything <00:21:13.625>else <00:21:13.800>that <00:21:13.975>I <00:21:14.149>want, <00:21:14.325>um,

485
00:21:16.265 --> 00:21:20.095
<00:21:16.265>and <00:21:16.965>make <00:21:17.665>language

486
00:21:20.115 --> 00:21:21.295
<00:21:20.115>syntax <00:21:20.469>compatible <00:21:20.823>with <00:21:21.177>it.

487
00:21:22.035 --> 00:21:23.815
<00:21:22.035>Um, <00:21:22.210>there's <00:21:22.385>another <00:21:22.560>example, <00:21:22.735>which <00:21:22.910>is <00:21:23.085>a <00:21:23.260>little <00:21:23.435>bit,

488
00:21:23.815 --> 00:21:25.935
<00:21:23.815>you <00:21:23.990>know, <00:21:24.165>on <00:21:24.340>the <00:21:24.515>nose, <00:21:24.690>but, <00:21:24.865>but <00:21:25.040>it's <00:21:25.215>fun.

489
00:21:26.475 --> 00:21:27.695
<00:21:26.475>Um, <00:21:26.749>which <00:21:27.024>is <00:21:27.298>this <00:21:27.572>one?

490
00:21:28.195 --> 00:21:31.055
<00:21:28.195>Um, <00:21:28.335>here <00:21:28.475>I'm <00:21:28.615>having <00:21:28.754>two <00:21:28.895>STRs <00:21:29.034>see <00:21:29.175>out <00:21:29.314>an <00:21:29.455>end <00:21:29.595>line

491
00:21:31.055 --> 00:21:35.335
<00:21:31.055>and <00:21:31.230>I'm <00:21:31.405>implementing <00:21:31.580>something <00:21:31.755>that <00:21:31.930>is <00:21:32.105>called <00:21:32.280>SHL <00:21:32.455>for,

492
00:21:35.435 --> 00:21:37.615
<00:21:35.435>you <00:21:35.635>know, <00:21:35.835>going <00:21:36.034>into <00:21:36.235>detail <00:21:36.435>what <00:21:36.635>that <00:21:36.835>means

493
00:21:37.635 --> 00:21:39.295
<00:21:37.635>for <00:21:37.868>this <00:21:38.101>type <00:21:38.335>and <00:21:38.568>for <00:21:38.801>this <00:21:39.035>type.

494
00:21:39.875 --> 00:21:41.215
<00:21:39.875>Oh, <00:21:40.116>what's <00:21:40.357>that <00:21:40.598>supposed <00:21:40.839>to <00:21:41.081>do?

495
00:21:41.755 --> 00:21:44.175
<00:21:41.755>Um, <00:21:41.955>well <00:21:42.155>if <00:21:42.355>I <00:21:42.555>use <00:21:42.755>it, <00:21:42.955>you <00:21:43.155>might,

496
00:21:44.595 --> 00:21:46.615
<00:21:44.595>you <00:21:44.875>might <00:21:45.155>realize <00:21:45.435>what <00:21:45.715>it <00:21:45.995>does.

497
00:21:47.045 --> 00:21:50.855
<00:21:47.045>It's <00:21:47.278>basically <00:21:47.511>C <00:21:47.745>streams <00:21:47.978>re-implemented <00:21:48.211>in <00:21:48.445>rust.

498
00:21:51.155 --> 00:21:55.895
<00:21:51.155>So <00:21:51.295>I've, <00:21:51.435>I've <00:21:51.575>used <00:21:51.715>the <00:21:51.855>shift <00:21:51.995>left, <00:21:52.135>um, <00:21:52.274>operator <00:21:52.415>that's <00:21:52.555>SHL

499
00:21:57.355 --> 00:21:59.775
<00:21:57.355>and <00:21:57.555>implemented <00:21:57.755>it <00:21:57.955>for <00:21:58.155>an <00:21:58.355>anti <00:21:58.555>SR <00:21:58.755>cout.

500
00:22:00.115 --> 00:22:01.735
<00:22:00.115>Um, <00:22:00.348>and <00:22:00.581>I <00:22:00.815>said <00:22:01.048>that <00:22:01.281>for <00:22:01.515>everything

501
00:22:01.735 --> 00:22:05.495
<00:22:01.735>that <00:22:01.935>implements <00:22:02.135>the <00:22:02.334>display <00:22:02.534>rate, <00:22:02.735>this <00:22:02.935>here <00:22:03.135>implement

502
00:22:06.285 --> 00:22:07.435
<00:22:06.285>shift <00:22:06.543>left <00:22:06.802>for <00:22:07.061>C <00:22:07.320>out.

503
00:22:07.435 --> 00:22:09.675
<00:22:07.435>So <00:22:07.590>everything <00:22:07.746>that <00:22:07.901>can <00:22:08.057>be <00:22:08.212>printed <00:22:08.368>that <00:22:08.523>can <00:22:08.679>be <00:22:08.835>printed

504
00:22:09.675 --> 00:22:14.115
<00:22:09.675>with <00:22:09.791>print <00:22:09.908>land <00:22:10.024>or <00:22:10.141>print <00:22:10.258>can <00:22:10.375>now <00:22:10.491>be <00:22:10.608>used <00:22:10.725>with <00:22:10.841>this <00:22:10.958>C <00:22:11.075>srt.

505
00:22:14.295 --> 00:22:16.585
<00:22:14.295>And <00:22:14.495>all <00:22:14.695>it <00:22:14.895>does <00:22:15.095>is <00:22:15.295>print <00:22:15.495>it <00:22:15.695>out

506
00:22:16.765 --> 00:22:19.745
<00:22:16.765>and <00:22:16.920>return <00:22:17.076>it, <00:22:17.231>return <00:22:17.387>itself <00:22:17.542>against, <00:22:17.698>you <00:22:17.853>can, <00:22:18.009>you <00:22:18.165>know,

507
00:22:19.745 --> 00:22:21.625
<00:22:19.745>chain <00:22:20.094>those <00:22:20.445>shift <00:22:20.794>left <00:22:21.145>course.

508
00:22:22.245 --> 00:22:24.145
<00:22:22.245>And <00:22:22.478>then <00:22:22.711>I <00:22:22.945>implement <00:22:23.178>a <00:22:23.411>concrete <00:22:23.645>one.

509
00:22:24.145 --> 00:22:25.465
<00:22:24.145>So <00:22:24.382>this <00:22:24.620>is <00:22:24.857>a <00:22:25.095>generic <00:22:25.332>one.

510
00:22:25.805 --> 00:22:28.865
<00:22:25.805>Um, <00:22:26.038>generic <00:22:26.271>trade <00:22:26.505>implementation <00:22:26.738>for <00:22:26.971>shift <00:22:27.205>left

511
00:22:28.885 --> 00:22:31.905
<00:22:28.885>for <00:22:29.025>this <00:22:29.165>one <00:22:29.305>struct <00:22:29.445>and <00:22:29.585>here <00:22:29.725>implement <00:22:29.865>a <00:22:30.004>very <00:22:30.145>concrete <00:22:30.285>one,

512
00:22:31.945 --> 00:22:33.545
<00:22:31.945>a <00:22:32.225>specialized <00:22:32.504>one <00:22:32.784>where <00:22:33.064>I <00:22:33.345>say,

513
00:22:34.355 --> 00:22:37.055
<00:22:34.355>and <00:22:34.555>now <00:22:34.755>for <00:22:34.955>the <00:22:35.155>end <00:22:35.355>line <00:22:35.555>struct <00:22:35.755>here,

514
00:22:37.085 --> 00:22:39.555
<00:22:37.085>just <00:22:37.551>print <00:22:38.018>slash <00:22:38.485>end.

515
00:22:39.555 --> 00:22:44.315
<00:22:39.555>And <00:22:39.695>since <00:22:39.835>the <00:22:39.975>trade <00:22:40.115>needs <00:22:40.255>to <00:22:40.395>have <00:22:40.535>some <00:22:40.675>output, <00:22:40.815>uh, <00:22:40.955>in

516
00:22:44.315 --> 00:22:46.795
<00:22:44.315>that <00:22:44.442>case <00:22:44.569>it's <00:22:44.696>both, <00:22:44.824>it's <00:22:44.951>both <00:22:45.078>the <00:22:45.205>out, <00:22:45.333>I <00:22:45.460>think <00:22:45.587>you <00:22:45.715>can

517
00:22:47.475 --> 00:22:50.095
<00:22:47.475>change <00:22:47.649>it <00:22:47.824>that <00:22:48.000>this <00:22:48.175>will <00:22:48.350>return <00:22:48.524>the <00:22:48.699>empty <00:22:48.875>type

518
00:22:50.295 --> 00:22:52.865
<00:22:50.295>whenever, <00:22:50.450>then <00:22:50.606>you <00:22:50.761>get <00:22:50.917>rid <00:22:51.072>of <00:22:51.228>a <00:22:51.383>couple <00:22:51.539>of <00:22:51.695>warnings

519
00:22:52.865 --> 00:22:54.745
<00:22:52.865>because <00:22:53.215>it's <00:22:53.565>cool, <00:22:53.915>isn't <00:22:54.265>it?

520
00:22:54.745 --> 00:22:56.825
<00:22:54.745>It's <00:22:54.919>fantastic. <00:22:55.094>You <00:22:55.270>can <00:22:55.445>influence <00:22:55.620>c <00:22:55.794>plus <00:22:55.969>plus <00:22:56.145>language

521
00:22:57.105 --> 00:22:58.705
<00:22:57.105>features <00:22:57.385>by <00:22:57.665>using <00:22:57.945>the <00:22:58.225>same <00:22:58.505>trades

522
00:22:58.705 --> 00:23:00.665
<00:22:58.705>and <00:22:58.905>abstracting <00:22:59.105>over <00:22:59.304>a <00:22:59.504>couple <00:22:59.705>of <00:22:59.905>other <00:23:00.105>traits.

523
00:23:01.045 --> 00:23:04.065
<00:23:01.045>How <00:23:01.200>fantastic <00:23:01.356>is <00:23:01.511>that? <00:23:01.667>Um, <00:23:01.822>but <00:23:01.978>no, <00:23:02.133>don't <00:23:02.289>do <00:23:02.445>that.

524
00:23:04.675 --> 00:23:06.425
<00:23:04.675>Don't <00:23:05.024>do <00:23:05.375>that. <00:23:05.725>It's, <00:23:06.075>it,

525
00:23:06.425 --> 00:23:07.985
<00:23:06.425>it <00:23:06.658>gives <00:23:06.891>you <00:23:07.125>warning <00:23:07.358>for <00:23:07.591>good <00:23:07.825>reason.

526
00:23:08.485 --> 00:23:10.625
<00:23:08.485>Um, <00:23:08.718>it's <00:23:08.951>bogus. <00:23:09.185>Um, <00:23:09.418>but <00:23:09.651>it's <00:23:09.885>fun.

527
00:23:10.845 --> 00:23:12.785
<00:23:10.845>Um, <00:23:10.972>and <00:23:11.099>you <00:23:11.226>chose <00:23:11.354>the <00:23:11.481>power, <00:23:11.608>you <00:23:11.735>know, <00:23:11.863>it <00:23:11.990>shows <00:23:12.117>the <00:23:12.245>power

528
00:23:12.785 --> 00:23:15.745
<00:23:12.785>that <00:23:12.960>you <00:23:13.135>know, <00:23:13.310>everything <00:23:13.485>that <00:23:13.660>can <00:23:13.835>be <00:23:14.010>printed, <00:23:14.185>everything

529
00:23:15.745 --> 00:23:19.705
<00:23:15.745>that <00:23:15.885>can <00:23:16.024>be <00:23:16.165>displayed <00:23:16.304>on <00:23:16.445>the <00:23:16.584>command <00:23:16.725>line <00:23:16.864>is <00:23:17.004>then <00:23:17.145>compatible

530
00:23:19.855 --> 00:23:21.785
<00:23:19.855>with <00:23:20.088>those <00:23:20.321>drugs <00:23:20.555>that <00:23:20.788>I <00:23:21.021>introduced <00:23:21.255>here

531
00:23:21.785 --> 00:23:23.785
<00:23:21.785>because <00:23:22.018>for <00:23:22.251>whatever <00:23:22.485>reason, <00:23:22.718>I <00:23:22.951>still <00:23:23.185>want

532
00:23:23.785 --> 00:23:26.105
<00:23:23.785>to <00:23:23.940>use <00:23:24.096>some <00:23:24.251>c <00:23:24.407>plus <00:23:24.562>plus <00:23:24.718>stuff <00:23:24.873>in <00:23:25.029>my <00:23:25.185>code.

533
00:23:27.665 --> 00:23:32.295
<00:23:27.665>Alrighty. <00:23:27.840>Um, <00:23:28.014>I've <00:23:28.190>talked <00:23:28.365>about <00:23:28.540>that <00:23:28.715>we <00:23:28.889>can <00:23:29.065>implement

534
00:23:33.245 --> 00:23:35.905
<00:23:33.245>traits <00:23:33.400>from <00:23:33.556>the <00:23:33.711>standard <00:23:33.867>library <00:23:34.022>for <00:23:34.178>types <00:23:34.333>that <00:23:34.489>we <00:23:34.645>create.

535
00:23:36.745 --> 00:23:41.345
<00:23:36.745>I <00:23:36.872>spoke <00:23:36.999>about <00:23:37.126>that <00:23:37.254>we <00:23:37.381>can <00:23:37.508>in <00:23:37.635>define <00:23:37.763>our <00:23:37.890>traits <00:23:38.017>for, <00:23:38.145>um,

536
00:23:41.405 --> 00:23:43.305
<00:23:41.405>and <00:23:41.605>implemented <00:23:41.805>for <00:23:42.004>types <00:23:42.205>that <00:23:42.405>we <00:23:42.605>don't <00:23:42.805>own.

537
00:23:43.605 --> 00:23:47.325
<00:23:43.605>Um, <00:23:43.805>there <00:23:44.005>is, <00:23:44.205>um, <00:23:44.405>this, <00:23:44.605>this <00:23:44.805>might <00:23:45.005>lead

538
00:23:47.385 --> 00:23:48.725
<00:23:47.385>to <00:23:47.988>two <00:23:48.591>clashes.

539
00:23:48.725 --> 00:23:51.445
<00:23:48.725>This <00:23:48.880>is <00:23:49.036>why <00:23:49.191>there <00:23:49.347>are <00:23:49.502>coherence <00:23:49.658>rule <00:23:49.813>orphan <00:23:49.969>rules <00:23:50.125>attached

540
00:23:51.445 --> 00:23:53.485
<00:23:51.445>to <00:23:51.600>it <00:23:51.756>that <00:23:51.911>tell <00:23:52.067>you <00:23:52.222>what <00:23:52.378>you <00:23:52.533>can <00:23:52.689>actually <00:23:52.845>do.

541
00:23:53.985 --> 00:23:55.165
<00:23:53.985>You <00:23:54.339>can <00:23:54.693>define <00:23:55.047>traits

542
00:23:55.165 --> 00:23:57.125
<00:23:55.165>and <00:23:55.398>implement <00:23:55.631>your <00:23:55.865>traits <00:23:56.098>for <00:23:56.331>your <00:23:56.565>types.

543
00:23:57.125 --> 00:23:58.605
<00:23:57.125>This <00:23:57.347>is <00:23:57.569>easy. <00:23:57.791>You <00:23:58.013>create <00:23:58.235>an <00:23:58.457>interface

544
00:23:58.605 --> 00:24:00.325
<00:23:58.605>and <00:23:58.805>then <00:23:59.005>you <00:23:59.205>implement <00:23:59.405>it <00:23:59.605>on <00:23:59.805>your <00:24:00.005>structure.

545
00:24:01.785 --> 00:24:04.925
<00:24:01.785>Um, <00:24:01.985>you <00:24:02.185>can <00:24:02.385>also <00:24:02.585>take <00:24:02.785>foreign <00:24:02.985>traits, <00:24:03.185>traits

546
00:24:04.925 --> 00:24:06.165
<00:24:04.925>that <00:24:05.204>come <00:24:05.483>from <00:24:05.762>libraries, <00:24:06.041>traits

547
00:24:06.165 --> 00:24:07.245
<00:24:06.165>that <00:24:06.359>come <00:24:06.553>from <00:24:06.748>the <00:24:06.942>standard <00:24:07.137>library

548
00:24:07.265 --> 00:24:08.845
<00:24:07.265>and <00:24:07.545>implement <00:24:07.825>it <00:24:08.105>for <00:24:08.385>your <00:24:08.665>types.

549
00:24:09.075 --> 00:24:11.685
<00:24:09.075>Cool <00:24:09.275>with <00:24:09.475>that. <00:24:09.675>You <00:24:09.875>make <00:24:10.075>your <00:24:10.275>types <00:24:10.475>compatible

550
00:24:12.635 --> 00:24:14.395
<00:24:12.635>with <00:24:13.335>other <00:24:14.035>libraries.

551
00:24:14.905 --> 00:24:17.115
<00:24:14.905>Fantastic. <00:24:15.185>And <00:24:15.465>you <00:24:15.745>can <00:24:16.024>also <00:24:16.305>implement

552
00:24:17.115 --> 00:24:18.395
<00:24:17.115>your <00:24:17.403>traits <00:24:17.691>for <00:24:17.979>foreign <00:24:18.267>types.

553
00:24:18.395 --> 00:24:19.795
<00:24:18.395>This <00:24:18.605>is <00:24:18.815>how <00:24:19.025>you <00:24:19.235>make <00:24:19.445>other <00:24:19.655>libraries

554
00:24:19.795 --> 00:24:21.035
<00:24:19.795>compatible <00:24:20.167>with <00:24:20.539>your <00:24:20.911>code.

555
00:24:21.775 --> 00:24:23.795
<00:24:21.775>But <00:24:21.950>what <00:24:22.125>you <00:24:22.300>can't <00:24:22.475>do <00:24:22.650>is <00:24:22.825>implement <00:24:23.000>foreign <00:24:23.175>trades

556
00:24:23.795 --> 00:24:25.635
<00:24:23.795>for <00:24:23.995>foreign <00:24:24.195>types <00:24:24.395>because <00:24:24.595>they <00:24:24.795>might <00:24:24.995>have <00:24:25.195>different,

557
00:24:26.195 --> 00:24:28.115
<00:24:26.195>a <00:24:26.395>different <00:24:26.595>opinion <00:24:26.794>on <00:24:26.995>what's, <00:24:27.195>what's <00:24:27.395>going <00:24:27.595>on.

558
00:24:28.115 --> 00:24:29.315
<00:24:28.115>There <00:24:28.295>are <00:24:28.475>ways <00:24:28.655>to <00:24:28.835>work <00:24:29.015>around <00:24:29.195>it

559
00:24:29.315 --> 00:24:30.875
<00:24:29.315>and <00:24:29.455>we <00:24:29.595>are <00:24:29.735>going <00:24:29.875>to <00:24:30.015>see <00:24:30.155>it <00:24:30.295>in <00:24:30.435>just <00:24:30.575>a <00:24:30.715>second.

560
00:24:31.175 --> 00:24:34.195
<00:24:31.175>But <00:24:31.350>those <00:24:31.524>are <00:24:31.700>the <00:24:31.875>rules. <00:24:32.050>Implement <00:24:32.225>trades, <00:24:32.399>implement <00:24:32.575>types.

561
00:24:34.495 --> 00:24:36.315
<00:24:34.495>You <00:24:34.728>need <00:24:34.961>to <00:24:35.195>own <00:24:35.428>something, <00:24:35.661>something <00:24:35.895>needs

562
00:24:36.315 --> 00:24:39.435
<00:24:36.315>to <00:24:36.455>be <00:24:36.595>in <00:24:36.735>your <00:24:36.875>possession <00:24:37.015>so <00:24:37.155>you <00:24:37.295>can <00:24:37.435>implement <00:24:37.575>it <00:24:37.715>then

563
00:24:39.815 --> 00:24:41.675
<00:24:39.815>for <00:24:40.165>other <00:24:40.515>types <00:24:40.865>as <00:24:41.215>well.

564
00:24:42.895 --> 00:24:46.395
<00:24:42.895>Um, <00:24:43.095>what <00:24:43.295>traits <00:24:43.495>also <00:24:43.695>enable <00:24:43.895>us <00:24:44.095>to <00:24:44.295>do,

565
00:24:46.395 --> 00:24:48.435
<00:24:46.395>which <00:24:46.570>is <00:24:46.745>also <00:24:46.920>something <00:24:47.095>that <00:24:47.270>I <00:24:47.445>really, <00:24:47.620>really <00:24:47.795>like,

566
00:24:48.775 --> 00:24:50.435
<00:24:48.775>is <00:24:49.241>composition <00:24:49.708>over <00:24:50.175>inheritance.

567
00:24:50.435 --> 00:24:53.435
<00:24:50.435>This <00:24:50.575>is <00:24:50.715>one <00:24:50.855>of <00:24:50.995>those <00:24:51.135>design <00:24:51.274>paradigms <00:24:51.415>that <00:24:51.554>you <00:24:51.695>hear <00:24:51.835>for,

568
00:24:53.735 --> 00:24:54.795
<00:24:53.735>for <00:24:53.973>take <00:24:54.212>now <00:24:54.450>as <00:24:54.689>well.

569
00:24:54.815 --> 00:24:56.515
<00:24:54.815>People <00:24:55.095>don't <00:24:55.375>like <00:24:55.655>to <00:24:55.935>extend <00:24:56.215>classes.

570
00:24:56.825 --> 00:24:59.795
<00:24:56.825>It's, <00:24:57.025>it's, <00:24:57.225>it's <00:24:57.425>the <00:24:57.625>source <00:24:57.825>of <00:24:58.025>all <00:24:58.225>evil.

571
00:25:00.295 --> 00:25:03.195
<00:25:00.295>Having <00:25:00.528>class <00:25:00.761>hierarchies, <00:25:00.995>having <00:25:01.228>complex <00:25:01.461>class <00:25:01.695>hierarchies

572
00:25:03.785 --> 00:25:08.415
<00:25:03.785>just <00:25:04.018>leads <00:25:04.251>to, <00:25:04.485>to <00:25:04.718>not <00:25:04.951>understandable <00:25:05.185>code.

573
00:25:08.505 --> 00:25:10.695
<00:25:08.505>Sorry, <00:25:08.660>this <00:25:08.816>is, <00:25:08.971>this <00:25:09.127>is <00:25:09.282>one <00:25:09.438>of <00:25:09.593>the <00:25:09.749>boldest <00:25:09.905>statements

574
00:25:10.695 --> 00:25:13.295
<00:25:10.695>that <00:25:10.822>I, <00:25:10.949>that <00:25:11.076>I <00:25:11.204>did <00:25:11.331>here <00:25:11.458>and <00:25:11.585>I <00:25:11.713>didn't <00:25:11.840>even <00:25:11.967>say <00:25:12.095>s**t.

575
00:25:13.425 --> 00:25:15.215
<00:25:13.425>Sorry, <00:25:13.774>swearing <00:25:14.125>number <00:25:14.475>three. <00:25:14.825>Three.

576
00:25:15.755 --> 00:25:18.985
<00:25:15.755>Um, <00:25:15.910>but <00:25:16.066>what <00:25:16.221>do <00:25:16.377>we <00:25:16.532>mean <00:25:16.688>with <00:25:16.843>traits <00:25:16.999>Enable <00:25:17.155>proper

577
00:25:18.985 --> 00:25:20.145
<00:25:18.985>composition <00:25:19.506>of <00:25:20.029>inheritance.

578
00:25:20.605 --> 00:25:21.665
<00:25:20.605>Um, <00:25:20.843>look <00:25:21.081>at <00:25:21.320>this <00:25:21.559>example.

579
00:25:21.885 --> 00:25:24.185
<00:25:21.885>I'm, <00:25:22.060>I <00:25:22.235>grabbed <00:25:22.410>this <00:25:22.585>example <00:25:22.760>from <00:25:22.935>from <00:25:23.110>Tim <00:25:23.285>McNamara

580
00:25:24.205 --> 00:25:25.665
<00:25:24.205>who <00:25:24.392>does <00:25:24.580>a <00:25:24.768>lot <00:25:24.955>of <00:25:25.143>examples <00:25:25.331>like <00:25:25.519>that.

581
00:25:26.205 --> 00:25:28.145
<00:25:26.205>Um, <00:25:26.485>and <00:25:26.764>it <00:25:27.044>illustrates <00:25:27.324>this <00:25:27.605>composition

582
00:25:28.165 --> 00:25:30.145
<00:25:28.165>of <00:25:28.445>inheritance <00:25:28.725>example, <00:25:29.004>so, <00:25:29.284>so <00:25:29.565>well,

583
00:25:30.405 --> 00:25:32.745
<00:25:30.405>and <00:25:30.605>having <00:25:30.805>here <00:25:31.004>a <00:25:31.205>couple <00:25:31.405>of <00:25:31.605>UL <00:25:31.805>strings

584
00:25:32.745 --> 00:25:35.705
<00:25:32.745>and <00:25:32.900>I <00:25:33.056>want <00:25:33.211>to <00:25:33.367>sort <00:25:33.522>them, <00:25:33.678>but <00:25:33.833>not <00:25:33.989>by <00:25:34.145>alphabet.

585
00:25:35.735 --> 00:25:37.745
<00:25:35.735>This <00:25:35.935>is <00:25:36.135>what <00:25:36.334>the <00:25:36.534>default <00:25:36.735>behavior <00:25:36.935>would <00:25:37.135>be,

586
00:25:38.285 --> 00:25:40.945
<00:25:38.285>but <00:25:38.485>rather, <00:25:38.685>um, <00:25:38.885>uh, <00:25:39.085>by <00:25:39.285>the <00:25:39.485>length <00:25:39.685>of,

587
00:25:41.645 --> 00:25:45.545
<00:25:41.645>so <00:25:41.772>if <00:25:41.899>I'm <00:25:42.026>using <00:25:42.154>a <00:25:42.281>binary <00:25:42.408>he <00:25:42.535>to <00:25:42.663>sort <00:25:42.790>it, <00:25:42.917>um, <00:25:43.045>um,

588
00:25:46.185 --> 00:25:47.305
<00:25:46.185>I <00:25:46.521>I <00:25:46.857>create <00:25:47.193>neurals.

589
00:25:47.385 --> 00:25:49.185
<00:25:47.385>I <00:25:47.618>push <00:25:47.851>it <00:25:48.085>into <00:25:48.318>this <00:25:48.551>binary <00:25:48.785>heap

590
00:25:49.725 --> 00:25:50.865
<00:25:49.725>and <00:25:49.930>when <00:25:50.135>I <00:25:50.340>pop <00:25:50.545>them <00:25:50.751>out,

591
00:25:50.865 --> 00:25:54.005
<00:25:50.865>they <00:25:51.065>are <00:25:51.265>being <00:25:51.465>sorted <00:25:51.665>based <00:25:51.865>on <00:25:52.065>the <00:25:52.265>alphabet.

592
00:25:54.305 --> 00:25:58.285
<00:25:54.305>So <00:25:54.432>it <00:25:54.559>would <00:25:54.686>be <00:25:54.814>fat <00:25:54.941>block <00:25:55.068>of <00:25:55.195>a <00:25:55.323>GitHub <00:25:55.450>about <00:25:55.577>www <00:25:55.705>youtube.com.

593
00:25:59.185 --> 00:26:02.725
<00:25:59.185>Um, <00:25:59.360>that <00:25:59.534>the <00:25:59.710>binary <00:25:59.885>heap <00:26:00.060>can <00:26:00.235>sort <00:26:00.409>it <00:26:00.585>like

594
00:26:02.725 --> 00:26:07.085
<00:26:02.725>that <00:26:04.125>is.

595
00:26:07.585 --> 00:26:10.525
<00:26:07.585>So <00:26:07.712>the <00:26:07.839>reason <00:26:07.966>the <00:26:08.094>binary <00:26:08.221>heap <00:26:08.348>can <00:26:08.475>sort <00:26:08.603>it <00:26:08.730>like <00:26:08.857>that <00:26:08.985>is

596
00:26:10.525 --> 00:26:14.565
<00:26:10.525>because <00:26:10.875>URL <00:26:11.225>implements <00:26:11.575>equality <00:26:11.925>operators

597
00:26:14.665 --> 00:26:17.805
<00:26:14.665>and <00:26:14.945>ordering <00:26:15.225>operators, <00:26:15.504>but <00:26:15.784>equality <00:26:16.065>traits

598
00:26:17.925 --> 00:26:18.925
<00:26:17.925>and <00:26:18.375>ordering <00:26:18.825>traits.

599
00:26:19.385 --> 00:26:21.525
<00:26:19.385>So <00:26:19.560>what <00:26:19.735>we <00:26:19.910>need <00:26:20.085>to <00:26:20.260>define <00:26:20.435>is <00:26:20.610>something <00:26:20.785>new

600
00:26:21.525 --> 00:26:23.045
<00:26:21.525>that <00:26:21.867>works <00:26:22.209>under <00:26:22.551>different <00:26:22.893>rules.

601
00:26:23.345 --> 00:26:24.685
<00:26:23.345>Not <00:26:23.646>ordering <00:26:23.948>them <00:26:24.249>by <00:26:24.551>alphabet,

602
00:26:24.825 --> 00:26:29.085
<00:26:24.825>but <00:26:24.952>rather <00:26:25.079>ordering <00:26:25.206>them <00:26:25.334>by <00:26:25.461>the <00:26:25.588>length <00:26:25.715>of <00:26:25.843>the <00:26:25.970>rule <00:26:26.097>to <00:26:26.225>do.

603
00:26:29.105 --> 00:26:33.125
<00:26:29.105>So <00:26:29.245>I <00:26:29.385>introduce <00:26:29.525>a <00:26:29.665>new <00:26:29.805>strt. <00:26:29.945>The <00:26:30.085>STRT <00:26:30.225>is <00:26:30.365>called <00:26:30.505>shortest.

604
00:26:33.125 --> 00:26:34.525
<00:26:33.125>First, <00:26:33.440>it <00:26:33.755>takes <00:26:34.070>one <00:26:34.385>parameter,

605
00:26:34.695 --> 00:26:36.685
<00:26:34.695>which <00:26:34.895>is <00:26:35.095>a <00:26:35.294>rule <00:26:35.495>I <00:26:35.695>derive <00:26:35.895>a <00:26:36.095>couple

606
00:26:36.685 --> 00:26:38.725
<00:26:36.685>of <00:26:36.860>default <00:26:37.034>traits <00:26:37.210>from <00:26:37.385>you, <00:26:37.560>partially <00:26:37.735>equal <00:26:37.909>and <00:26:38.085>equal.

607
00:26:38.785 --> 00:26:40.805
<00:26:38.785>And <00:26:38.960>also <00:26:39.135>something <00:26:39.310>to, <00:26:39.485>to <00:26:39.660>just <00:26:39.835>put <00:26:40.010>it <00:26:40.185>out.

608
00:26:41.545 --> 00:26:43.765
<00:26:41.545>Um, <00:26:41.720>and <00:26:41.895>then <00:26:42.070>I <00:26:42.245>work <00:26:42.420>on <00:26:42.595>the <00:26:42.770>comparison <00:26:42.945>piece.

609
00:26:43.925 --> 00:26:45.445
<00:26:43.925>I <00:26:44.153>need <00:26:44.380>to <00:26:44.609>implement <00:26:44.837>partial <00:26:45.065>load <00:26:45.293>and

610
00:26:45.545 --> 00:26:48.045
<00:26:45.545>or <00:26:45.700>to <00:26:45.856>say, <00:26:46.011>well, <00:26:46.167>I <00:26:46.322>want <00:26:46.478>to <00:26:46.633>compare <00:26:46.789>those <00:26:46.945>two,

611
00:26:48.505 --> 00:26:49.885
<00:26:48.505>how <00:26:48.815>can <00:26:49.126>I <00:26:49.436>compare <00:26:49.747>them?

612
00:26:50.065 --> 00:26:51.845
<00:26:50.065>And <00:26:50.298>here <00:26:50.531>I <00:26:50.765>take <00:26:50.998>the <00:26:51.231>left <00:26:51.465>one

613
00:26:51.845 --> 00:26:54.205
<00:26:51.845>and <00:26:51.985>the <00:26:52.125>other <00:26:52.265>one, <00:26:52.405>those <00:26:52.545>two <00:26:52.685>that <00:26:52.825>I, <00:26:52.965>that <00:26:53.105>I <00:26:53.245>want

614
00:26:54.205 --> 00:26:56.285
<00:26:54.205>to <00:26:54.485>compare <00:26:54.764>myself <00:26:55.044>and <00:26:55.324>something <00:26:55.605>else.

615
00:26:57.125 --> 00:26:59.125
<00:26:57.125>I <00:26:57.358>extract <00:26:57.591>the <00:26:57.825>length <00:26:58.058>of <00:26:58.291>the <00:26:58.525>string

616
00:26:59.125 --> 00:27:01.885
<00:26:59.125>and <00:26:59.325>I <00:26:59.525>compare <00:26:59.725>the <00:26:59.925>length <00:27:00.125>with <00:27:00.325>each <00:27:00.525>other,

617
00:27:01.885 --> 00:27:03.845
<00:27:01.885>which <00:27:02.165>also <00:27:02.445>now <00:27:02.725>implement <00:27:03.004>or <00:27:03.285>impartial.

618
00:27:04.465 --> 00:27:07.485
<00:27:04.465>So <00:27:04.620>with <00:27:04.776>that, <00:27:04.931>I'm <00:27:05.087>now <00:27:05.242>able <00:27:05.398>to <00:27:05.553>use, <00:27:05.709>um, <00:27:05.865>uh,

619
00:27:07.485 --> 00:27:09.445
<00:27:07.485>the <00:27:07.764>equality <00:27:08.044>operator <00:27:08.324>I'm <00:27:08.604>using, <00:27:08.885>uh,

620
00:27:09.445 --> 00:27:11.285
<00:27:09.445>less <00:27:09.645>than <00:27:09.845>greater <00:27:10.044>than <00:27:10.245>I <00:27:10.445>can <00:27:10.645>use <00:27:10.845>all

621
00:27:11.285 --> 00:27:14.085
<00:27:11.285>that <00:27:11.460>I <00:27:11.635>can <00:27:11.810>understand <00:27:11.985>which <00:27:12.160>one <00:27:12.335>should <00:27:12.510>be <00:27:12.685>ordered

622
00:27:14.225 --> 00:27:15.525
<00:27:14.225>before <00:27:14.615>the <00:27:15.005>other <00:27:15.395>one.

623
00:27:16.985 --> 00:27:20.485
<00:27:16.985>Um, <00:27:17.159>what <00:27:17.334>I <00:27:17.510>did <00:27:17.685>here <00:27:17.860>was <00:27:18.034>creating <00:27:18.209>a <00:27:18.385>new,

624
00:27:20.885 --> 00:27:23.085
<00:27:20.885>where <00:27:21.060>I <00:27:21.235>can <00:27:21.410>compose <00:27:21.585>the <00:27:21.760>old <00:27:21.935>STR <00:27:22.110>with <00:27:22.285>it.

625
00:27:23.475 --> 00:27:25.365
<00:27:23.475>This <00:27:23.754>is <00:27:24.034>composition. <00:27:24.314>I <00:27:24.594>take <00:27:24.875>something.

626
00:27:26.145 --> 00:27:28.325
<00:27:26.145>Um, <00:27:26.425>and <00:27:26.705>instead <00:27:26.985>of <00:27:27.264>extending <00:27:27.545>it

627
00:27:28.345 --> 00:27:31.765
<00:27:28.345>and <00:27:28.578>overriding <00:27:28.811>functionality <00:27:29.045>that <00:27:29.278>there <00:27:29.511>already <00:27:29.745>was,

628
00:27:31.765 --> 00:27:33.605
<00:27:31.765>because <00:27:31.940>this <00:27:32.115>is <00:27:32.290>what <00:27:32.465>you <00:27:32.640>do <00:27:32.815>with <00:27:32.990>class <00:27:33.165>hierarchies,

629
00:27:34.365 --> 00:27:36.765
<00:27:34.365>I <00:27:34.520>just <00:27:34.676>create <00:27:34.831>an <00:27:34.987>entirely <00:27:35.142>new <00:27:35.298>type <00:27:35.453>that <00:27:35.609>can <00:27:35.765>work

630
00:27:36.955 --> 00:27:41.555
<00:27:36.955>with <00:27:37.129>the <00:27:37.304>type <00:27:37.480>underneath <00:27:37.655>I <00:27:37.830>compose <00:27:38.004>instead <00:27:38.179>of <00:27:38.355>inheriting.

631
00:27:41.895 --> 00:27:46.155
<00:27:41.895>But <00:27:42.095>to <00:27:42.295>still <00:27:42.495>produce <00:27:42.695>the <00:27:42.895>same <00:27:43.095>functionality, <00:27:43.295>like

632
00:27:46.155 --> 00:27:48.555
<00:27:46.155>before <00:27:46.435>I <00:27:46.715>implement <00:27:46.995>traits <00:27:47.274>on <00:27:47.555>top

633
00:27:48.555 --> 00:27:49.715
<00:27:48.555>of <00:27:48.763>it, <00:27:48.972>that <00:27:49.181>should <00:27:49.390>be <00:27:49.599>there.

634
00:27:50.215 --> 00:27:51.555
<00:27:50.215>And <00:27:50.456>with <00:27:50.697>that, <00:27:50.938>I <00:27:51.179>have <00:27:51.421>absolute

635
00:27:51.555 --> 00:27:52.955
<00:27:51.555>control <00:27:51.807>what <00:27:52.059>these <00:27:52.311>types <00:27:52.562>should <00:27:52.815>do.

636
00:27:52.955 --> 00:27:56.435
<00:27:52.955>There's <00:27:53.110>not <00:27:53.266>just <00:27:53.421>one <00:27:53.577>dangling <00:27:53.732>method <00:27:53.888>that <00:27:54.043>is <00:27:54.199>in <00:27:54.355>URL

637
00:27:56.545 --> 00:27:58.155
<00:27:56.545>that <00:27:56.895>doesn't <00:27:57.245>make <00:27:57.595>any <00:27:57.945>sense.

638
00:27:58.295 --> 00:28:01.875
<00:27:58.295>In, <00:27:58.422>in, <00:27:58.549>in, <00:27:58.676>um, <00:27:58.804>in <00:27:58.931>the <00:27:59.058>composed <00:27:59.185>value <00:27:59.313>that <00:27:59.440>I <00:27:59.567>can <00:27:59.695>use

639
00:28:01.875 --> 00:28:04.725
<00:28:01.875>because <00:28:02.575>I <00:28:03.275>removed.

640
00:28:05.315 --> 00:28:08.285
<00:28:05.315>Well, <00:28:05.548>I, <00:28:05.781>I <00:28:06.015>encapsulated <00:28:06.248>all <00:28:06.481>of <00:28:06.715>that

641
00:28:08.585 --> 00:28:10.165
<00:28:08.585>by <00:28:08.865>having <00:28:09.145>an <00:28:09.425>entirely <00:28:09.705>new <00:28:09.985>type.

642
00:28:10.755 --> 00:28:13.125
<00:28:10.755>This <00:28:10.988>type <00:28:11.221>now <00:28:11.455>works <00:28:11.688>exclusively <00:28:11.921>on <00:28:12.155>als,

643
00:28:13.705 --> 00:28:16.365
<00:28:13.705>but <00:28:13.821>I <00:28:13.938>can <00:28:14.054>also <00:28:14.171>make <00:28:14.288>it <00:28:14.405>over <00:28:14.521>generic <00:28:14.638>where <00:28:14.754>I <00:28:14.871>say, <00:28:14.988>well, <00:28:15.105>um,

644
00:28:16.605 --> 00:28:21.015
<00:28:16.605>shortest <00:28:16.780>first <00:28:16.955>for <00:28:17.130>something <00:28:17.305>that <00:28:17.480>can <00:28:17.655>produce <00:28:17.830>a <00:28:18.005>length.

645
00:28:21.135 --> 00:28:22.855
<00:28:21.135>I <00:28:21.290>don't <00:28:21.446>know <00:28:21.601>what <00:28:21.757>what <00:28:21.912>that <00:28:22.068>would <00:28:22.223>be <00:28:22.379>for <00:28:22.535>something

646
00:28:22.855 --> 00:28:24.535
<00:28:22.855>that <00:28:23.205>has <00:28:23.555>a <00:28:23.905>string <00:28:24.255>implemented

647
00:28:24.535 --> 00:28:27.335
<00:28:24.535>because <00:28:24.690>I <00:28:24.846>want <00:28:25.001>to <00:28:25.157>do, <00:28:25.312>I <00:28:25.468>want <00:28:25.623>to <00:28:25.779>do, <00:28:25.935>uh,

648
00:28:27.395 --> 00:28:29.175
<00:28:27.395>the <00:28:27.675>length <00:28:27.955>over <00:28:28.235>the <00:28:28.514>string <00:28:28.795>representation.

649
00:28:29.635 --> 00:28:32.135
<00:28:29.635>So <00:28:29.775>this <00:28:29.915>might <00:28:30.055>be <00:28:30.195>something <00:28:30.335>where <00:28:30.475>I <00:28:30.615>can <00:28:30.754>have <00:28:30.895>this <00:28:31.035>drug.

650
00:28:32.135 --> 00:28:35.375
<00:28:32.135>Then <00:28:32.335>generic <00:28:32.535>over <00:28:32.735>lots <00:28:32.935>of <00:28:33.135>different <00:28:33.335>types, <00:28:33.535>composition

651
00:28:35.375 --> 00:28:39.665
<00:28:35.375>of <00:28:35.725>inheritance, <00:28:36.075>you <00:28:36.425>compose <00:28:36.775>types

652
00:28:39.765 --> 00:28:43.585
<00:28:39.765>and <00:28:39.940>then <00:28:40.115>you <00:28:40.290>define <00:28:40.465>explicitly <00:28:40.640>what <00:28:40.815>they <00:28:40.990>should <00:28:41.165>do.

653
00:28:44.135 --> 00:28:47.185
<00:28:44.135>There's <00:28:44.335>in, <00:28:44.535>to <00:28:44.735>me, <00:28:44.935>this <00:28:45.135>is <00:28:45.335>incredibly <00:28:45.535>important

654
00:28:47.185 --> 00:28:49.145
<00:28:47.185>because <00:28:47.360>this <00:28:47.534>is <00:28:47.710>where <00:28:47.885>all <00:28:48.060>the <00:28:48.235>problems <00:28:48.409>come <00:28:48.585>from.

655
00:28:49.145 --> 00:28:51.305
<00:28:49.145>Class <00:28:49.345>hierarchies, <00:28:49.545>oh, <00:28:49.745>I'm <00:28:49.945>using <00:28:50.145>this <00:28:50.345>one <00:28:50.545>method,

656
00:28:51.305 --> 00:28:54.185
<00:28:51.305>but <00:28:51.505>it's, <00:28:51.705>it's <00:28:51.905>actually <00:28:52.105>in <00:28:52.305>the <00:28:52.505>class <00:28:52.705>hierarchy,

657
00:28:54.185 --> 00:28:55.865
<00:28:54.185>the <00:28:54.418>fifth <00:28:54.651>class <00:28:54.885>that <00:28:55.118>I'm <00:28:55.351>extending <00:28:55.585>from.

658
00:28:57.085 --> 00:28:58.145
<00:28:57.085>And <00:28:57.403>then <00:28:57.721>it's <00:28:58.039>gone.

659
00:28:58.445 --> 00:28:59.785
<00:28:58.445>And <00:28:58.646>you <00:28:58.847>need <00:28:59.048>to <00:28:59.249>look <00:28:59.450>for <00:28:59.651>it

660
00:29:00.725 --> 00:29:02.505
<00:29:00.725>and <00:29:00.958>need <00:29:01.191>to <00:29:01.425>understand <00:29:01.658>what <00:29:01.891>has <00:29:02.125>happened

661
00:29:02.505 --> 00:29:03.945
<00:29:02.505>and <00:29:02.721>why <00:29:02.937>it's <00:29:03.153>gone <00:29:03.369>to <00:29:03.585>begin <00:29:03.801>with.

662
00:29:04.775 --> 00:29:06.265
<00:29:04.775>Here <00:29:05.043>it's <00:29:05.311>totally <00:29:05.579>clear <00:29:05.847>what's <00:29:06.116>happening.

663
00:29:06.405 --> 00:29:07.785
<00:29:06.405>You <00:29:06.715>understand <00:29:07.026>what's <00:29:07.336>going <00:29:07.647>on.

664
00:29:07.845 --> 00:29:12.305
<00:29:07.845>The <00:29:07.985>traits <00:29:08.125>tell <00:29:08.265>you <00:29:08.405>what's <00:29:08.545>going <00:29:08.685>on, <00:29:08.825>what <00:29:08.965>you <00:29:09.105>can <00:29:09.245>do

665
00:29:12.305 --> 00:29:13.505
<00:29:12.305>with <00:29:12.575>it, <00:29:12.845>how <00:29:13.115>it <00:29:13.385>works.

666
00:29:13.805 --> 00:29:15.985
<00:29:13.805>It <00:29:13.960>also <00:29:14.116>tells <00:29:14.271>you <00:29:14.427>what <00:29:14.582>you <00:29:14.738>can't <00:29:14.893>do <00:29:15.049>with <00:29:15.205>it.

667
00:29:16.205 --> 00:29:18.985
<00:29:16.205>And <00:29:16.345>where <00:29:16.485>you <00:29:16.625>need <00:29:16.764>to <00:29:16.905>go <00:29:17.044>to <00:29:17.185>the, <00:29:17.324>the <00:29:17.465>rep <00:29:17.605>type,

668
00:29:19.005 --> 00:29:20.385
<00:29:19.005>to <00:29:19.182>the <00:29:19.359>inner <00:29:19.537>type <00:29:19.714>to <00:29:19.892>work <00:29:20.069>with <00:29:20.247>it.

669
00:29:20.555 --> 00:29:22.385
<00:29:20.555>Everything <00:29:20.905>becomes <00:29:21.255>explicit <00:29:21.605>and <00:29:21.955>clear.

670
00:29:22.405 --> 00:29:24.705
<00:29:22.405>And <00:29:22.605>this, <00:29:22.805>in <00:29:23.004>my <00:29:23.205>opinion <00:29:23.405>is <00:29:23.605>the <00:29:23.805>power

671
00:29:24.705 --> 00:29:26.105
<00:29:24.705>of <00:29:25.125>rusts <00:29:25.545>language <00:29:25.965>design.

672
00:29:26.865 --> 00:29:29.495
<00:29:26.865>Everything <00:29:27.065>becomes <00:29:27.265>100% <00:29:27.465>clear <00:29:27.665>what <00:29:27.865>you <00:29:28.065>can <00:29:28.265>do.

673
00:29:30.395 --> 00:29:31.655
<00:29:30.395>So <00:29:30.536>how <00:29:30.678>do <00:29:30.820>you <00:29:30.962>use <00:29:31.103>it <00:29:31.245>if <00:29:31.387>you <00:29:31.529>want

674
00:29:31.655 --> 00:29:33.175
<00:29:31.655>to <00:29:31.997>order <00:29:32.339>them <00:29:32.681>shoulders <00:29:33.023>first?

675
00:29:33.365 --> 00:29:35.935
<00:29:33.365>Well, <00:29:33.492>everything <00:29:33.619>that <00:29:33.746>you <00:29:33.874>need <00:29:34.001>to <00:29:34.128>do <00:29:34.255>is <00:29:34.383>wrap <00:29:34.510>the <00:29:34.637>one <00:29:34.765>type

676
00:29:35.935 --> 00:29:38.615
<00:29:35.935>that <00:29:36.075>you <00:29:36.215>already <00:29:36.355>had <00:29:36.495>in <00:29:36.635>those <00:29:36.774>new <00:29:36.915>types <00:29:37.054>and <00:29:37.195>that's <00:29:37.335>it.

677
00:29:38.835 --> 00:29:40.095
<00:29:38.835>Now <00:29:39.118>it <00:29:39.402>works <00:29:39.685>just <00:29:39.969>like

678
00:29:40.095 --> 00:29:44.075
<00:29:40.095>before, <00:29:40.375>composition <00:29:40.655>of <00:29:40.935>inheritance <00:29:41.215>through <00:29:41.495>traits

679
00:29:44.295 --> 00:29:46.235
<00:29:44.295>and <00:29:44.495>through <00:29:44.695>a <00:29:44.895>pattern <00:29:45.095>called <00:29:45.295>new <00:29:45.495>type <00:29:45.695>patterns.

680
00:29:46.235 --> 00:29:49.075
<00:29:46.235>So <00:29:46.435>if <00:29:46.635>you <00:29:46.834>ever <00:29:47.034>find <00:29:47.235>yourself, <00:29:47.435>um, <00:29:47.635>um,

681
00:29:49.705 --> 00:29:51.795
<00:29:49.705>reading <00:29:49.879>the <00:29:50.054>new <00:29:50.230>type <00:29:50.405>pattern <00:29:50.580>on <00:29:50.754>rust, <00:29:50.929>this <00:29:51.105>is

682
00:29:51.795 --> 00:29:53.745
<00:29:51.795>what <00:29:52.261>it's <00:29:52.728>about <00:29:53.195>already.

683
00:29:54.205 --> 00:29:56.785
<00:29:54.205>Um, <00:29:54.485>let's <00:29:54.764>continue. <00:29:55.044>Um, <00:29:55.324>one <00:29:55.605>thing

684
00:29:56.785 --> 00:29:58.905
<00:29:56.785>that <00:29:56.985>also <00:29:57.185>benefits <00:29:57.385>from <00:29:57.585>traits <00:29:57.785>is <00:29:57.985>error <00:29:58.185>handling.

685
00:29:59.365 --> 00:30:01.825
<00:29:59.365>Um, <00:29:59.520>error <00:29:59.676>handling. <00:29:59.831>One <00:29:59.987>of <00:30:00.142>the <00:30:00.298>core <00:30:00.453>components <00:30:00.609>of <00:30:00.765>rust,

686
00:30:01.975 --> 00:30:04.385
<00:30:01.975>it's <00:30:02.175>possible <00:30:02.375>with <00:30:02.574>rust <00:30:02.774>that <00:30:02.975>you <00:30:03.175>write <00:30:03.375>code

687
00:30:04.385 --> 00:30:05.465
<00:30:04.385>where <00:30:04.579>you <00:30:04.773>never <00:30:04.968>miss <00:30:05.162>an <00:30:05.357>error

688
00:30:05.465 --> 00:30:06.985
<00:30:05.465>because <00:30:05.738>rust <00:30:06.012>just <00:30:06.285>won't <00:30:06.559>let <00:30:06.832>you.

689
00:30:07.435 --> 00:30:08.945
<00:30:07.435>Error. <00:30:07.661>Handling <00:30:07.888>in <00:30:08.114>rust <00:30:08.341>works <00:30:08.567>like <00:30:08.793>that.

690
00:30:09.045 --> 00:30:11.105
<00:30:09.045>I'm <00:30:09.245>having <00:30:09.445>here <00:30:09.645>a <00:30:09.845>result <00:30:10.045>of <00:30:10.245>U <00:30:10.445>32

691
00:30:11.105 --> 00:30:12.505
<00:30:11.105>and <00:30:11.420>string, <00:30:11.735>which <00:30:12.050>means <00:30:12.365>Ida,

692
00:30:12.925 --> 00:30:14.385
<00:30:12.925>the <00:30:13.187>operation <00:30:13.450>succeeded <00:30:13.713>or <00:30:13.976>it <00:30:14.239>didn't.

693
00:30:14.415 --> 00:30:17.545
<00:30:14.415>This <00:30:14.570>is <00:30:14.726>all <00:30:14.881>it <00:30:15.037>does, <00:30:15.192>IDA <00:30:15.348>exceeded <00:30:15.503>or <00:30:15.659>it <00:30:15.815>didn't,

694
00:30:17.765 --> 00:30:19.265
<00:30:17.765>but <00:30:17.990>then <00:30:18.215>the <00:30:18.440>code <00:30:18.665>is <00:30:18.890>pretty <00:30:19.115>long.

695
00:30:19.265 --> 00:30:21.385
<00:30:19.265>So <00:30:19.381>all <00:30:19.498>I <00:30:19.615>want <00:30:19.731>to <00:30:19.848>do <00:30:19.965>is <00:30:20.081>read <00:30:20.198>a <00:30:20.315>number <00:30:20.431>from <00:30:20.548>a <00:30:20.665>file,

696
00:30:21.475 --> 00:30:23.585
<00:30:21.475>which <00:30:21.649>means <00:30:21.824>that <00:30:22.000>I <00:30:22.175>need <00:30:22.350>to <00:30:22.524>open <00:30:22.699>that <00:30:22.875>file.

697
00:30:23.975 --> 00:30:26.265
<00:30:23.975>That <00:30:24.149>can <00:30:24.324>go <00:30:24.500>wrong. <00:30:24.675>So <00:30:24.850>either <00:30:25.024>I <00:30:25.199>get <00:30:25.375>it

698
00:30:26.285 --> 00:30:27.545
<00:30:26.285>or <00:30:26.474>I <00:30:26.663>need <00:30:26.852>to <00:30:27.041>return <00:30:27.230>an <00:30:27.419>error.

699
00:30:28.205 --> 00:30:30.465
<00:30:28.205>The <00:30:28.345>other <00:30:28.485>thing <00:30:28.625>is, <00:30:28.764>um, <00:30:28.905>I <00:30:29.044>want <00:30:29.185>to <00:30:29.324>read <00:30:29.465>the <00:30:29.605>contents

700
00:30:30.465 --> 00:30:31.865
<00:30:30.465>of <00:30:30.645>the <00:30:30.825>file, <00:30:31.004>yet <00:30:31.185>this <00:30:31.365>can <00:30:31.545>go <00:30:31.725>wrong.

701
00:30:31.865 --> 00:30:33.745
<00:30:31.865>So <00:30:32.020>either, <00:30:32.176>yeah, <00:30:32.331>maybe <00:30:32.487>I <00:30:32.642>read <00:30:32.798>it <00:30:32.953>into <00:30:33.109>the <00:30:33.265>buffer

702
00:30:34.205 --> 00:30:35.545
<00:30:34.205>or <00:30:34.506>it <00:30:34.808>returns <00:30:35.109>an <00:30:35.411>error.

703
00:30:36.605 --> 00:30:40.665
<00:30:36.605>And <00:30:36.745>last <00:30:36.885>but <00:30:37.025>not <00:30:37.165>least, <00:30:37.305>I <00:30:37.445>need <00:30:37.585>to <00:30:37.725>parse <00:30:37.865>the <00:30:38.005>string

704
00:30:40.665 --> 00:30:43.025
<00:30:40.665>that <00:30:40.792>I <00:30:40.919>just <00:30:41.046>read <00:30:41.174>into <00:30:41.301>number <00:30:41.428>and <00:30:41.555>this <00:30:41.683>can <00:30:41.810>also <00:30:41.937>go <00:30:42.065>wrong.

705
00:30:43.025 --> 00:30:45.625
<00:30:43.025>So <00:30:43.180>there <00:30:43.336>are <00:30:43.491>three <00:30:43.647>potential <00:30:43.802>things <00:30:43.958>that <00:30:44.113>can <00:30:44.269>go <00:30:44.425>wrong,

706
00:30:45.645 --> 00:30:48.665
<00:30:45.645>and <00:30:45.820>this <00:30:45.995>looks <00:30:46.170>very, <00:30:46.345>very <00:30:46.520>cumbersome, <00:30:46.695>very, <00:30:46.870>very <00:30:47.045>tedious.

707
00:30:48.665 --> 00:30:49.945
<00:30:48.665>This <00:30:48.857>is, <00:30:49.049>you <00:30:49.241>know, <00:30:49.433>why <00:30:49.625>people <00:30:49.817>complain

708
00:30:49.945 --> 00:30:52.025
<00:30:49.945>that <00:30:50.100>their <00:30:50.256>rust <00:30:50.411>code <00:30:50.567>is <00:30:50.722>so <00:30:50.878>expressive <00:30:51.033>and <00:30:51.189>so <00:30:51.345>long

709
00:30:52.025 --> 00:30:54.905
<00:30:52.025>and <00:30:52.141>they <00:30:52.258>need <00:30:52.375>to <00:30:52.491>write <00:30:52.608>so <00:30:52.725>much, <00:30:52.841>but <00:30:52.958>we <00:30:53.075>can <00:30:53.191>make <00:30:53.308>it <00:30:53.425>easier.

710
00:30:55.605 --> 00:30:57.385
<00:30:55.605>Um, <00:30:55.780>one <00:30:55.955>thing <00:30:56.130>that <00:30:56.305>we <00:30:56.480>can <00:30:56.655>do, <00:30:56.830>for <00:30:57.005>example,

711
00:30:57.385 --> 00:30:59.145
<00:30:57.385>create <00:30:57.618>is <00:30:57.851>create <00:30:58.085>our <00:30:58.318>own <00:30:58.551>error <00:30:58.785>type.

712
00:30:59.605 --> 00:31:01.625
<00:30:59.605>Um, <00:30:59.838>I'm <00:31:00.071>creating <00:31:00.305>a <00:31:00.538>number <00:31:00.771>from <00:31:01.005>failure

713
00:31:01.715 --> 00:31:04.545
<00:31:01.715>where <00:31:01.831>I <00:31:01.948>can <00:31:02.064>have <00:31:02.181>either <00:31:02.298>a <00:31:02.415>parse <00:31:02.531>in <00:31:02.648>error <00:31:02.764>or <00:31:02.881>an <00:31:02.998>IO <00:31:03.115>error.

714
00:31:04.545 --> 00:31:05.545
<00:31:04.545>Those <00:31:04.770>are <00:31:04.995>the <00:31:05.220>two <00:31:05.445>errors

715
00:31:05.545 --> 00:31:07.385
<00:31:05.545>that <00:31:05.778>can <00:31:06.011>happen <00:31:06.245>in <00:31:06.478>this <00:31:06.711>particular <00:31:06.945>function.

716
00:31:07.945 --> 00:31:10.065
<00:31:07.945>I <00:31:08.120>implemented <00:31:08.294>this <00:31:08.470>display <00:31:08.645>trade <00:31:08.820>and <00:31:08.995>the <00:31:09.169>debug <00:31:09.345>trade

717
00:31:10.065 --> 00:31:12.545
<00:31:10.065>because <00:31:10.298>that's <00:31:10.531>what <00:31:10.765>the <00:31:10.998>error <00:31:11.231>trade <00:31:11.465>needs.

718
00:31:12.925 --> 00:31:14.465
<00:31:12.925>So <00:31:13.156>if <00:31:13.387>I'm <00:31:13.618>implementing <00:31:13.849>the <00:31:14.080>error <00:31:14.311>trade

719
00:31:14.565 --> 00:31:16.865
<00:31:14.565>and <00:31:14.765>make <00:31:14.965>it <00:31:15.165>compatible <00:31:15.365>with <00:31:15.565>the <00:31:15.765>broader <00:31:15.965>ecosystem

720
00:31:16.865 --> 00:31:19.425
<00:31:16.865>of <00:31:17.005>error <00:31:17.145>handling <00:31:17.285>in <00:31:17.425>rust, <00:31:17.565>you <00:31:17.705>don't <00:31:17.845>need <00:31:17.985>to <00:31:18.125>do <00:31:18.265>that.

721
00:31:19.445 --> 00:31:20.865
<00:31:19.445>You <00:31:19.764>can <00:31:20.084>use <00:31:20.403>error <00:31:20.723>types

722
00:31:20.865 --> 00:31:22.465
<00:31:20.865>that <00:31:21.145>don't <00:31:21.425>implement <00:31:21.705>the <00:31:21.985>error <00:31:22.265>trade,

723
00:31:22.645 --> 00:31:24.705
<00:31:22.645>but <00:31:22.820>if <00:31:22.995>you <00:31:23.170>want <00:31:23.345>to <00:31:23.520>make <00:31:23.695>your <00:31:23.870>error <00:31:24.045>compatible

724
00:31:24.775 --> 00:31:26.465
<00:31:24.775>with <00:31:25.055>other <00:31:25.335>errors <00:31:25.615>from <00:31:25.895>other <00:31:26.175>libraries

725
00:31:26.465 --> 00:31:28.225
<00:31:26.465>or <00:31:26.639>from <00:31:26.814>other <00:31:26.990>pieces <00:31:27.165>of <00:31:27.340>your <00:31:27.514>code, <00:31:27.689>you <00:31:27.865>need

726
00:31:28.225 --> 00:31:29.265
<00:31:28.225>to <00:31:28.459>implement <00:31:28.693>the <00:31:28.927>error <00:31:29.161>trade.

727
00:31:29.565 --> 00:31:31.865
<00:31:29.565>And <00:31:29.740>with <00:31:29.915>that <00:31:30.090>also <00:31:30.265>the <00:31:30.440>display <00:31:30.615>data <00:31:30.790>to <00:31:30.965>trade.

728
00:31:32.245 --> 00:31:35.665
<00:31:32.245>So <00:31:32.419>you <00:31:32.594>can <00:31:32.770>show <00:31:32.945>them, <00:31:33.120>you <00:31:33.294>can <00:31:33.469>dissipate <00:31:33.645>it.

729
00:31:37.045 --> 00:31:38.865
<00:31:37.045>Um, <00:31:37.395>then <00:31:37.745>implement <00:31:38.095>conversion <00:31:38.445>traits.

730
00:31:38.865 --> 00:31:42.935
<00:31:38.865>I <00:31:38.992>say, <00:31:39.119>well, <00:31:39.246>if <00:31:39.374>I'm <00:31:39.501>getting <00:31:39.628>a <00:31:39.755>pass <00:31:39.883>in <00:31:40.010>error <00:31:40.137>for <00:31:40.265>then,

731
00:31:42.965 --> 00:31:44.815
<00:31:42.965>then <00:31:43.120>I <00:31:43.276>can <00:31:43.431>convert <00:31:43.587>it <00:31:43.742>into <00:31:43.898>a <00:31:44.053>number <00:31:44.209>from <00:31:44.365>failure

732
00:31:44.955 --> 00:31:46.495
<00:31:44.955>by <00:31:45.232>using <00:31:45.509>this <00:31:45.786>one <00:31:46.063>in <00:31:46.341>variant.

733
00:31:47.165 --> 00:31:48.215
<00:31:47.165>Same <00:31:47.480>with <00:31:47.794>the <00:31:48.110>IOR.

734
00:31:48.215 --> 00:31:49.375
<00:31:48.215>If <00:31:48.423>I'm <00:31:48.632>getting <00:31:48.841>an <00:31:49.050>IO <00:31:49.259>error,

735
00:31:49.375 --> 00:31:50.935
<00:31:49.375>I <00:31:49.608>can <00:31:49.841>create <00:31:50.075>the <00:31:50.308>other <00:31:50.541>in <00:31:50.775>variant.

736
00:31:51.075 --> 00:31:53.455
<00:31:51.075>That's <00:31:51.275>it. <00:31:51.475>Now <00:31:51.675>I <00:31:51.875>can <00:31:52.075>convert <00:31:52.275>every <00:31:52.475>error

737
00:31:53.455 --> 00:31:55.655
<00:31:53.455>that <00:31:53.655>happens <00:31:53.855>in <00:31:54.054>my <00:31:54.254>code <00:31:54.455>to <00:31:54.655>one <00:31:54.855>error

738
00:31:55.655 --> 00:31:56.975
<00:31:55.655>that <00:31:55.892>I <00:31:56.130>defined <00:31:56.367>on <00:31:56.605>my <00:31:56.842>own.

739
00:31:57.675 --> 00:32:00.805
<00:31:57.675>And <00:31:57.830>with <00:31:57.986>that, <00:31:58.141>all <00:31:58.297>I <00:31:58.452>need <00:31:58.608>to <00:31:58.763>do <00:31:58.919>is <00:31:59.075>change

740
00:32:01.345 --> 00:32:03.125
<00:32:01.345>the <00:32:01.695>signature <00:32:02.045>of <00:32:02.395>the <00:32:02.745>function.

741
00:32:03.505 --> 00:32:04.565
<00:32:03.505>I'm <00:32:03.743>now <00:32:03.982>returning <00:32:04.220>a <00:32:04.459>number

742
00:32:04.565 --> 00:32:05.765
<00:32:04.565>from <00:32:04.781>file <00:32:04.997>error, <00:32:05.213>another <00:32:05.429>a <00:32:05.645>string.

743
00:32:06.345 --> 00:32:08.285
<00:32:06.345>And <00:32:06.811>with <00:32:07.278>that <00:32:07.745>introduction,

744
00:32:09.245 --> 00:32:11.765
<00:32:09.245>I <00:32:09.478>can <00:32:09.711>bubble <00:32:09.945>up <00:32:10.178>all <00:32:10.411>my <00:32:10.645>errors.

745
00:32:12.005 --> 00:32:13.125
<00:32:12.005>I <00:32:12.206>don't <00:32:12.408>need <00:32:12.609>to <00:32:12.811>handle <00:32:13.013>them.

746
00:32:13.205 --> 00:32:14.565
<00:32:13.205>I <00:32:13.379>just <00:32:13.554>say, <00:32:13.729>well, <00:32:13.904>if <00:32:14.079>anything <00:32:14.254>goes <00:32:14.429>wrong,

747
00:32:14.825 --> 00:32:16.165
<00:32:14.825>return <00:32:15.066>a <00:32:15.307>number <00:32:15.548>from <00:32:15.789>file <00:32:16.031>error.

748
00:32:17.205 --> 00:32:20.625
<00:32:17.205>And <00:32:17.405>they <00:32:17.605>can <00:32:17.804>also <00:32:18.004>return <00:32:18.205>the <00:32:18.405>path <00:32:18.605>into

749
00:32:20.625 --> 00:32:21.825
<00:32:20.625>error <00:32:20.895>through <00:32:21.165>the <00:32:21.435>question <00:32:21.705>mark.

750
00:32:22.025 --> 00:32:25.275
<00:32:22.025>Operator. <00:32:22.165>If <00:32:22.305>you <00:32:22.445>look <00:32:22.585>at <00:32:22.725>it, <00:32:22.865>this <00:32:23.005>is <00:32:23.145>the <00:32:23.285>happy <00:32:23.425>path.

751
00:32:25.375 --> 00:32:28.235
<00:32:25.375>You <00:32:25.550>just <00:32:25.725>write <00:32:25.900>code <00:32:26.075>that <00:32:26.250>is <00:32:26.425>supposed <00:32:26.600>to <00:32:26.775>work

752
00:32:28.375 --> 00:32:29.835
<00:32:28.375>and <00:32:28.594>all <00:32:28.813>the <00:32:29.032>error <00:32:29.251>handling <00:32:29.470>take <00:32:29.689>is,

753
00:32:29.955 --> 00:32:31.035
<00:32:29.955>is <00:32:30.197>being <00:32:30.441>done <00:32:30.684>somewhere <00:32:30.927>else.

754
00:32:31.545 --> 00:32:35.915
<00:32:31.545>It's <00:32:31.720>still <00:32:31.895>safe, <00:32:32.070>it <00:32:32.245>still <00:32:32.420>doesn't <00:32:32.595>produce <00:32:32.770>any <00:32:32.945>unforeseen

755
00:32:35.915 --> 00:32:37.515
<00:32:35.915>values <00:32:36.115>because <00:32:36.315>you <00:32:36.514>need <00:32:36.715>to <00:32:36.915>handle <00:32:37.115>the <00:32:37.315>error,

756
00:32:37.535 --> 00:32:38.555
<00:32:37.535>but <00:32:37.764>at <00:32:37.994>a <00:32:38.223>different <00:32:38.453>place

757
00:32:38.775 --> 00:32:40.765
<00:32:38.775>and <00:32:39.008>your <00:32:39.241>code <00:32:39.475>becomes <00:32:39.708>readable, <00:32:39.941>becomes <00:32:40.175>clear,

758
00:32:40.985 --> 00:32:43.205
<00:32:40.985>it <00:32:41.218>becomes <00:32:41.451>painfully <00:32:41.685>obvious <00:32:41.918>what's <00:32:42.151>going <00:32:42.385>on.

759
00:32:43.225 --> 00:32:45.325
<00:32:43.225>And <00:32:43.380>if <00:32:43.536>you <00:32:43.691>see <00:32:43.847>something <00:32:44.002>like <00:32:44.158>number <00:32:44.313>from <00:32:44.469>file <00:32:44.625>error,

760
00:32:45.545 --> 00:32:47.325
<00:32:45.545>you <00:32:45.745>understand, <00:32:45.945>well, <00:32:46.145>this <00:32:46.345>is <00:32:46.545>a <00:32:46.745>custom <00:32:46.945>error.

761
00:32:47.845 --> 00:32:51.755
<00:32:47.845>I <00:32:47.985>I <00:32:48.125>look <00:32:48.265>into <00:32:48.405>it <00:32:48.545>and <00:32:48.685>see <00:32:48.825>what's <00:32:48.965>compatible <00:32:49.105>with <00:32:49.245>it.

762
00:32:51.935 --> 00:32:54.395
<00:32:51.935>And <00:32:52.051>you <00:32:52.168>don't <00:32:52.284>need <00:32:52.401>to <00:32:52.518>do <00:32:52.635>that. <00:32:52.751>You <00:32:52.868>can <00:32:52.985>also <00:32:53.101>say, <00:32:53.218>well, <00:32:53.335>um,

763
00:32:54.505 --> 00:32:56.555
<00:32:54.505>take <00:32:54.680>a <00:32:54.855>trade <00:32:55.030>object <00:32:55.205>that <00:32:55.380>implements <00:32:55.555>the <00:32:55.730>error <00:32:55.905>type

764
00:32:56.555 --> 00:32:58.875
<00:32:56.555>and <00:32:56.682>you're <00:32:56.809>done <00:32:56.936>with <00:32:57.064>it <00:32:57.191>and <00:32:57.318>never <00:32:57.445>deal <00:32:57.573>with <00:32:57.700>the <00:32:57.827>exact <00:32:57.955>error,

765
00:32:59.095 --> 00:33:00.915
<00:32:59.095>but <00:32:59.375>you <00:32:59.655>know, <00:32:59.935>your <00:33:00.215>military <00:33:00.495>error.

766
00:33:00.915 --> 00:33:04.915
<00:33:00.915>It <00:33:01.148>might <00:33:01.381>totally, <00:33:01.615>um, <00:33:01.848>um, <00:33:02.081>depend <00:33:02.315>on

767
00:33:04.915 --> 00:33:06.195
<00:33:04.915>what <00:33:05.145>your <00:33:05.375>project <00:33:05.606>is <00:33:05.836>actually <00:33:06.067>about.

768
00:33:07.405 --> 00:33:11.625
<00:33:07.405>Um, <00:33:07.605>also <00:33:07.805>this <00:33:08.004>question <00:33:08.205>mark <00:33:08.405>operator <00:33:08.605>is <00:33:08.805>implemented

769
00:33:11.625 --> 00:33:12.705
<00:33:11.625>through <00:33:11.949>the <00:33:12.273>tri <00:33:12.597>trade.

770
00:33:12.705 --> 00:33:15.025
<00:33:12.705>It's <00:33:12.985>now <00:33:13.264>experimental, <00:33:13.544>but <00:33:13.824>guess <00:33:14.105>what?

771
00:33:15.335 --> 00:33:19.585
<00:33:15.335>There's <00:33:15.490>an <00:33:15.646>ap, <00:33:15.801>there's <00:33:15.957>a <00:33:16.112>trade <00:33:16.268>for <00:33:16.423>syntax <00:33:16.579>in <00:33:16.735>rust.

772
00:33:20.205 --> 00:33:22.785
<00:33:20.205>And <00:33:20.485>both <00:33:20.764>the <00:33:21.044>option, <00:33:21.324>uh, <00:33:21.605>in

773
00:33:22.885 --> 00:33:25.025
<00:33:22.885>and <00:33:23.118>the <00:33:23.351>result <00:33:23.585>in <00:33:23.818>implement <00:33:24.051>this <00:33:24.285>tritrate.

774
00:33:25.525 --> 00:33:29.315
<00:33:25.525>Um, <00:33:25.805>I <00:33:26.085>put, <00:33:26.365>um, <00:33:26.645>the <00:33:26.925>RFC

775
00:33:29.315 --> 00:33:31.655
<00:33:29.315>to <00:33:29.595>the <00:33:29.875>Tritrate <00:33:30.155>into <00:33:30.435>this <00:33:30.715>talk.

776
00:33:32.385 --> 00:33:34.595
<00:33:32.385>Read <00:33:32.618>it <00:33:32.851>up. <00:33:33.085>It's <00:33:33.318>beautiful <00:33:33.551>to <00:33:33.785>see

777
00:33:34.975 --> 00:33:37.635
<00:33:34.975>how <00:33:35.149>this <00:33:35.324>error <00:33:35.500>ling <00:33:35.675>is <00:33:35.850>implemented <00:33:36.024>through <00:33:36.199>a <00:33:36.375>trade

778
00:33:37.895 --> 00:33:39.595
<00:33:37.895>and <00:33:38.128>how <00:33:38.361>it <00:33:38.595>enables <00:33:38.828>the <00:33:39.061>rust <00:33:39.295>team

779
00:33:39.935 --> 00:33:41.675
<00:33:39.935>to <00:33:40.215>add <00:33:40.495>the <00:33:40.774>scratch <00:33:41.054>mark <00:33:41.335>operator.

780
00:33:42.555 --> 00:33:46.455
<00:33:42.555>Uh, <00:33:42.695>it <00:33:42.835>really <00:33:42.975>shows <00:33:43.115>you <00:33:43.255>how <00:33:43.395>abstracting <00:33:43.535>something <00:33:43.675>in <00:33:43.815>a <00:33:43.955>trade

781
00:33:46.795 --> 00:33:49.535
<00:33:46.795>and <00:33:46.995>creating <00:33:47.195>language <00:33:47.395>out <00:33:47.595>of <00:33:47.795>it <00:33:47.995>works <00:33:48.195>together.

782
00:33:50.995 --> 00:33:52.045
<00:33:50.995>Yeah, <00:33:51.231>I <00:33:51.467>guess <00:33:51.703>you <00:33:51.940>realize

783
00:33:52.045 --> 00:33:53.925
<00:33:52.045>that <00:33:52.278>I'm <00:33:52.511>getting <00:33:52.745>really <00:33:52.978>excited <00:33:53.211>about <00:33:53.445>it.

784
00:33:54.505 --> 00:33:58.125
<00:33:54.505>Um, <00:33:54.645>same <00:33:54.785>if <00:33:54.925>I <00:33:55.065>talk <00:33:55.205>about, <00:33:55.345>you <00:33:55.485>know, <00:33:55.625>this <00:33:55.765>is <00:33:55.905>kind

785
00:33:58.125 --> 00:33:59.525
<00:33:58.125>of <00:33:58.545>kind <00:33:58.965>of <00:33:59.385>mystique.

786
00:33:59.585 --> 00:34:01.045
<00:33:59.585>I'm <00:33:59.847>talking <00:34:00.110>about <00:34:00.373>refactoring <00:34:00.636>a <00:34:00.899>lot.

787
00:34:01.145 --> 00:34:02.885
<00:34:01.145>Um, <00:34:01.285>this <00:34:01.425>is, <00:34:01.565>this <00:34:01.705>is, <00:34:01.845>you <00:34:01.985>know, <00:34:02.125>where <00:34:02.264>I <00:34:02.405>come <00:34:02.545>from.

788
00:34:02.885 --> 00:34:04.885
<00:34:02.885>We <00:34:03.060>have <00:34:03.235>lots <00:34:03.410>of <00:34:03.585>rust <00:34:03.760>projects <00:34:03.935>in <00:34:04.110>rust, <00:34:04.285>uh,

789
00:34:04.885 --> 00:34:06.005
<00:34:04.885>in, <00:34:05.221>in, <00:34:05.557>in <00:34:05.893>Dynatrace.

790
00:34:06.505 --> 00:34:09.445
<00:34:06.505>Um, <00:34:06.632>and, <00:34:06.759>and <00:34:06.886>Dyna, <00:34:07.014>uh, <00:34:07.141>uh, <00:34:07.268>rust <00:34:07.395>is <00:34:07.523>a <00:34:07.650>really <00:34:07.777>good <00:34:07.905>language

791
00:34:09.445 --> 00:34:13.725
<00:34:09.445>to <00:34:09.600>prototype <00:34:09.756>because <00:34:09.911>you <00:34:10.067>can, <00:34:10.222>you <00:34:10.378>can <00:34:10.533>cut <00:34:10.689>corners, <00:34:10.845>um,

792
00:34:13.785 --> 00:34:16.125
<00:34:13.784>but <00:34:13.960>it <00:34:14.134>becomes <00:34:14.310>very <00:34:14.484>explicit <00:34:14.659>where <00:34:14.835>you <00:34:15.009>cut <00:34:15.185>corners.

793
00:34:16.665 --> 00:34:18.925
<00:34:16.665>Um, <00:34:16.804>which <00:34:16.945>means <00:34:17.085>that <00:34:17.225>at <00:34:17.364>one <00:34:17.505>point <00:34:17.645>in <00:34:17.784>time <00:34:17.925>when <00:34:18.065>you

794
00:34:18.925 --> 00:34:20.125
<00:34:18.925>prototype, <00:34:19.141>when <00:34:19.357>you <00:34:19.572>just, <00:34:19.789>you <00:34:20.005>know,

795
00:34:20.325 --> 00:34:22.885
<00:34:20.324>scribble <00:34:20.480>down <00:34:20.636>whatever <00:34:20.791>you <00:34:20.947>got, <00:34:21.102>you <00:34:21.258>can <00:34:21.413>take <00:34:21.569>a <00:34:21.725>time

796
00:34:22.905 --> 00:34:25.805
<00:34:22.905>and <00:34:23.138>refactor <00:34:23.371>nicely <00:34:23.605>into <00:34:23.838>something <00:34:24.071>that's <00:34:24.305>much,

797
00:34:25.805 --> 00:34:27.525
<00:34:25.804>much <00:34:26.004>more <00:34:26.205>maintainable <00:34:26.404>and <00:34:26.605>much, <00:34:26.804>much <00:34:27.004>more <00:34:27.205>readable.

798
00:34:27.905 --> 00:34:30.125
<00:34:27.905>And <00:34:28.080>this <00:34:28.255>example <00:34:28.430>now <00:34:28.605>comes <00:34:28.780>from <00:34:28.955>a <00:34:29.130>little <00:34:29.305>app

799
00:34:30.125 --> 00:34:32.725
<00:34:30.125>that <00:34:30.300>I <00:34:30.475>have <00:34:30.650>written <00:34:30.824>where <00:34:31.000>just <00:34:31.175>store <00:34:31.350>key <00:34:31.525>value

800
00:34:32.895 --> 00:34:34.085
<00:34:32.895>pairs <00:34:33.252>in <00:34:33.609>the <00:34:33.966>database.

801
00:34:34.265 --> 00:34:36.525
<00:34:34.264>Um, <00:34:34.464>it's, <00:34:34.665>it's, <00:34:34.864>it's <00:34:35.065>a <00:34:35.264>hash <00:34:35.464>map <00:34:35.665>basically.

802
00:34:37.145 --> 00:34:41.125
<00:34:37.145>Um, <00:34:37.261>but <00:34:37.378>look <00:34:37.495>at <00:34:37.611>what <00:34:37.728>we're <00:34:37.844>doing. <00:34:37.961>So, <00:34:38.078>um, <00:34:38.195>it's <00:34:38.311>a <00:34:38.428>web <00:34:38.545>app.

803
00:34:41.785 --> 00:34:44.925
<00:34:41.784>You <00:34:41.924>can <00:34:42.065>either <00:34:42.205>take <00:34:42.344>some <00:34:42.484>value, <00:34:42.625>whatever <00:34:42.764>value <00:34:42.904>that <00:34:43.045>it <00:34:43.185>is

804
00:34:45.265 --> 00:34:46.685
<00:34:45.264>and <00:34:45.447>store <00:34:45.630>it <00:34:45.812>in <00:34:45.995>the <00:34:46.177>key <00:34:46.360>value <00:34:46.543>pairs.

805
00:34:46.685 --> 00:34:49.515
<00:34:46.685>So <00:34:46.860>you <00:34:47.034>are <00:34:47.210>getting <00:34:47.384>a <00:34:47.560>key <00:34:47.735>which <00:34:47.909>is <00:34:48.085>here

806
00:34:49.655 --> 00:34:51.315
<00:34:49.655>and <00:34:49.855>the <00:34:50.055>value <00:34:50.255>of <00:34:50.455>whatever <00:34:50.655>that <00:34:50.855>value <00:34:51.055>is.

807
00:34:51.335 --> 00:34:52.995
<00:34:51.335>So <00:34:51.534>I'm <00:34:51.735>also <00:34:51.935>throwing <00:34:52.135>a <00:34:52.335>content <00:34:52.534>type <00:34:52.735>here

808
00:34:52.995 --> 00:34:55.395
<00:34:52.995>to <00:34:53.150>understand <00:34:53.306>if <00:34:53.461>it's <00:34:53.617>an <00:34:53.772>image <00:34:53.928>or <00:34:54.083>if <00:34:54.239>it <00:34:54.395>isn't.

809
00:34:56.055 --> 00:34:58.875
<00:34:56.054>Um, <00:34:56.210>and <00:34:56.366>this <00:34:56.521>might <00:34:56.677>go <00:34:56.832>wrong <00:34:56.988>or <00:34:57.143>it <00:34:57.299>might <00:34:57.455>not,

810
00:34:58.895 --> 00:35:01.075
<00:34:58.895>but <00:34:59.035>everything <00:34:59.175>that <00:34:59.315>I <00:34:59.455>did <00:34:59.595>is <00:34:59.735>I'm <00:34:59.875>taking <00:35:00.015>the <00:35:00.155>shared <00:35:00.295>state,

811
00:35:01.105 --> 00:35:03.875
<00:35:01.105>take <00:35:01.280>the <00:35:01.455>database, <00:35:01.630>insert <00:35:01.805>a <00:35:01.980>key, <00:35:02.155>the <00:35:02.330>content <00:35:02.505>type

812
00:35:04.215 --> 00:35:06.875
<00:35:04.215>and <00:35:04.355>some <00:35:04.495>data, <00:35:04.635>um, <00:35:04.775>and <00:35:04.915>then <00:35:05.055>I <00:35:05.195>can <00:35:05.335>get <00:35:05.475>it <00:35:05.615>again.

813
00:35:06.875 --> 00:35:07.995
<00:35:06.875>So <00:35:07.076>if <00:35:07.278>I'm <00:35:07.479>getting <00:35:07.681>the <00:35:07.883>key,

814
00:35:08.075 --> 00:35:09.315
<00:35:08.075>I <00:35:08.261>say, <00:35:08.447>well, <00:35:08.633>is <00:35:08.819>this <00:35:09.005>key <00:35:09.191>available?

815
00:35:09.495 --> 00:35:11.355
<00:35:09.495>If <00:35:09.694>it's <00:35:09.895>available, <00:35:10.095>read <00:35:10.295>out <00:35:10.495>the <00:35:10.694>content <00:35:10.895>type,

816
00:35:11.355 --> 00:35:14.875
<00:35:11.355>read <00:35:11.510>out <00:35:11.666>the <00:35:11.821>data <00:35:11.977>and <00:35:12.132>return <00:35:12.288>the <00:35:12.443>value, <00:35:12.599>otherwise <00:35:12.755>return

817
00:35:14.875 --> 00:35:16.915
<00:35:14.875>and <00:35:15.075>use <00:35:15.275>data <00:35:15.475>called <00:35:15.675>not <00:35:15.875>found <00:35:16.075>Keynote <00:35:16.275>found.

818
00:35:17.225 --> 00:35:19.115
<00:35:17.225>This <00:35:17.424>is <00:35:17.625>based <00:35:17.825>on <00:35:18.025>a <00:35:18.225>framework <00:35:18.424>called <00:35:18.625>Axiom.

819
00:35:19.115 --> 00:35:21.755
<00:35:19.115>One <00:35:19.290>of <00:35:19.464>my <00:35:19.640>favorites. <00:35:19.814>Um, <00:35:19.990>everything <00:35:20.165>that <00:35:20.339>it <00:35:20.515>needs

820
00:35:21.755 --> 00:35:23.955
<00:35:21.755>to <00:35:21.988>have <00:35:22.221>is <00:35:22.455>having <00:35:22.688>an <00:35:22.921>into <00:35:23.155>response.

821
00:35:24.135 --> 00:35:27.035
<00:35:24.135>So <00:35:24.310>everything <00:35:24.485>that <00:35:24.660>implements <00:35:24.835>into <00:35:25.010>response <00:35:25.185>can <00:35:25.360>then <00:35:25.535>be

822
00:35:27.145 --> 00:35:29.515
<00:35:27.145>converted <00:35:27.425>into <00:35:27.705>a <00:35:27.985>proper <00:35:28.265>HTTP <00:35:28.545>response.

823
00:35:29.585 --> 00:35:30.595
<00:35:29.585>This <00:35:29.812>is <00:35:30.039>what's <00:35:30.266>happening <00:35:30.493>here,

824
00:35:30.705 --> 00:35:32.875
<00:35:30.705>otherwise <00:35:30.904>I'm <00:35:31.105>having <00:35:31.305>a <00:35:31.505>QV <00:35:31.705>error, <00:35:31.904>I'm <00:35:32.105>coming

825
00:35:32.875 --> 00:35:34.395
<00:35:32.875>to <00:35:33.148>the <00:35:33.422>QV <00:35:33.695>error <00:35:33.969>later <00:35:34.243>on.

826
00:35:34.815 --> 00:35:36.155
<00:35:34.815>Um, <00:35:35.056>it's <00:35:35.297>four <00:35:35.538>lines <00:35:35.779>of <00:35:36.021>code.

827
00:35:36.175 --> 00:35:40.045
<00:35:36.175>So <00:35:36.350>ignore <00:35:36.525>the <00:35:36.700>lengthy, <00:35:36.875>uh, <00:35:37.050>the <00:35:37.225>lengthy <00:35:37.400>header <00:35:37.575>of,

828
00:35:40.065 --> 00:35:41.285
<00:35:40.065>of <00:35:40.431>the <00:35:40.797>function <00:35:41.163>signature.

829
00:35:41.545 --> 00:35:44.405
<00:35:41.545>What's <00:35:41.672>going <00:35:41.799>on <00:35:41.926>really <00:35:42.054>is <00:35:42.181>just <00:35:42.308>a <00:35:42.435>couple <00:35:42.563>of <00:35:42.690>lines <00:35:42.817>of <00:35:42.945>code

830
00:35:44.655 --> 00:35:45.725
<00:35:44.655>where <00:35:44.976>I <00:35:45.297>write <00:35:45.618>something

831
00:35:46.185 --> 00:35:48.885
<00:35:46.185>or <00:35:46.340>I <00:35:46.496>return <00:35:46.651>something <00:35:46.807>so <00:35:46.962>far <00:35:47.118>is <00:35:47.273>a <00:35:47.429>good <00:35:47.585>nothing

832
00:35:48.885 --> 00:35:51.045
<00:35:48.885>to <00:35:49.025>worry <00:35:49.165>about, <00:35:49.305>but <00:35:49.445>now <00:35:49.585>I <00:35:49.725>want <00:35:49.865>to <00:35:50.005>have, <00:35:50.145>you <00:35:50.285>know,

833
00:35:51.895 --> 00:35:53.775
<00:35:51.895>a <00:35:52.050>little <00:35:52.206>bit <00:35:52.361>more, <00:35:52.517>I <00:35:52.672>want <00:35:52.828>to <00:35:52.983>have <00:35:53.139>more <00:35:53.295>functionality.

834
00:35:54.175 --> 00:35:58.215
<00:35:54.175>I <00:35:54.330>want <00:35:54.486>to <00:35:54.641>create <00:35:54.797>a <00:35:54.952>gray <00:35:55.108>scale <00:35:55.263>endpoint, <00:35:55.419>um, <00:35:55.575>where

835
00:35:58.795 --> 00:36:00.295
<00:35:58.795>if <00:35:58.987>it's <00:35:59.180>an <00:35:59.373>image, <00:35:59.566>if <00:35:59.759>it's <00:35:59.952>a <00:36:00.145>p

836
00:36:00.295 --> 00:36:04.615
<00:36:00.295>and <00:36:00.411>g, <00:36:00.528>um, <00:36:00.645>I <00:36:00.761>want <00:36:00.878>to <00:36:00.995>convert <00:36:01.111>it <00:36:01.228>into <00:36:01.345>a <00:36:01.461>gray <00:36:01.578>scale <00:36:01.695>image.

837
00:36:04.765 --> 00:36:06.335
<00:36:04.765>That <00:36:04.940>should <00:36:05.115>be <00:36:05.290>one <00:36:05.464>feature <00:36:05.640>of <00:36:05.815>my <00:36:05.990>key <00:36:06.165>value

838
00:36:06.335 --> 00:36:07.375
<00:36:06.335>store <00:36:06.647>for <00:36:06.959>whatever <00:36:07.271>reason.

839
00:36:08.315 --> 00:36:11.455
<00:36:08.315>Um, <00:36:08.470>and <00:36:08.626>it <00:36:08.781>already <00:36:08.937>takes <00:36:09.092>a <00:36:09.248>little <00:36:09.403>bit <00:36:09.559>more <00:36:09.715>time.

840
00:36:11.455 --> 00:36:14.935
<00:36:11.455>So <00:36:11.582>first <00:36:11.709>of <00:36:11.836>all, <00:36:11.964>I <00:36:12.091>need <00:36:12.218>to <00:36:12.345>read <00:36:12.473>data <00:36:12.600>from <00:36:12.727>the <00:36:12.855>store,

841
00:36:15.235 --> 00:36:17.775
<00:36:15.235>and <00:36:15.410>if <00:36:15.585>it <00:36:15.760>doesn't <00:36:15.935>exist, <00:36:16.110>I <00:36:16.285>need <00:36:16.460>to <00:36:16.635>return

842
00:36:17.835 --> 00:36:18.895
<00:36:17.835>and <00:36:18.153>not <00:36:18.471>found <00:36:18.788>error.

843
00:36:19.675 --> 00:36:22.335
<00:36:19.675>Or <00:36:19.791>I <00:36:19.908>need <00:36:20.025>to <00:36:20.141>say, <00:36:20.258>well, <00:36:20.375>if <00:36:20.491>it's <00:36:20.608>not <00:36:20.725>an <00:36:20.841>image, <00:36:20.958>I <00:36:21.075>need

844
00:36:22.335 --> 00:36:23.695
<00:36:22.335>to <00:36:22.641>return <00:36:22.947>a <00:36:23.253>forbidden <00:36:23.559>error

845
00:36:23.805 --> 00:36:25.975
<00:36:23.805>because <00:36:24.004>all <00:36:24.205>I <00:36:24.404>can <00:36:24.605>do <00:36:24.805>is <00:36:25.004>convert <00:36:25.205>P

846
00:36:25.975 --> 00:36:28.135
<00:36:25.975>and <00:36:26.174>gs <00:36:26.375>may, <00:36:26.575>maybe <00:36:26.775>I <00:36:26.975>can <00:36:27.174>extend <00:36:27.375>it,

847
00:36:28.135 --> 00:36:31.175
<00:36:28.135>but <00:36:28.262>you <00:36:28.389>know, <00:36:28.516>if <00:36:28.644>it's <00:36:28.771>not <00:36:28.898>convertible <00:36:29.025>into <00:36:29.153>an <00:36:29.280>image, <00:36:29.407>I <00:36:29.535>need

848
00:36:31.175 --> 00:36:32.175
<00:36:31.175>to <00:36:31.475>react <00:36:31.775>on <00:36:32.075>it.

849
00:36:33.075 --> 00:36:34.095
<00:36:33.075>So <00:36:33.381>error <00:36:33.687>handling <00:36:33.993>here.

850
00:36:34.715 --> 00:36:38.095
<00:36:34.715>Um, <00:36:34.855>also <00:36:34.995>I <00:36:35.135>need <00:36:35.275>to, <00:36:35.415>to <00:36:35.555>load <00:36:35.695>the <00:36:35.835>image <00:36:35.975>from <00:36:36.115>memory

851
00:36:38.685 --> 00:36:40.015
<00:36:38.685>into <00:36:39.084>a <00:36:39.482>dynamic <00:36:39.882>image.

852
00:36:40.015 --> 00:36:42.255
<00:36:40.015>So <00:36:40.190>what <00:36:40.365>comes <00:36:40.540>out <00:36:40.714>here <00:36:40.890>is <00:36:41.065>a <00:36:41.240>dynamic <00:36:41.415>image

853
00:36:42.845 --> 00:36:44.295
<00:36:42.845>from <00:36:43.279>the <00:36:43.715>image <00:36:44.150>crate.

854
00:36:44.755 --> 00:36:46.775
<00:36:44.755>It, <00:36:44.988>it's <00:36:45.221>struck <00:36:45.455>from <00:36:45.688>a <00:36:45.921>different <00:36:46.155>crate.

855
00:36:47.675 --> 00:36:49.135
<00:36:47.675>Um, <00:36:48.003>this <00:36:48.332>might <00:36:48.660>also <00:36:48.989>fail.

856
00:36:49.275 --> 00:36:51.135
<00:36:49.275>I'm, <00:36:49.450>I'm <00:36:49.625>doing <00:36:49.800>unre <00:36:49.975>here, <00:36:50.150>which <00:36:50.325>means <00:36:50.500>that <00:36:50.675>my,

857
00:36:51.635 --> 00:36:55.175
<00:36:51.635>my <00:36:51.790>program <00:36:51.946>will <00:36:52.101>break <00:36:52.257>if <00:36:52.412>I'm <00:36:52.568>doing <00:36:52.723>something <00:36:52.879>wrong, <00:36:53.035>not,

858
00:36:55.275 --> 00:36:56.335
<00:36:55.275>not <00:36:55.465>what <00:36:55.656>you <00:36:55.847>want <00:36:56.038>to <00:36:56.229>have.

859
00:36:56.995 --> 00:37:00.975
<00:36:56.995>Um, <00:36:57.122>if <00:36:57.249>this <00:36:57.376>loading <00:36:57.504>of <00:36:57.631>the <00:36:57.758>image <00:36:57.885>data <00:36:58.013>worked <00:36:58.140>out, <00:36:58.267>if <00:36:58.395>we,

860
00:37:01.035 --> 00:37:04.295
<00:37:01.035>if <00:37:01.174>we <00:37:01.315>got <00:37:01.455>there, <00:37:01.595>great, <00:37:01.734>then <00:37:01.875>I'm <00:37:02.015>having <00:37:02.154>a <00:37:02.295>new <00:37:02.435>image,

861
00:37:05.225 --> 00:37:09.535
<00:37:05.225>which <00:37:05.341>means <00:37:05.458>that, <00:37:05.575>um, <00:37:05.691>I <00:37:05.808>I <00:37:05.924>create <00:37:06.041>a <00:37:06.158>new <00:37:06.275>vector, <00:37:06.391>uh, <00:37:06.508>of <00:37:06.625>bytes

862
00:37:09.635 --> 00:37:11.095
<00:37:09.635>and <00:37:09.854>I <00:37:10.073>create <00:37:10.292>a <00:37:10.511>cur <00:37:10.730>into <00:37:10.948>it.

863
00:37:11.745 --> 00:37:13.675
<00:37:11.745>This <00:37:12.095>is <00:37:12.444>happening <00:37:12.795>here. <00:37:13.145>Um,

864
00:37:14.135 --> 00:37:18.995
<00:37:14.135>and <00:37:14.368>uh, <00:37:14.601>then <00:37:14.835>I <00:37:15.068>am <00:37:15.301>taking <00:37:15.535>the

865
00:37:18.995 --> 00:37:20.475
<00:37:18.995>image <00:37:19.261>called <00:37:19.527>the <00:37:19.794>gray <00:37:20.060>scale <00:37:20.327>method

866
00:37:20.575 --> 00:37:24.955
<00:37:20.575>and <00:37:20.730>write <00:37:20.886>everything <00:37:21.041>from <00:37:21.197>the <00:37:21.352>image <00:37:21.508>in <00:37:21.663>the <00:37:21.819>output <00:37:21.975>from

867
00:37:24.955 --> 00:37:26.435
<00:37:24.955>what <00:37:25.177>p <00:37:25.399>and <00:37:25.621>g <00:37:25.843>into <00:37:26.065>my <00:37:26.287>vector.

868
00:37:26.655 --> 00:37:28.435
<00:37:26.655>So, <00:37:26.888>um, <00:37:27.121>the, <00:37:27.355>the <00:37:27.588>the <00:37:27.821>image <00:37:28.055>creates,

869
00:37:28.435 --> 00:37:29.715
<00:37:28.435>stores <00:37:28.665>it <00:37:28.895>in <00:37:29.126>some <00:37:29.356>different <00:37:29.587>data,

870
00:37:29.735 --> 00:37:32.715
<00:37:29.735>and <00:37:29.842>I <00:37:29.950>need <00:37:30.058>to <00:37:30.165>get <00:37:30.273>bytes <00:37:30.381>at <00:37:30.488>the <00:37:30.596>end <00:37:30.704>that <00:37:30.811>I <00:37:30.919>can <00:37:31.027>send <00:37:31.135>out.

871
00:37:34.075 --> 00:37:37.335
<00:37:34.075>And <00:37:34.182>last <00:37:34.290>but <00:37:34.398>not <00:37:34.505>least, <00:37:34.613>what <00:37:34.721>I <00:37:34.828>do <00:37:34.936>is <00:37:35.044>I <00:37:35.151>create <00:37:35.259>a <00:37:35.367>new <00:37:35.475>response

872
00:37:37.765 --> 00:37:39.455
<00:37:37.765>with <00:37:37.964>the <00:37:38.165>content <00:37:38.365>type <00:37:38.565>image, <00:37:38.765>p <00:37:38.964>and <00:37:39.165>g,

873
00:37:39.955 --> 00:37:42.055
<00:37:39.955>and <00:37:40.130>create <00:37:40.305>the <00:37:40.480>newly <00:37:40.654>created <00:37:40.830>bytes <00:37:41.005>out <00:37:41.180>of <00:37:41.355>it.

874
00:37:43.005 --> 00:37:45.055
<00:37:43.005>It's <00:37:43.121>a <00:37:43.238>lot <00:37:43.355>of <00:37:43.471>work. <00:37:43.588>It's <00:37:43.705>a <00:37:43.821>lot <00:37:43.938>of <00:37:44.055>work <00:37:44.171>to, <00:37:44.288>you <00:37:44.405>know,

875
00:37:45.315 --> 00:37:48.295
<00:37:45.315>modify <00:37:45.455>data <00:37:45.595>to, <00:37:45.735>to <00:37:45.875>make <00:37:46.015>sure <00:37:46.155>that <00:37:46.295>the <00:37:46.435>data <00:37:46.575>is <00:37:46.715>compatible.

876
00:37:48.715 --> 00:37:52.535
<00:37:48.715>And, <00:37:48.855>um, <00:37:48.995>and, <00:37:49.135>and <00:37:49.275>it's, <00:37:49.415>it's <00:37:49.555>a <00:37:49.695>lot. <00:37:49.835>It's <00:37:49.975>a <00:37:50.115>lot.

877
00:37:53.035 --> 00:37:55.575
<00:37:53.035>Um, <00:37:53.162>but <00:37:53.289>I <00:37:53.416>want <00:37:53.544>you <00:37:53.671>to <00:37:53.798>focus <00:37:53.925>on <00:37:54.053>this <00:37:54.180>particular <00:37:54.307>line <00:37:54.435>here.

878
00:37:55.795 --> 00:37:58.175
<00:37:55.795>Um, <00:37:56.075>I <00:37:56.355>start <00:37:56.635>refactoring <00:37:56.915>this <00:37:57.195>line

879
00:37:58.175 --> 00:38:00.535
<00:37:58.175>because <00:37:58.408>it <00:37:58.641>has <00:37:58.875>string <00:37:59.108>values <00:37:59.341>into <00:37:59.575>that.

880
00:38:00.695 --> 00:38:02.775
<00:38:00.695>I <00:38:00.870>don't <00:38:01.045>want <00:38:01.220>to <00:38:01.395>be <00:38:01.570>bothered <00:38:01.745>with <00:38:01.920>string <00:38:02.095>values

881
00:38:02.775 --> 00:38:04.775
<00:38:02.775>because <00:38:03.125>they <00:38:03.475>can <00:38:03.825>introduce <00:38:04.175>all

882
00:38:04.775 --> 00:38:05.975
<00:38:04.775>sorts <00:38:04.929>of <00:38:05.083>bug <00:38:05.237>if <00:38:05.392>I <00:38:05.546>get <00:38:05.700>them <00:38:05.855>wrong.

883
00:38:06.475 --> 00:38:08.375
<00:38:06.475>And <00:38:06.755>want, <00:38:07.035>rather <00:38:07.315>want <00:38:07.595>to <00:38:07.875>work

884
00:38:08.375 --> 00:38:10.295
<00:38:08.375>with <00:38:08.655>something <00:38:08.935>called <00:38:09.215>an <00:38:09.495>image <00:38:09.775>response.

885
00:38:10.415 --> 00:38:13.535
<00:38:10.415>I <00:38:10.590>want <00:38:10.765>to <00:38:10.940>work <00:38:11.115>with <00:38:11.290>a <00:38:11.465>response <00:38:11.640>that, <00:38:11.815>um,

886
00:38:13.785 --> 00:38:16.455
<00:38:13.785>where <00:38:13.924>I <00:38:14.065>know <00:38:14.205>if <00:38:14.345>I <00:38:14.484>return <00:38:14.625>this, <00:38:14.765>it'll <00:38:14.904>be <00:38:15.045>an <00:38:15.185>image.

887
00:38:16.675 --> 00:38:18.775
<00:38:16.675>So <00:38:16.850>what <00:38:17.025>I <00:38:17.200>create <00:38:17.375>this, <00:38:17.550>I <00:38:17.725>create <00:38:17.900>another <00:38:18.075>extract.

888
00:38:19.635 --> 00:38:21.455
<00:38:19.635>Um, <00:38:19.915>I <00:38:20.195>implement <00:38:20.475>a <00:38:20.755>constructor <00:38:21.035>here.

889
00:38:21.535 --> 00:38:25.505
<00:38:21.535>I <00:38:21.634>say, <00:38:21.734>well, <00:38:21.835>all <00:38:21.935>I <00:38:22.035>want <00:38:22.134>to <00:38:22.234>do <00:38:22.335>is <00:38:22.435>I <00:38:22.535>want <00:38:22.634>to <00:38:22.734>get <00:38:22.835>into <00:38:22.935>bites

890
00:38:25.505 --> 00:38:27.145
<00:38:25.505>because <00:38:25.971>I'm <00:38:26.438>sending <00:38:26.905>bytes.

891
00:38:27.325 --> 00:38:29.025
<00:38:27.325>So <00:38:27.480>if <00:38:27.636>I'm <00:38:27.791>adding <00:38:27.947>here <00:38:28.102>a <00:38:28.258>vector <00:38:28.413>of <00:38:28.569>U <00:38:28.725>eight,

892
00:38:29.045 --> 00:38:31.065
<00:38:29.045>it <00:38:29.245>can <00:38:29.445>be <00:38:29.645>converted <00:38:29.845>into <00:38:30.045>a <00:38:30.245>byte <00:38:30.445>array.

893
00:38:31.215 --> 00:38:33.225
<00:38:31.215>This <00:38:31.415>is <00:38:31.615>why <00:38:31.815>I'm <00:38:32.015>creating <00:38:32.215>this <00:38:32.415>constructor <00:38:32.615>here.

894
00:38:34.045 --> 00:38:37.815
<00:38:34.045>And <00:38:34.220>then <00:38:34.395>I'm <00:38:34.570>implementing <00:38:34.745>the <00:38:34.920>inter <00:38:35.095>response <00:38:35.270>trait <00:38:35.445>from

895
00:38:38.045 --> 00:38:39.255
<00:38:38.045>exom <00:38:38.317>for <00:38:38.589>this <00:38:38.861>image <00:38:39.134>response.

896
00:38:39.375 --> 00:38:42.435
<00:38:39.375>I <00:38:39.550>say, <00:38:39.725>well, <00:38:39.900>once <00:38:40.075>you <00:38:40.250>have <00:38:40.425>this <00:38:40.600>image <00:38:40.775>response,

897
00:38:42.915 --> 00:38:45.435
<00:38:42.915>I <00:38:43.055>can <00:38:43.195>create <00:38:43.335>something <00:38:43.475>that <00:38:43.615>is <00:38:43.755>of <00:38:43.895>content, <00:38:44.035>type <00:38:44.175>image, <00:38:44.315>P

898
00:38:45.435 --> 00:38:47.115
<00:38:45.435>and <00:38:45.901>g, <00:38:46.368>the <00:38:46.835>bytes,

899
00:38:47.415 --> 00:38:50.315
<00:38:47.415>and <00:38:47.555>return <00:38:47.695>it <00:38:47.835>into <00:38:47.975>a <00:38:48.115>response <00:38:48.255>that <00:38:48.395>Exom <00:38:48.535>can <00:38:48.675>work <00:38:48.815>with.

900
00:38:50.315 --> 00:38:53.875
<00:38:50.315>Fantastic. <00:38:50.490>So <00:38:50.665>instead <00:38:50.840>of <00:38:51.015>having <00:38:51.190>this, <00:38:51.365>this <00:38:51.540>huge <00:38:51.715>okay,

901
00:38:53.935 --> 00:38:56.835
<00:38:53.935>and <00:38:54.090>topple <00:38:54.246>and <00:38:54.401>whatever, <00:38:54.557>all <00:38:54.712>I <00:38:54.868>do <00:38:55.023>here <00:38:55.179>is <00:38:55.335>saying

902
00:38:57.535 --> 00:38:59.075
<00:38:57.535>if <00:38:57.765>you <00:38:57.997>can <00:38:58.228>convert <00:38:58.459>it <00:38:58.689>into <00:38:58.921>bites,

903
00:38:59.075 --> 00:39:00.275
<00:38:59.075>then <00:38:59.254>you <00:38:59.435>can <00:38:59.615>be <00:38:59.795>an <00:38:59.975>image <00:39:00.155>response.

904
00:39:00.275 --> 00:39:03.595
<00:39:00.275>Please <00:39:00.508>send <00:39:00.741>an <00:39:00.975>image <00:39:01.208>response. <00:39:01.441>Cool <00:39:01.675>works.

905
00:39:04.825 --> 00:39:08.585
<00:39:04.825>I <00:39:04.980>created <00:39:05.136>my <00:39:05.291>own <00:39:05.447>type. <00:39:05.602>I <00:39:05.758>applied <00:39:05.913>a <00:39:06.069>foreign <00:39:06.225>trait.

906
00:39:08.885 --> 00:39:10.705
<00:39:08.885>But <00:39:09.085>what <00:39:09.285>I <00:39:09.485>can <00:39:09.685>do <00:39:09.885>now <00:39:10.085>is <00:39:10.285>also

907
00:39:11.415 --> 00:39:14.305
<00:39:11.415>convert <00:39:11.615>from <00:39:11.815>a <00:39:12.015>foreign <00:39:12.215>type <00:39:12.415>into <00:39:12.615>my <00:39:12.815>type.

908
00:39:14.945 --> 00:39:17.345
<00:39:14.945>I <00:39:15.225>implement <00:39:15.505>the <00:39:15.785>tri <00:39:16.065>from <00:39:16.345>trade

909
00:39:17.725 --> 00:39:19.905
<00:39:17.725>for <00:39:17.900>the <00:39:18.075>dynamic <00:39:18.250>image <00:39:18.424>from <00:39:18.600>an <00:39:18.775>entirely <00:39:18.950>different <00:39:19.125>library.

910
00:39:20.845 --> 00:39:22.745
<00:39:20.845>And <00:39:21.044>here <00:39:21.245>I <00:39:21.444>say, <00:39:21.645>okay, <00:39:21.845>well, <00:39:22.044>um, <00:39:22.245>um,

911
00:39:23.165 --> 00:39:24.585
<00:39:23.165>it <00:39:23.378>can <00:39:23.591>result <00:39:23.804>in <00:39:24.017>a <00:39:24.230>QB <00:39:24.443>error.

912
00:39:24.585 --> 00:39:27.185
<00:39:24.585>What <00:39:24.712>the <00:39:24.839>QBI <00:39:24.966>does, <00:39:25.094>I'm <00:39:25.221>going <00:39:25.348>to <00:39:25.475>tell <00:39:25.603>you <00:39:25.730>in <00:39:25.857>a <00:39:25.985>second.

913
00:39:27.845 --> 00:39:31.465
<00:39:27.845>Um, <00:39:27.984>and <00:39:28.125>I <00:39:28.265>call <00:39:28.404>image <00:39:28.544>response <00:39:28.685>TRI <00:39:28.825>from <00:39:28.964>with <00:39:29.105>the <00:39:29.245>reference

914
00:39:31.465 --> 00:39:33.745
<00:39:31.465>because <00:39:31.605>I <00:39:31.745>implement <00:39:31.885>the <00:39:32.025>same <00:39:32.165>thing <00:39:32.305>for <00:39:32.445>a <00:39:32.585>reference <00:39:32.725>as <00:39:32.865>well.

915
00:39:34.045 --> 00:39:37.985
<00:39:34.045>And <00:39:34.185>the <00:39:34.325>code <00:39:34.465>that's <00:39:34.605>coming <00:39:34.745>here <00:39:34.885>is <00:39:35.025>creating <00:39:35.165>a <00:39:35.305>new <00:39:35.445>vector,

916
00:39:38.485 --> 00:39:41.665
<00:39:38.485>uh, <00:39:38.612>creating <00:39:38.739>a <00:39:38.866>cursor <00:39:38.994>into <00:39:39.121>it, <00:39:39.248>write <00:39:39.375>it <00:39:39.503>into <00:39:39.630>that, <00:39:39.757>uh, <00:39:39.885>data

917
00:39:41.665 --> 00:39:43.265
<00:39:41.665>with <00:39:41.865>image <00:39:42.065>output <00:39:42.265>from <00:39:42.465>a <00:39:42.665>p <00:39:42.865>and <00:39:43.065>g

918
00:39:43.265 --> 00:39:45.025
<00:39:43.265>and <00:39:43.464>create <00:39:43.665>new <00:39:43.865>image <00:39:44.065>response <00:39:44.265>with <00:39:44.464>the <00:39:44.665>vector.

919
00:39:45.245 --> 00:39:48.705
<00:39:45.245>So <00:39:45.420>by <00:39:45.595>creating <00:39:45.770>this <00:39:45.944>tract, <00:39:46.120>by <00:39:46.295>creating <00:39:46.470>the <00:39:46.645>boundary

920
00:39:48.895 --> 00:39:52.065
<00:39:48.895>that <00:39:49.022>you <00:39:49.149>need <00:39:49.276>to <00:39:49.404>have <00:39:49.531>bites <00:39:49.658>to <00:39:49.785>be <00:39:49.913>a <00:39:50.040>proper <00:39:50.167>image <00:39:50.295>response,

921
00:39:52.665 --> 00:39:56.185
<00:39:52.665>I <00:39:52.805>can <00:39:52.945>now <00:39:53.085>create <00:39:53.225>a <00:39:53.365>conversion <00:39:53.505>trait <00:39:53.645>from <00:39:53.785>a <00:39:53.925>dynamic <00:39:54.065>image

922
00:39:56.415 --> 00:39:58.945
<00:39:56.415>into <00:39:56.615>this <00:39:56.815>particular <00:39:57.015>str <00:39:57.215>by <00:39:57.415>applying <00:39:57.615>more <00:39:57.815>trades.

923
00:39:59.645 --> 00:40:01.065
<00:39:59.645>Um, <00:39:59.858>I <00:40:00.071>also <00:40:00.284>have <00:40:00.497>the <00:40:00.710>QV <00:40:00.923>error.

924
00:40:01.065 --> 00:40:03.025
<00:40:01.065>That's <00:40:01.205>the <00:40:01.345>key <00:40:01.485>value <00:40:01.625>error <00:40:01.765>where <00:40:01.905>I <00:40:02.045>say, <00:40:02.185>well, <00:40:02.325>um, <00:40:02.465>if,

925
00:40:03.045 --> 00:40:04.545
<00:40:03.045>if <00:40:03.315>I'm <00:40:03.585>getting <00:40:03.855>some <00:40:04.125>image <00:40:04.395>errors,

926
00:40:04.545 --> 00:40:05.665
<00:40:04.545>because <00:40:04.746>that <00:40:04.948>can <00:40:05.149>happen <00:40:05.351>Now, <00:40:05.553>when,

927
00:40:05.665 --> 00:40:08.665
<00:40:05.665>when <00:40:05.865>I <00:40:06.065>convert <00:40:06.265>I <00:40:06.465>can <00:40:06.665>return <00:40:06.865>battery <00:40:07.065>request,

928
00:40:08.685 --> 00:40:09.945
<00:40:08.685>so <00:40:08.968>not <00:40:09.252>supported <00:40:09.535>or <00:40:09.819>whatever.

929
00:40:10.185 --> 00:40:15.075
<00:40:10.185>I <00:40:10.325>can <00:40:10.465>do <00:40:10.605>that <00:40:10.745>here <00:40:10.884>in, <00:40:11.025>in <00:40:11.165>the <00:40:11.305>from <00:40:11.445>image <00:40:11.585>error

930
00:40:15.095 --> 00:40:17.395
<00:40:15.095>to <00:40:15.234>QVR <00:40:15.375>thing, <00:40:15.515>the <00:40:15.654>same <00:40:15.794>error <00:40:15.935>handling <00:40:16.075>that <00:40:16.214>we <00:40:16.355>had <00:40:16.495>before.

931
00:40:18.015 --> 00:40:21.275
<00:40:18.015>And <00:40:18.142>now <00:40:18.269>a <00:40:18.396>bunch <00:40:18.524>of <00:40:18.651>lines <00:40:18.778>of <00:40:18.905>code <00:40:19.033>are <00:40:19.160>reduced <00:40:19.287>to <00:40:19.415>this.

932
00:40:21.955 --> 00:40:23.675
<00:40:21.955>I <00:40:22.188>say, <00:40:22.421>well, <00:40:22.654>if <00:40:22.888>it <00:40:23.121>works <00:40:23.355>out,

933
00:40:24.385 --> 00:40:26.845
<00:40:24.385>create <00:40:24.618>the <00:40:24.851>image <00:40:25.085>response <00:40:25.318>from <00:40:25.551>this <00:40:25.785>image

934
00:40:26.845 --> 00:40:29.005
<00:40:26.845>that <00:40:27.044>you <00:40:27.245>just <00:40:27.444>created <00:40:27.645>and <00:40:27.845>make <00:40:28.044>it <00:40:28.245>grayscale.

935
00:40:29.065 --> 00:40:30.885
<00:40:29.065>That's <00:40:29.265>all <00:40:29.465>I <00:40:29.665>do. <00:40:29.865>That's <00:40:30.065>all <00:40:30.265>I <00:40:30.465>do.

936
00:40:30.925 --> 00:40:32.765
<00:40:30.925>I <00:40:31.065>just <00:40:31.205>say, <00:40:31.345>I <00:40:31.485>want <00:40:31.625>to <00:40:31.765>have <00:40:31.905>an <00:40:32.045>image <00:40:32.185>response <00:40:32.325>from

937
00:40:32.765 --> 00:40:34.565
<00:40:32.765>that <00:40:33.045>image <00:40:33.325>in <00:40:33.605>the <00:40:33.884>grayscale <00:40:34.165>font.

938
00:40:35.325 --> 00:40:39.515
<00:40:35.325>Fantastic. <00:40:35.500>And <00:40:35.674>I <00:40:35.850>can <00:40:36.024>use <00:40:36.200>it <00:40:36.375>now <00:40:36.549>for <00:40:36.725>many,

939
00:40:39.515 --> 00:40:40.635
<00:40:39.515>many <00:40:40.019>more <00:40:40.523>functions.

940
00:40:40.635 --> 00:40:43.155
<00:40:40.635>If <00:40:40.790>I <00:40:40.946>want <00:40:41.101>to <00:40:41.257>resize <00:40:41.412>it, <00:40:41.568>it's <00:40:41.723>the <00:40:41.879>same <00:40:42.035>line.

941
00:40:43.435 --> 00:40:44.755
<00:40:43.435>I <00:40:43.672>just <00:40:43.910>see <00:40:44.147>image <00:40:44.385>do <00:40:44.623>resize.

942
00:40:44.975 --> 00:40:47.675
<00:40:44.975>If <00:40:45.102>I <00:40:45.229>want <00:40:45.356>to <00:40:45.484>skew <00:40:45.611>it <00:40:45.738>to <00:40:45.865>change <00:40:45.993>pixel, <00:40:46.120>to <00:40:46.247>invert <00:40:46.375>it,

943
00:40:47.675 --> 00:40:50.715
<00:40:47.675>to <00:40:47.830>apply <00:40:47.986>a <00:40:48.141>SAP <00:40:48.297>filter, <00:40:48.452>whatever, <00:40:48.608>it's <00:40:48.763>the <00:40:48.919>same <00:40:49.075>line.

944
00:40:50.995 --> 00:40:52.675
<00:40:50.995>I <00:40:51.194>create <00:40:51.395>an <00:40:51.595>image <00:40:51.795>response <00:40:51.995>from <00:40:52.194>that <00:40:52.395>image

945
00:40:52.675 --> 00:40:56.015
<00:40:52.675>that <00:40:52.815>applied <00:40:52.955>the <00:40:53.095>method, <00:40:53.235>and <00:40:53.375>I <00:40:53.515>ref, <00:40:53.655>it's <00:40:53.795>a <00:40:53.935>little <00:40:54.075>bit

946
00:40:56.015 --> 00:40:58.535
<00:40:56.015>of <00:40:56.154>refactoring <00:40:56.295>just <00:40:56.435>applying <00:40:56.575>a <00:40:56.714>bunch <00:40:56.855>of <00:40:56.995>common <00:40:57.134>traits <00:40:57.275>to <00:40:57.415>it,

947
00:41:00.855 --> 00:41:02.155
<00:41:00.855>and <00:41:01.050>your <00:41:01.245>code <00:41:01.440>becomes <00:41:01.635>so <00:41:01.830>much <00:41:02.025>more

948
00:41:02.155 --> 00:41:03.235
<00:41:02.155>readable <00:41:02.349>and <00:41:02.543>so <00:41:02.738>much <00:41:02.932>more <00:41:03.127>usable.

949
00:41:03.895 --> 00:41:06.475
<00:41:03.895>I'm <00:41:04.035>still <00:41:04.175>a <00:41:04.315>little <00:41:04.455>bit <00:41:04.595>bumped <00:41:04.735>by <00:41:04.875>the <00:41:05.015>whole, <00:41:05.155>you <00:41:05.295>know,

950
00:41:06.575 --> 00:41:09.435
<00:41:06.575>is <00:41:06.714>it <00:41:06.855>available <00:41:06.995>or <00:41:07.134>not <00:41:07.274>thingy, <00:41:07.415>which <00:41:07.555>means <00:41:07.694>that <00:41:07.835>I'm <00:41:07.975>going

951
00:41:09.435 --> 00:41:11.475
<00:41:09.435>to <00:41:09.668>change, <00:41:09.901>uh, <00:41:10.134>my <00:41:10.368>database, <00:41:10.601>I'm <00:41:10.835>going

952
00:41:11.475 --> 00:41:12.875
<00:41:11.475>to <00:41:11.727>change <00:41:11.979>my, <00:41:12.231>my <00:41:12.483>storage <00:41:12.735>type.

953
00:41:13.345 --> 00:41:17.075
<00:41:13.345>Instead <00:41:13.500>of <00:41:13.656>just <00:41:13.811>throwing <00:41:13.967>some <00:41:14.122>bytes <00:41:14.278>in <00:41:14.433>a <00:41:14.589>content <00:41:14.745>type,

954
00:41:17.115 --> 00:41:19.875
<00:41:17.115>I <00:41:17.231>say, <00:41:17.348>well, <00:41:17.464>all <00:41:17.581>I <00:41:17.698>want <00:41:17.814>to <00:41:17.931>do <00:41:18.048>is <00:41:18.165>either <00:41:18.281>have <00:41:18.398>some <00:41:18.515>bytes

955
00:41:19.875 --> 00:41:21.195
<00:41:19.875>and <00:41:20.044>I <00:41:20.214>don't <00:41:20.384>care <00:41:20.553>what <00:41:20.723>those <00:41:20.893>bytes <00:41:21.063>are,

956
00:41:21.535 --> 00:41:22.995
<00:41:21.535>or <00:41:21.722>to <00:41:21.910>have <00:41:22.098>an <00:41:22.285>image <00:41:22.473>which <00:41:22.661>I <00:41:22.848>want

957
00:41:22.995 --> 00:41:25.355
<00:41:22.995>to <00:41:23.170>convert <00:41:23.345>into <00:41:23.520>a <00:41:23.694>dynamic <00:41:23.870>image <00:41:24.045>before <00:41:24.220>the <00:41:24.395>fact.

958
00:41:26.715 --> 00:41:31.265
<00:41:26.715>So <00:41:26.842>when <00:41:26.969>I <00:41:27.096>store <00:41:27.224>something <00:41:27.351>now, <00:41:27.478>um, <00:41:27.605>I'm <00:41:27.733>having <00:41:27.860>a <00:41:27.987>post <00:41:28.115>Q

959
00:41:31.265 --> 00:41:33.285
<00:41:31.265>and <00:41:31.420>I <00:41:31.576>say, <00:41:31.731>well <00:41:31.887>get <00:41:32.042>the <00:41:32.198>store <00:41:32.353>type <00:41:32.509>with, <00:41:32.665>gets

960
00:41:33.285 --> 00:41:34.525
<00:41:33.285>to <00:41:33.471>a <00:41:33.657>type <00:41:33.843>of <00:41:34.029>the <00:41:34.215>content <00:41:34.401>type.

961
00:41:34.785 --> 00:41:38.045
<00:41:34.785>And <00:41:34.924>I <00:41:35.065>either <00:41:35.205>create, <00:41:35.345>um, <00:41:35.484>an <00:41:35.625>image <00:41:35.765>where <00:41:35.904>I <00:41:36.045>already <00:41:36.185>converted,

962
00:41:38.555 --> 00:41:43.165
<00:41:38.555>converted <00:41:38.710>the <00:41:38.866>image <00:41:39.021>into, <00:41:39.177>um, <00:41:39.332>um, <00:41:39.488>into <00:41:39.643>a <00:41:39.799>dynamic <00:41:39.955>image.

963
00:41:43.165 --> 00:41:44.165
<00:41:43.165>So <00:41:43.465>this <00:41:43.765>already <00:41:44.065>happened.

964
00:41:44.315 --> 00:41:46.285
<00:41:44.315>Otherwise, <00:41:44.515>just <00:41:44.715>stick <00:41:44.915>with <00:41:45.115>your, <00:41:45.315>with <00:41:45.515>your <00:41:45.715>types

965
00:41:46.705 --> 00:41:51.445
<00:41:46.705>and <00:41:46.904>store <00:41:47.105>this <00:41:47.305>into <00:41:47.505>my <00:41:47.705>key <00:41:47.904>value <00:41:48.105>database,

966
00:41:52.095 --> 00:41:54.765
<00:41:52.095>which <00:41:52.294>means <00:41:52.495>that <00:41:52.694>now <00:41:52.895>when <00:41:53.095>I'm <00:41:53.294>calling <00:41:53.495>grayscale,

967
00:41:55.265 --> 00:41:56.285
<00:41:55.265>all <00:41:55.417>I <00:41:55.571>need <00:41:55.723>to <00:41:55.877>do <00:41:56.029>is <00:41:56.183>check.

968
00:41:56.545 --> 00:41:58.245
<00:41:56.545>Is <00:41:56.720>it <00:41:56.895>an <00:41:57.070>image <00:41:57.245>that <00:41:57.420>I <00:41:57.595>can <00:41:57.770>work <00:41:57.945>with?

969
00:41:58.245 --> 00:42:00.405
<00:41:58.245>Then <00:41:58.478>create <00:41:58.711>an <00:41:58.944>image <00:41:59.178>response <00:41:59.411>in <00:41:59.645>grayscale.

970
00:42:00.795 --> 00:42:03.365
<00:42:00.795>Otherwise <00:42:00.970>say, <00:42:01.145>well, <00:42:01.320>the <00:42:01.495>key <00:42:01.670>has <00:42:01.845>not <00:42:02.020>been <00:42:02.195>found,

971
00:42:04.145 --> 00:42:06.725
<00:42:04.145>or, <00:42:04.320>um, <00:42:04.495>the <00:42:04.670>key <00:42:04.845>can't <00:42:05.020>be <00:42:05.195>converted <00:42:05.370>or <00:42:05.545>whatever.

972
00:42:07.425 --> 00:42:10.815
<00:42:07.425>And <00:42:07.580>now <00:42:07.736>it <00:42:07.891>becomes <00:42:08.047>obviously <00:42:08.202>here <00:42:08.358>what <00:42:08.513>it <00:42:08.669>does, <00:42:08.825>you

973
00:42:11.405 --> 00:42:14.255
<00:42:11.405>reflected <00:42:11.560>a <00:42:11.716>huge <00:42:11.871>pile <00:42:12.027>of <00:42:12.182>code <00:42:12.338>into <00:42:12.493>something <00:42:12.649>that's <00:42:12.805>easier

974
00:42:14.275 --> 00:42:17.055
<00:42:14.275>to <00:42:14.430>understand, <00:42:14.586>easier <00:42:14.741>to <00:42:14.897>reason <00:42:15.052>about <00:42:15.208>where <00:42:15.363>you <00:42:15.519>have <00:42:15.675>types

975
00:42:17.085 --> 00:42:19.735
<00:42:17.085>that <00:42:17.212>tell <00:42:17.339>you <00:42:17.466>a <00:42:17.594>story <00:42:17.721>that <00:42:17.848>tell <00:42:17.975>you <00:42:18.103>what's <00:42:18.230>going <00:42:18.357>on <00:42:18.485>there

976
00:42:20.195 --> 00:42:22.415
<00:42:20.195>and <00:42:20.475>functionality <00:42:20.755>that <00:42:21.035>you <00:42:21.315>can <00:42:21.595>reuse

977
00:42:22.415 --> 00:42:23.655
<00:42:22.415>for <00:42:22.694>multiple <00:42:22.973>endpoints <00:42:23.252>as <00:42:23.531>well.

978
00:42:24.875 --> 00:42:26.055
<00:42:24.875>One <00:42:25.140>last <00:42:25.406>bit. <00:42:25.671>One <00:42:25.937>thing

979
00:42:26.055 --> 00:42:28.455
<00:42:26.055>that <00:42:26.254>I <00:42:26.455>also <00:42:26.654>liked <00:42:26.855>is <00:42:27.055>transitive <00:42:27.254>trade <00:42:27.455>implementations.

980
00:42:28.645 --> 00:42:30.055
<00:42:28.645>This <00:42:28.962>is <00:42:29.279>also <00:42:29.596>very <00:42:29.913>great.

981
00:42:30.355 --> 00:42:33.615
<00:42:30.355>I'm <00:42:30.482>having <00:42:30.609>here <00:42:30.736>a <00:42:30.864>shared <00:42:30.991>state, <00:42:31.118>a <00:42:31.245>custom <00:42:31.373>type <00:42:31.500>that <00:42:31.627>I <00:42:31.755>created

982
00:42:33.965 --> 00:42:36.135
<00:42:33.965>that <00:42:34.315>implements, <00:42:34.665>um, <00:42:35.015>an <00:42:35.365>arc.

983
00:42:36.395 --> 00:42:38.735
<00:42:36.395>Arc <00:42:36.570>is <00:42:36.745>an <00:42:36.920>atomic <00:42:37.095>reference <00:42:37.270>counter <00:42:37.445>used <00:42:37.620>for <00:42:37.795>multithreading.

984
00:42:38.735 --> 00:42:41.055
<00:42:38.735>If <00:42:38.875>you <00:42:39.015>want <00:42:39.155>to <00:42:39.295>share <00:42:39.435>the <00:42:39.575>same <00:42:39.715>thing <00:42:39.855>across <00:42:39.995>multiple <00:42:40.135>threads

985
00:42:41.365 --> 00:42:45.295
<00:42:41.365>with <00:42:41.492>an <00:42:41.619>RW <00:42:41.746>lock, <00:42:41.874>which <00:42:42.001>means <00:42:42.128>that <00:42:42.255>I <00:42:42.383>want <00:42:42.510>to <00:42:42.637>have, <00:42:42.765>um,

986
00:42:45.525 --> 00:42:48.455
<00:42:45.525>exclusive <00:42:45.805>right <00:42:46.085>axis <00:42:46.365>to <00:42:46.645>the <00:42:46.925>data

987
00:42:48.805 --> 00:42:50.455
<00:42:48.805>with <00:42:49.004>the <00:42:49.205>app <00:42:49.404>state <00:42:49.605>that <00:42:49.805>I <00:42:50.004>just <00:42:50.205>created.

988
00:42:51.475 --> 00:42:54.095
<00:42:51.475>The <00:42:51.650>app <00:42:51.825>state <00:42:52.000>is <00:42:52.174>this <00:42:52.350>one <00:42:52.525>hash <00:42:52.700>map <00:42:52.875>peer,

989
00:42:54.115 --> 00:42:57.415
<00:42:54.115>and <00:42:54.242>all <00:42:54.369>I <00:42:54.496>do <00:42:54.624>is <00:42:54.751>I <00:42:54.878>derive <00:42:55.005>the <00:42:55.133>default <00:42:55.260>trade <00:42:55.387>from <00:42:55.515>it.

990
00:42:58.275 --> 00:43:01.975
<00:42:58.275>Now, <00:42:58.415>the <00:42:58.555>default <00:42:58.695>trade, <00:42:58.835>what <00:42:58.975>it <00:42:59.115>does, <00:42:59.255>it <00:42:59.395>creates <00:42:59.535>a <00:42:59.675>structure

991
00:43:01.975 --> 00:43:04.455
<00:43:01.975>with <00:43:02.174>default <00:43:02.375>parameters <00:43:02.575>that <00:43:02.775>can <00:43:02.975>be <00:43:03.174>empty <00:43:03.375>parameters,

992
00:43:04.455 --> 00:43:07.655
<00:43:04.455>just <00:43:04.630>creating <00:43:04.805>the <00:43:04.980>memory <00:43:05.154>of <00:43:05.330>whatever, <00:43:05.505>it <00:43:05.680>doesn't <00:43:05.855>matter.

993
00:43:07.715 --> 00:43:10.375
<00:43:07.715>It <00:43:07.915>just <00:43:08.115>says, <00:43:08.315>well, <00:43:08.515>that's <00:43:08.715>the <00:43:08.915>default <00:43:09.115>constructor.

994
00:43:10.715 --> 00:43:12.975
<00:43:10.715>That's <00:43:10.855>what <00:43:10.995>you <00:43:11.135>should <00:43:11.275>get <00:43:11.415>if <00:43:11.555>you <00:43:11.695>don't <00:43:11.835>get <00:43:11.975>any <00:43:12.115>parameters.

995
00:43:14.555 --> 00:43:17.775
<00:43:14.555>Now, <00:43:14.730>my <00:43:14.904>app <00:43:15.080>state <00:43:15.254>implements <00:43:15.430>default <00:43:15.605>hash <00:43:15.779>map <00:43:15.955>implements,

996
00:43:17.775 --> 00:43:21.855
<00:43:17.775>default <00:43:17.975>arc <00:43:18.175>implements <00:43:18.375>default <00:43:18.575>RW <00:43:18.775>log <00:43:18.975>implements <00:43:19.175>default.

997
00:43:22.155 --> 00:43:24.655
<00:43:22.155>And <00:43:22.282>now <00:43:22.409>I <00:43:22.536>can <00:43:22.664>create <00:43:22.791>a <00:43:22.918>type <00:43:23.045>S <00:43:23.173>where <00:43:23.300>I <00:43:23.427>can <00:43:23.555>create

998
00:43:25.955 --> 00:43:29.515
<00:43:25.955>a <00:43:26.042>new <00:43:26.130>app <00:43:26.217>state <00:43:26.305>with <00:43:26.392>a <00:43:26.480>new <00:43:26.567>hash <00:43:26.654>map <00:43:26.742>in <00:43:26.830>an <00:43:26.917>RW <00:43:27.005>log <00:43:27.092>in <00:43:27.180>an <00:43:27.267>A <00:43:27.355>RC,

999
00:43:29.935 --> 00:43:32.475
<00:43:29.935>but <00:43:30.168>just <00:43:30.401>seeing <00:43:30.634>share <00:43:30.868>state <00:43:31.101>current <00:43:31.335>default,

1000
00:43:33.005 --> 00:43:34.415
<00:43:33.005>they <00:43:33.258>all <00:43:33.512>implement <00:43:33.766>the <00:43:34.020>same <00:43:34.274>trait.

1001
00:43:34.835 --> 00:43:37.855
<00:43:34.835>And <00:43:34.962>with <00:43:35.089>that, <00:43:35.216>I <00:43:35.344>can <00:43:35.471>make <00:43:35.598>sure <00:43:35.725>that <00:43:35.853>I'm <00:43:35.980>creating <00:43:36.107>an <00:43:36.235>object

1002
00:43:37.855 --> 00:43:39.095
<00:43:37.855>with <00:43:38.134>all <00:43:38.413>those <00:43:38.692>helper <00:43:38.971>types.

1003
00:43:39.205 --> 00:43:42.175
<00:43:39.205>It's <00:43:39.380>a <00:43:39.555>RC <00:43:39.730>RW <00:43:39.904>log <00:43:40.080>app, <00:43:40.255>state <00:43:40.430>hash <00:43:40.605>map,

1004
00:43:43.625 --> 00:43:44.835
<00:43:43.625>just <00:43:43.842>with <00:43:44.060>one <00:43:44.278>line <00:43:44.496>of <00:43:44.714>code.

1005
00:43:47.885 --> 00:43:50.115
<00:43:47.885>Sorry, <00:43:48.085>it's, <00:43:48.285>I'm <00:43:48.485>getting <00:43:48.685>really <00:43:48.885>excited <00:43:49.085>about <00:43:49.285>it.

1006
00:43:51.765 --> 00:43:55.345
<00:43:51.765>Um, <00:43:51.881>all <00:43:51.998>right. <00:43:52.115>Uh, <00:43:52.231>I <00:43:52.348>need <00:43:52.464>to <00:43:52.581>talk <00:43:52.698>a <00:43:52.815>little <00:43:52.931>bit <00:43:53.048>about <00:43:53.165>acrost.

1007
00:43:55.385 --> 00:43:56.945
<00:43:55.385>I <00:43:55.585>don't <00:43:55.785>have <00:43:55.985>time <00:43:56.185>to <00:43:56.385>go <00:43:56.585>into <00:43:56.785>detail.

1008
00:43:57.125 --> 00:44:01.425
<00:43:57.125>I'm, <00:43:57.241>um, <00:43:57.358>um, <00:43:57.475>I, <00:43:57.591>I <00:43:57.708>can <00:43:57.825>if <00:43:57.941>you <00:43:58.058>like, <00:43:58.175>um, <00:43:58.291>at <00:43:58.408>another <00:43:58.525>time.

1009
00:44:01.965 --> 00:44:05.345
<00:44:01.965>Um, <00:44:02.165>but <00:44:02.365>it's <00:44:02.565>also <00:44:02.765>again <00:44:02.965>about <00:44:03.165>language <00:44:03.365>features.

1010
00:44:05.345 --> 00:44:06.505
<00:44:05.345>And <00:44:05.519>this <00:44:05.692>has <00:44:05.866>been <00:44:06.041>tried <00:44:06.215>and <00:44:06.389>tested,

1011
00:44:06.605 --> 00:44:09.785
<00:44:06.605>and <00:44:06.745>you <00:44:06.885>could <00:44:07.025>really <00:44:07.165>watch <00:44:07.305>the <00:44:07.445>RAs <00:44:07.585>team <00:44:07.725>working <00:44:07.865>on <00:44:08.005>that.

1012
00:44:10.105 --> 00:44:11.865
<00:44:10.105>RA <00:44:10.338>has <00:44:10.571>async <00:44:10.805>in <00:44:11.038>the <00:44:11.271>wait <00:44:11.505>support.

1013
00:44:12.295 --> 00:44:15.065
<00:44:12.295>They <00:44:12.435>don't <00:44:12.575>have <00:44:12.715>a <00:44:12.855>runtime <00:44:12.995>built <00:44:13.135>in, <00:44:13.275>which <00:44:13.415>means <00:44:13.555>you <00:44:13.695>need

1014
00:44:15.065 --> 00:44:16.385
<00:44:15.065>to <00:44:15.302>add <00:44:15.540>the <00:44:15.777>third <00:44:16.015>party <00:44:16.253>runtime

1015
00:44:16.385 --> 00:44:18.105
<00:44:16.385>to <00:44:16.540>make <00:44:16.696>async <00:44:16.851>in <00:44:17.007>the <00:44:17.162>wait <00:44:17.318>work <00:44:17.473>in <00:44:17.629>your <00:44:17.785>rust

1016
00:44:18.105 --> 00:44:19.465
<00:44:18.105>application <00:44:18.513>for <00:44:18.921>various <00:44:19.329>reasons.

1017
00:44:20.685 --> 00:44:23.425
<00:44:20.685>But <00:44:20.884>RAs <00:44:21.085>decided <00:44:21.285>to <00:44:21.485>create <00:44:21.685>the <00:44:21.884>future <00:44:22.085>trade.

1018
00:44:24.245 --> 00:44:28.975
<00:44:24.245>Um, <00:44:24.384>and <00:44:24.525>with <00:44:24.665>that <00:44:24.805>future <00:44:24.944>trade <00:44:25.085>you <00:44:25.225>make, <00:44:25.365>first <00:44:25.505>of <00:44:25.645>all,

1019
00:44:29.025 --> 00:44:32.065
<00:44:29.025>agent <00:44:29.200>Kuwait <00:44:29.375>as <00:44:29.550>a <00:44:29.725>syntax <00:44:29.900>compatible <00:44:30.075>with <00:44:30.250>any <00:44:30.425>runtime,

1020
00:44:32.765 --> 00:44:35.665
<00:44:32.765>but <00:44:32.904>you <00:44:33.045>also <00:44:33.185>can <00:44:33.325>abstract <00:44:33.464>over <00:44:33.605>the <00:44:33.745>future <00:44:33.884>trade <00:44:34.025>to <00:44:34.165>work

1021
00:44:35.665 --> 00:44:37.345
<00:44:35.665>with <00:44:36.131>potentially <00:44:36.598>any <00:44:37.065>runtime.

1022
00:44:38.205 --> 00:44:39.265
<00:44:38.205>Um, <00:44:39.158>and,

1023
00:44:40.675 --> 00:44:42.895
<00:44:40.675>and <00:44:40.830>this <00:44:40.986>is <00:44:41.141>also <00:44:41.297>something <00:44:41.452>where <00:44:41.608>you <00:44:41.763>can <00:44:41.919>really <00:44:42.075>see

1024
00:44:42.955 --> 00:44:47.625
<00:44:42.955>how <00:44:43.095>a <00:44:43.235>trade <00:44:43.375>at <00:44:43.515>the <00:44:43.654>core <00:44:43.795>of <00:44:43.935>a <00:44:44.075>language <00:44:44.215>feature <00:44:44.355>managed

1025
00:44:47.625 --> 00:44:52.415
<00:44:47.625>to <00:44:47.780>create <00:44:47.936>an <00:44:48.091>entire <00:44:48.247>ecosystem <00:44:48.402>of <00:44:48.558>rust <00:44:48.713>libraries, <00:44:48.869>rust <00:44:49.025>code,

1026
00:44:52.835 --> 00:44:56.095
<00:44:52.835>um, <00:44:53.068>uh, <00:44:53.301>frameworks, <00:44:53.535>et <00:44:53.768>cetera, <00:44:54.001>Syntech <00:44:54.235>obviously

1027
00:44:56.835 --> 00:44:59.455
<00:44:56.835>by <00:44:56.990>focusing <00:44:57.146>on <00:44:57.301>the <00:44:57.457>proper <00:44:57.612>design <00:44:57.768>of <00:44:57.923>one <00:44:58.079>single <00:44:58.235>trade.

1028
00:45:00.035 --> 00:45:01.855
<00:45:00.035>Um, <00:45:00.190>if <00:45:00.346>you <00:45:00.501>want <00:45:00.657>to <00:45:00.812>learn <00:45:00.968>more <00:45:01.123>about <00:45:01.279>Asian <00:45:01.435>class,

1029
00:45:01.855 --> 00:45:03.775
<00:45:01.855>please <00:45:02.055>don't <00:45:02.255>hesitate <00:45:02.455>to <00:45:02.655>catch <00:45:02.855>up <00:45:03.055>on <00:45:03.255>me.

1030
00:45:04.055 --> 00:45:05.135
<00:45:04.055>I <00:45:04.193>love <00:45:04.332>to <00:45:04.471>talk <00:45:04.610>about <00:45:04.749>that <00:45:04.888>as <00:45:05.027>well.

1031
00:45:05.865 --> 00:45:08.845
<00:45:05.865>All <00:45:06.040>right, <00:45:06.214>now <00:45:06.390>I'm <00:45:06.564>wrapping <00:45:06.740>up <00:45:06.915>two <00:45:07.089>wrap <00:45:07.265>up.

1032
00:45:09.195 --> 00:45:11.005
<00:45:09.195>There's <00:45:09.350>a <00:45:09.506>lot <00:45:09.661>of <00:45:09.817>stuff <00:45:09.972>that <00:45:10.128>I <00:45:10.283>have <00:45:10.439>left <00:45:10.595>out.

1033
00:45:11.005 --> 00:45:14.365
<00:45:11.005>First <00:45:11.132>of <00:45:11.259>all, <00:45:11.386>I <00:45:11.514>didn't <00:45:11.641>go <00:45:11.768>into, <00:45:11.895>um, <00:45:12.023>um, <00:45:12.150>into <00:45:12.277>the <00:45:12.405>details

1034
00:45:14.365 --> 00:45:15.565
<00:45:14.365>of, <00:45:14.634>I'm <00:45:14.904>sorry <00:45:15.175>about <00:45:15.445>that.

1035
00:45:15.925 --> 00:45:18.005
<00:45:15.925>I <00:45:16.158>haven't <00:45:16.391>spoken <00:45:16.625>about <00:45:16.858>reflexive <00:45:17.091>trade <00:45:17.325>implementations.

1036
00:45:18.625 --> 00:45:20.245
<00:45:18.625>You <00:45:18.858>can <00:45:19.091>implement <00:45:19.325>the <00:45:19.558>trade <00:45:19.791>based <00:45:20.025>on

1037
00:45:20.245 --> 00:45:21.445
<00:45:20.245>implementation <00:45:20.605>of <00:45:20.965>another <00:45:21.325>trade.

1038
00:45:21.785 --> 00:45:23.085
<00:45:21.785>How <00:45:22.077>cool <00:45:22.370>is <00:45:22.662>that? <00:45:22.955>Um,

1039
00:45:23.165 --> 00:45:24.845
<00:45:23.165>I <00:45:23.340>haven't <00:45:23.515>spoken <00:45:23.690>about <00:45:23.865>the <00:45:24.040>power <00:45:24.215>of <00:45:24.390>trade <00:45:24.565>bonds.

1040
00:45:24.885 --> 00:45:26.485
<00:45:24.885>I <00:45:25.118>haven't <00:45:25.351>spoken <00:45:25.585>about <00:45:25.818>trade <00:45:26.051>o <00:45:26.285>objects,

1041
00:45:26.485 --> 00:45:28.405
<00:45:26.485>and <00:45:26.625>I'm <00:45:26.765>pretty <00:45:26.905>sure <00:45:27.045>I <00:45:27.185>left <00:45:27.325>out <00:45:27.465>many, <00:45:27.605>many <00:45:27.745>more <00:45:27.885>things.

1042
00:45:29.425 --> 00:45:31.805
<00:45:29.425>Um, <00:45:29.532>but <00:45:29.640>I <00:45:29.748>also <00:45:29.855>left <00:45:29.963>out, <00:45:30.071>you <00:45:30.178>know, <00:45:30.286>a <00:45:30.394>little <00:45:30.501>down <00:45:30.609>at <00:45:30.717>the <00:45:30.825>end.

1043
00:45:32.365 --> 00:45:35.645
<00:45:32.365>I <00:45:32.504>need <00:45:32.645>to <00:45:32.785>structure <00:45:32.924>my <00:45:33.064>talks <00:45:33.205>better. <00:45:33.345>It's <00:45:33.484>not <00:45:33.625>all <00:45:33.765>roses.

1044
00:45:35.865 --> 00:45:38.045
<00:45:35.865>Um, <00:45:36.145>traits <00:45:36.424>can <00:45:36.705>be <00:45:36.984>very <00:45:37.265>complex,

1045
00:45:38.045 --> 00:45:40.765
<00:45:38.045>especially <00:45:38.185>if <00:45:38.325>you <00:45:38.465>go <00:45:38.605>into <00:45:38.745>Async, <00:45:38.885>it <00:45:39.025>can <00:45:39.165>be <00:45:39.305>very <00:45:39.445>complex,

1046
00:45:40.935 --> 00:45:43.845
<00:45:40.935>which <00:45:41.110>also <00:45:41.285>means <00:45:41.460>they <00:45:41.634>create <00:45:41.810>very <00:45:41.985>complex <00:45:42.160>error <00:45:42.335>messages.

1047
00:45:43.875 --> 00:45:46.965
<00:45:43.875>Rust <00:45:44.030>is <00:45:44.186>well <00:45:44.341>known <00:45:44.497>and <00:45:44.652>laughed <00:45:44.808>for <00:45:44.963>its <00:45:45.119>error <00:45:45.275>messages.

1048
00:45:48.375 --> 00:45:51.855
<00:45:48.375>But <00:45:48.502>if <00:45:48.629>you <00:45:48.756>have, <00:45:48.884>if <00:45:49.011>you <00:45:49.138>have <00:45:49.265>huge <00:45:49.393>trade, <00:45:49.520>uh, <00:45:49.647>uh, <00:45:49.775>uh,

1049
00:45:51.855 --> 00:45:53.695
<00:45:51.855>complex <00:45:52.010>trades <00:45:52.166>into <00:45:52.321>data, <00:45:52.477>they <00:45:52.632>don't <00:45:52.788>help <00:45:52.943>you <00:45:53.099>at <00:45:53.255>all.

1050
00:45:54.195 --> 00:45:57.095
<00:45:54.195>Uh, <00:45:54.350>you <00:45:54.506>need <00:45:54.661>then <00:45:54.817>need <00:45:54.972>to <00:45:55.128>have <00:45:55.283>helper, <00:45:55.439>uh, <00:45:55.595>libraries

1051
00:45:57.095 --> 00:45:58.895
<00:45:57.095>to <00:45:57.234>tell <00:45:57.375>you, <00:45:57.515>well, <00:45:57.654>I <00:45:57.794>can <00:45:57.935>interpret <00:45:58.075>the <00:45:58.214>error <00:45:58.355>for <00:45:58.495>you

1052
00:45:58.895 --> 00:45:59.935
<00:45:58.895>and <00:45:59.051>tell <00:45:59.207>you <00:45:59.363>what's <00:45:59.519>actually <00:45:59.675>going <00:45:59.831>on,

1053
00:46:00.155 --> 00:46:01.215
<00:46:00.155>but <00:46:00.345>this <00:46:00.536>is <00:46:00.727>being <00:46:00.918>worked <00:46:01.109>on.

1054
00:46:01.315 --> 00:46:04.575
<00:46:01.315>So, <00:46:01.470>so <00:46:01.626>people <00:46:01.781>around <00:46:01.937>the <00:46:02.092>error <00:46:02.248>hand <00:46:02.403>group, <00:46:02.559>um, <00:46:02.715>um,

1055
00:46:04.675 --> 00:46:08.535
<00:46:04.675>are <00:46:04.850>working <00:46:05.025>on <00:46:05.200>improving <00:46:05.375>those <00:46:05.550>error <00:46:05.725>messages <00:46:05.900>also <00:46:06.075>don't

1056
00:46:08.535 --> 00:46:09.815
<00:46:08.535>mistake <00:46:08.919>traits <00:46:09.303>for <00:46:09.687>interfaces.

1057
00:46:09.815 --> 00:46:11.455
<00:46:09.815>They're <00:46:10.095>not <00:46:10.375>interface <00:46:10.655>is <00:46:10.935>not <00:46:11.215>interfaces.

1058
00:46:11.455 --> 00:46:12.455
<00:46:11.455>They're <00:46:11.680>much, <00:46:11.904>much <00:46:12.130>more <00:46:12.355>powerful

1059
00:46:12.455 --> 00:46:13.735
<00:46:12.455>and <00:46:12.743>they <00:46:13.031>have <00:46:13.319>other <00:46:13.607>limitations.

1060
00:46:14.825 --> 00:46:16.055
<00:46:14.825>Personally, <00:46:15.378>I <00:46:15.932>feel

1061
00:46:16.055 --> 00:46:18.055
<00:46:16.055>that <00:46:16.194>trade <00:46:16.335>discovery <00:46:16.475>is <00:46:16.615>still <00:46:16.754>a <00:46:16.895>little <00:46:17.035>bit <00:46:17.174>of <00:46:17.315>a <00:46:17.455>problem.

1062
00:46:18.155 --> 00:46:19.535
<00:46:18.155>You <00:46:18.403>need <00:46:18.651>to <00:46:18.900>understand <00:46:19.148>the <00:46:19.397>documentation.

1063
00:46:19.675 --> 00:46:23.295
<00:46:19.675>Codera <00:46:19.875>analyzer <00:46:20.075>as <00:46:20.275>a <00:46:20.475>tool, <00:46:20.675>um, <00:46:20.875>helps <00:46:21.075>create

1064
00:46:23.855 --> 00:46:26.295
<00:46:23.855>discovering <00:46:24.055>traits, <00:46:24.255>but <00:46:24.455>you <00:46:24.655>need <00:46:24.855>to <00:46:25.055>understand <00:46:25.255>it.

1065
00:46:26.295 --> 00:46:28.215
<00:46:26.295>You <00:46:26.528>need <00:46:26.761>to <00:46:26.995>look <00:46:27.228>for <00:46:27.461>them. <00:46:27.695>Um,

1066
00:46:28.995 --> 00:46:32.055
<00:46:28.995>and <00:46:29.134>you <00:46:29.275>know, <00:46:29.415>at <00:46:29.555>one <00:46:29.694>point <00:46:29.835>you <00:46:29.975>realize <00:46:30.115>how <00:46:30.255>traits <00:46:30.395>work

1067
00:46:32.055 --> 00:46:33.375
<00:46:32.055>underneath <00:46:32.292>and <00:46:32.530>you <00:46:32.767>can <00:46:33.005>read <00:46:33.243>them,

1068
00:46:33.375 --> 00:46:35.495
<00:46:33.375>but <00:46:33.515>until <00:46:33.655>then, <00:46:33.795>they <00:46:33.935>can <00:46:34.075>feel <00:46:34.215>a <00:46:34.355>little <00:46:34.495>bit <00:46:34.635>like <00:46:34.775>magic.

1069
00:46:37.145 --> 00:46:40.135
<00:46:37.145>Which <00:46:37.345>brings <00:46:37.545>me <00:46:37.745>to <00:46:37.945>the <00:46:38.145>conclusion, <00:46:38.345>um, <00:46:38.545>traits

1070
00:46:40.755 --> 00:46:42.735
<00:46:40.755>are <00:46:40.988>an <00:46:41.221>integral <00:46:41.455>feature <00:46:41.688>thrust <00:46:41.921>not <00:46:42.155>only

1071
00:46:42.735 --> 00:46:45.175
<00:46:42.735>to <00:46:42.910>abstract <00:46:43.085>behavior, <00:46:43.260>but <00:46:43.435>also <00:46:43.610>to <00:46:43.785>design <00:46:43.960>language <00:46:44.135>features.

1072
00:46:45.195 --> 00:46:47.215
<00:46:45.195>And <00:46:45.370>this <00:46:45.545>is <00:46:45.720>why <00:46:45.895>I <00:46:46.070>think <00:46:46.245>going <00:46:46.420>back <00:46:46.595>to,

1073
00:46:47.475 --> 00:46:49.215
<00:46:47.475>to <00:46:47.708>why <00:46:47.941>everybody <00:46:48.174>hated <00:46:48.408>c <00:46:48.641>plus <00:46:48.875>plus

1074
00:46:49.215 --> 00:46:51.495
<00:46:49.215>and <00:46:49.331>why <00:46:49.448>I <00:46:49.565>think <00:46:49.681>nobody <00:46:49.798>will <00:46:49.915>hate <00:46:50.031>c <00:46:50.148>uh, <00:46:50.265>rust <00:46:50.381>in <00:46:50.498>the <00:46:50.615>future,

1075
00:46:52.275 --> 00:46:55.455
<00:46:52.275>not, <00:46:52.430>not <00:46:52.586>what <00:46:52.741>they <00:46:52.897>already <00:46:53.052>do, <00:46:53.208>at <00:46:53.363>least, <00:46:53.519>is <00:46:53.675>that

1076
00:46:57.335 --> 00:47:00.995
<00:46:57.335>we <00:46:57.535>have <00:46:57.735>one <00:46:57.935>central <00:46:58.135>construct, <00:46:58.335>one <00:46:58.535>central <00:46:58.735>feature

1077
00:47:01.265 --> 00:47:04.275
<00:47:01.265>that <00:47:01.464>allows <00:47:01.665>us <00:47:01.865>to <00:47:02.065>define <00:47:02.265>new <00:47:02.464>language <00:47:02.665>features

1078
00:47:04.275 --> 00:47:06.515
<00:47:04.275>and <00:47:04.475>boil <00:47:04.675>it <00:47:04.875>down <00:47:05.075>to <00:47:05.275>the <00:47:05.475>same <00:47:05.675>thing.

1079
00:47:07.175 --> 00:47:09.195
<00:47:07.175>And <00:47:07.408>I <00:47:07.641>think <00:47:07.875>this <00:47:08.108>is <00:47:08.341>immensely <00:47:08.575>powerful.

1080
00:47:09.195 --> 00:47:10.195
<00:47:09.195>If <00:47:09.420>you <00:47:09.645>do <00:47:09.870>language <00:47:10.095>design,

1081
00:47:10.415 --> 00:47:12.155
<00:47:10.415>you <00:47:10.648>can <00:47:10.881>define <00:47:11.115>everything <00:47:11.348>through <00:47:11.581>a <00:47:11.815>trade.

1082
00:47:12.505 --> 00:47:14.355
<00:47:12.505>They <00:47:12.785>can <00:47:13.065>be <00:47:13.345>experimental, <00:47:13.625>that's <00:47:13.905>okay,

1083
00:47:14.355 --> 00:47:15.635
<00:47:14.355>but <00:47:14.547>then <00:47:14.739>can <00:47:14.931>also <00:47:15.123>be <00:47:15.315>open <00:47:15.507>up

1084
00:47:15.635 --> 00:47:19.315
<00:47:15.635>and <00:47:15.835>extended <00:47:16.035>if <00:47:16.235>they're <00:47:16.435>seeing <00:47:16.635>robust <00:47:16.835>enough, <00:47:17.035>um,

1085
00:47:19.315 --> 00:47:21.755
<00:47:19.315>which <00:47:19.595>helps <00:47:19.875>you <00:47:20.155>creating <00:47:20.435>better <00:47:20.715>libraries,

1086
00:47:21.755 --> 00:47:23.035
<00:47:21.755>which <00:47:21.985>helps <00:47:22.215>you <00:47:22.446>creating <00:47:22.676>better <00:47:22.906>code,

1087
00:47:23.035 --> 00:47:25.035
<00:47:23.035>which <00:47:23.268>helps <00:47:23.501>the <00:47:23.734>language <00:47:23.968>team, <00:47:24.201>the <00:47:24.435>people

1088
00:47:25.095 --> 00:47:27.115
<00:47:25.095>who <00:47:25.375>work <00:47:25.654>actively <00:47:25.935>on <00:47:26.214>rust <00:47:26.495>and,

1089
00:47:27.335 --> 00:47:30.485
<00:47:27.335>and <00:47:27.510>pushing <00:47:27.685>Rust <00:47:27.860>Forward <00:47:28.035>helps <00:47:28.210>them <00:47:28.385>creating <00:47:28.560>new <00:47:28.735>language

1090
00:47:30.765 --> 00:47:32.805
<00:47:30.765>features <00:47:30.940>so <00:47:31.115>they <00:47:31.290>don't <00:47:31.464>interfere <00:47:31.640>with <00:47:31.815>your <00:47:31.990>existing <00:47:32.165>code.

1091
00:47:33.915 --> 00:47:37.435
<00:47:33.915>Um, <00:47:34.070>first <00:47:34.226>comes <00:47:34.381>the <00:47:34.537>trade, <00:47:34.692>then <00:47:34.848>comes <00:47:35.003>the <00:47:35.159>language <00:47:35.315>feature.

1092
00:47:38.235 --> 00:47:41.775
<00:47:38.235>And <00:47:38.390>you <00:47:38.546>can <00:47:38.701>always <00:47:38.857>start <00:47:39.012>by <00:47:39.168>working <00:47:39.323>against <00:47:39.479>the <00:47:39.635>trade

1093
00:47:42.765 --> 00:47:45.175
<00:47:42.765>instead <00:47:42.920>of <00:47:43.076>trying <00:47:43.231>to <00:47:43.387>move <00:47:43.542>an <00:47:43.698>entire <00:47:43.853>ecosystem <00:47:44.009>with <00:47:44.165>it

1094
00:47:45.755 --> 00:47:48.095
<00:47:45.755>and <00:47:46.035>decide <00:47:46.315>on <00:47:46.595>the <00:47:46.875>language <00:47:47.155>subset,

1095
00:47:48.095 --> 00:47:50.095
<00:47:48.095>because <00:47:48.375>the <00:47:48.654>subset <00:47:48.935>is <00:47:49.214>a <00:47:49.495>trade

1096
00:47:51.105 --> 00:47:52.765
<00:47:51.105>and <00:47:51.280>trades <00:47:51.455>will <00:47:51.630>become <00:47:51.805>more <00:47:51.980>powerful <00:47:52.155>in <00:47:52.330>the <00:47:52.505>future

1097
00:47:52.765 --> 00:47:56.605
<00:47:52.765>and <00:47:52.920>will <00:47:53.076>be <00:47:53.231>more <00:47:53.387>usable <00:47:53.542>in <00:47:53.698>more <00:47:53.853>position, <00:47:54.009>um, <00:47:54.165>capitalize,

1098
00:47:56.605 --> 00:48:01.005
<00:47:56.605>infiltrate, <00:47:56.838>um, <00:47:57.071>return <00:47:57.305>position, <00:47:57.538>infiltrate <00:47:57.771>in <00:47:58.005>trades,

1099
00:48:01.305 --> 00:48:04.365
<00:48:01.305>hiring <00:48:01.538>trade <00:48:01.771>bounds <00:48:02.004>and <00:48:02.238>generic <00:48:02.471>associated <00:48:02.705>types.

1100
00:48:04.685 --> 00:48:06.325
<00:48:04.685>I <00:48:04.965>know <00:48:05.245>what <00:48:05.525>those <00:48:05.805>acronyms <00:48:06.085>are.

1101
00:48:07.385 --> 00:48:10.525
<00:48:07.385>Um, <00:48:07.512>I <00:48:07.639>can <00:48:07.766>also <00:48:07.894>explain <00:48:08.021>them <00:48:08.148>to <00:48:08.275>you, <00:48:08.403>but <00:48:08.530>at <00:48:08.657>another <00:48:08.785>time.

1102
00:48:11.185 --> 00:48:15.005
<00:48:11.185>Um, <00:48:11.340>so <00:48:11.496>yeah, <00:48:11.651>every, <00:48:11.807>everything <00:48:11.962>that <00:48:12.118>comes <00:48:12.273>up <00:48:12.429>will <00:48:12.585>center

1103
00:48:15.105 --> 00:48:19.035
<00:48:15.105>around <00:48:15.305>trades, <00:48:15.505>which <00:48:15.705>wants <00:48:15.905>me <00:48:16.105>to <00:48:16.305>close <00:48:16.505>with.

1104
00:48:19.495 --> 00:48:21.675
<00:48:19.495>Um, <00:48:19.728>another <00:48:19.961>phrase <00:48:20.194>from <00:48:20.428>Tic <00:48:20.661>Super <00:48:20.895>Reef.

1105
00:48:21.675 --> 00:48:23.435
<00:48:21.675>This <00:48:21.955>comes <00:48:22.235>now <00:48:22.515>directly <00:48:22.795>from <00:48:23.075>deliverance.

1106
00:48:23.685 --> 00:48:25.595
<00:48:23.685>Words <00:48:23.965>are <00:48:24.245>the <00:48:24.525>source <00:48:24.805>of <00:48:25.085>misunderstandings

1107
00:48:25.775 --> 00:48:26.995
<00:48:25.775>and <00:48:25.958>I <00:48:26.141>want <00:48:26.324>to <00:48:26.507>add <00:48:26.690>to <00:48:26.873>it,

1108
00:48:28.035 --> 00:48:30.415
<00:48:28.035>but <00:48:28.210>traits <00:48:28.384>are <00:48:28.560>not, <00:48:28.734>traits <00:48:28.910>give <00:48:29.085>you <00:48:29.259>a <00:48:29.435>lot

1109
00:48:30.415 --> 00:48:32.015
<00:48:30.415>of <00:48:30.615>understanding <00:48:30.815>on <00:48:31.015>what's <00:48:31.215>going <00:48:31.415>on <00:48:31.615>in <00:48:31.815>rust.

1110
00:48:32.165 --> 00:48:34.255
<00:48:32.165>They <00:48:32.320>give <00:48:32.476>you <00:48:32.631>a <00:48:32.787>lot <00:48:32.942>of <00:48:33.098>understanding <00:48:33.253>what's <00:48:33.409>happening <00:48:33.565>in

1111
00:48:34.255 --> 00:48:36.895
<00:48:34.255>your <00:48:34.430>program, <00:48:34.605>in <00:48:34.780>the <00:48:34.955>standard <00:48:35.130>library <00:48:35.305>in <00:48:35.480>other <00:48:35.655>libraries.

1112
00:48:37.595 --> 00:48:40.555
<00:48:37.595>Go <00:48:37.828>learn <00:48:38.061>them, <00:48:38.294>do <00:48:38.528>yourself <00:48:38.761>a <00:48:38.995>favor,

1113
00:48:40.555 --> 00:48:42.435
<00:48:40.555>and <00:48:40.694>spend <00:48:40.835>some <00:48:40.975>time <00:48:41.115>with <00:48:41.254>Tim <00:48:41.395>to <00:48:41.535>understand <00:48:41.674>what's <00:48:41.815>going <00:48:41.955>on.

1114
00:48:43.095 --> 00:48:44.625
<00:48:43.095>It's <00:48:43.554>absolutely <00:48:44.013>worth <00:48:44.471>it.

1115
00:48:44.925 --> 00:48:47.025
<00:48:44.925>And <00:48:45.080>with <00:48:45.236>that, <00:48:45.391>thank <00:48:45.547>you <00:48:45.702>very <00:48:45.858>much <00:48:46.013>for <00:48:46.169>your <00:48:46.325>time.

1116
00:48:47.025 --> 00:48:48.425
<00:48:47.025>Thank <00:48:47.205>you <00:48:47.385>very <00:48:47.565>much <00:48:47.745>for <00:48:47.925>being <00:48:48.105>with <00:48:48.285>me.

1117
00:48:48.965 --> 00:48:50.625
<00:48:48.965>Um, <00:48:49.165>and <00:48:49.365>I'm <00:48:49.565>open <00:48:49.765>to <00:48:49.965>all <00:48:50.165>your <00:48:50.365>questions,

1118
00:48:55.045 --> 00:48:56.045
<00:48:55.045>Stefan. <00:48:55.495>Hello <00:48:55.945>again.

1119
00:48:56.045 --> 00:48:59.265
<00:48:56.045>Thank <00:48:56.245>you <00:48:56.445>so <00:48:56.645>much <00:48:56.845>for <00:48:57.045>the <00:48:57.245>talk, <00:48:57.445>also

1120
00:48:59.265 --> 00:49:00.745
<00:48:59.265>for <00:48:59.598>the <00:48:59.931>little <00:49:00.263>print <00:49:00.596>references.

1121
00:49:00.975 --> 00:49:01.975
<00:49:00.975>Love <00:49:01.875>them.

1122
00:49:03.295 --> 00:49:04.545
<00:49:03.295>Yeah, <00:49:03.520>it's <00:49:03.745>easy <00:49:03.970>a <00:49:04.195>little <00:49:04.420>bit,

1123
00:49:04.565 --> 00:49:08.545
<00:49:04.565>but <00:49:04.692>you <00:49:04.819>know, <00:49:04.946>it's, <00:49:05.074>um, <00:49:05.201>I <00:49:05.328>I <00:49:05.455>couldn't <00:49:05.583>resist, <00:49:05.710>uh, <00:49:05.837>um, <00:49:05.965>um,

1124
00:49:09.175 --> 00:49:12.065
<00:49:09.175>mirroring <00:49:09.375>c <00:49:09.575>plus <00:49:09.775>plus <00:49:09.975>with <00:49:10.175>the <00:49:10.375>Little <00:49:10.575>Prince.

1125
00:49:12.135 --> 00:49:14.585
<00:49:12.135>This <00:49:12.290>was <00:49:12.446>just <00:49:12.601>a <00:49:12.757>choke <00:49:12.912>too. <00:49:13.068>Good <00:49:13.223>to <00:49:13.379>be <00:49:13.535>true.

1126
00:49:16.465 --> 00:49:20.425
<00:49:16.465>They're <00:49:16.931>iconic. <00:49:17.398>Yeah, <00:49:17.865>Absolutely.

1127
00:49:22.005 --> 00:49:23.105
<00:49:22.005>All <00:49:22.500>right, <00:49:22.995>Stefan.

1128
00:49:23.125 --> 00:49:24.785
<00:49:23.125>Um, <00:49:23.358>we <00:49:23.591>still <00:49:23.825>got <00:49:24.058>some <00:49:24.291>minutes <00:49:24.525>left

1129
00:49:24.965 --> 00:49:26.945
<00:49:24.965>and <00:49:25.245>um, <00:49:25.525>we <00:49:25.805>got <00:49:26.085>some <00:49:26.365>questions

1130
00:49:27.085 --> 00:49:29.705
<00:49:27.085>and <00:49:27.260>I <00:49:27.435>would <00:49:27.610>say <00:49:27.785>let's <00:49:27.960>tackle <00:49:28.135>the <00:49:28.310>first <00:49:28.485>one.

1131
00:49:30.125 --> 00:49:32.025
<00:49:30.125>mm-Hmm, <00:49:30.591>which <00:49:31.058>would <00:49:31.525>be,

1132
00:49:32.365 --> 00:49:35.905
<00:49:32.365>how <00:49:32.564>does <00:49:32.765>Russ <00:49:32.964>trade <00:49:33.165>system <00:49:33.365>influence <00:49:33.564>code <00:49:33.765>testing

1133
00:49:36.045 --> 00:49:37.585
<00:49:36.045>and <00:49:36.738>debugging <00:49:37.431>practices?

1134
00:49:37.965 --> 00:49:41.705
<00:49:37.965>Are <00:49:38.120>there <00:49:38.276>any <00:49:38.431>strategies <00:49:38.587>or <00:49:38.742>tools <00:49:38.898>to <00:49:39.053>help <00:49:39.209>with <00:49:39.365>debugging?

1135
00:49:42.455 --> 00:49:46.185
<00:49:42.455>Okay, <00:49:42.654>so, <00:49:42.855>um, <00:49:43.055>there's <00:49:43.255>one <00:49:43.455>thing <00:49:43.654>that <00:49:43.855>I,

1136
00:49:46.185 --> 00:49:48.265
<00:49:46.185>that <00:49:46.340>had <00:49:46.496>at <00:49:46.651>the <00:49:46.807>end <00:49:46.962>where <00:49:47.118>I <00:49:47.273>think <00:49:47.429>that, <00:49:47.585>um,

1137
00:49:48.275 --> 00:49:51.145
<00:49:48.275>especially <00:49:48.555>in <00:49:48.835>compiler <00:49:49.115>error <00:49:49.395>messages, <00:49:49.675>traits

1138
00:49:51.685 --> 00:49:53.745
<00:49:51.685>can <00:49:51.860>add <00:49:52.035>some <00:49:52.210>complexity <00:49:52.384>that <00:49:52.560>is <00:49:52.735>hard <00:49:52.910>to <00:49:53.085>handle.

1139
00:49:54.325 --> 00:49:57.105
<00:49:54.325>Uh, <00:49:54.452>for <00:49:54.579>example, <00:49:54.706>in <00:49:54.834>exome, <00:49:54.961>you <00:49:55.088>need <00:49:55.215>to <00:49:55.343>work <00:49:55.470>with, <00:49:55.597>um, <00:49:55.725>uh,

1140
00:49:57.105 --> 00:49:59.105
<00:49:57.105>with, <00:49:57.338>with <00:49:57.571>a <00:49:57.805>very <00:49:58.038>huge <00:49:58.271>service <00:49:58.505>trait

1141
00:49:59.285 --> 00:50:03.265
<00:49:59.285>or, <00:49:59.460>um, <00:49:59.634>um, <00:49:59.810>handler <00:49:59.984>trait <00:50:00.160>I <00:50:00.335>guess <00:50:00.509>it's <00:50:00.685>called,

1142
00:50:03.595 --> 00:50:08.025
<00:50:03.595>which <00:50:03.734>can <00:50:03.875>produce <00:50:04.015>a <00:50:04.154>page <00:50:04.294>full <00:50:04.435>of, <00:50:04.575>of, <00:50:04.714>of <00:50:04.855>generic <00:50:04.995>nonsense.

1143
00:50:08.565 --> 00:50:10.505
<00:50:08.565>Um, <00:50:08.765>that <00:50:08.965>that's, <00:50:09.165>it's <00:50:09.365>really <00:50:09.565>hard <00:50:09.765>to <00:50:09.965>decipher.

1144
00:50:11.085 --> 00:50:14.145
<00:50:11.085>And <00:50:11.225>what <00:50:11.365>Exom <00:50:11.505>does <00:50:11.645>is <00:50:11.785>adding <00:50:11.925>the, <00:50:12.065>the <00:50:12.205>Deepak <00:50:12.345>handler <00:50:12.485>macro

1145
00:50:14.205 --> 00:50:15.585
<00:50:14.205>so <00:50:14.412>that <00:50:14.619>you <00:50:14.826>get <00:50:15.033>better <00:50:15.240>error <00:50:15.447>messages.

1146
00:50:16.125 --> 00:50:20.065
<00:50:16.125>Um, <00:50:16.280>but <00:50:16.436>exome <00:50:16.591>is <00:50:16.747>able <00:50:16.902>to <00:50:17.058>add <00:50:17.213>the <00:50:17.369>debug <00:50:17.525>micro

1147
00:50:20.065 --> 00:50:21.105
<00:50:20.065>because <00:50:20.533>of <00:50:21.001>traits.

1148
00:50:21.165 --> 00:50:25.625
<00:50:21.165>So <00:50:21.305>this <00:50:21.445>is <00:50:21.585>good. <00:50:21.725>Um, <00:50:21.865>I <00:50:22.005>think <00:50:22.145>in <00:50:22.285>terms <00:50:22.425>of <00:50:22.565>testing,

1149
00:50:25.965 --> 00:50:28.445
<00:50:25.965>um, <00:50:26.120>what <00:50:26.276>I <00:50:26.431>did <00:50:26.587>at <00:50:26.742>one <00:50:26.898>point <00:50:27.053>is, <00:50:27.209>um, <00:50:27.365>um,

1150
00:50:28.445 --> 00:50:29.765
<00:50:28.445>there <00:50:28.682>are <00:50:28.920>mocking <00:50:29.157>libraries <00:50:29.395>of <00:50:29.633>course,

1151
00:50:30.065 --> 00:50:31.285
<00:50:30.065>but <00:50:30.339>it's <00:50:30.614>also <00:50:30.888>very <00:50:31.163>easy

1152
00:50:31.285 --> 00:50:33.765
<00:50:31.285>to <00:50:31.424>create <00:50:31.565>your <00:50:31.705>own <00:50:31.845>mocking <00:50:31.984>library <00:50:32.125>if <00:50:32.265>you <00:50:32.404>introduce <00:50:32.545>a <00:50:32.685>trade

1153
00:50:33.865 --> 00:50:35.245
<00:50:33.865>on <00:50:34.279>different, <00:50:34.692>different <00:50:35.107>structures.

1154
00:50:35.245 --> 00:50:39.845
<00:50:35.245>So <00:50:35.372>for <00:50:35.499>example, <00:50:35.626>I <00:50:35.754>am, <00:50:35.881>I <00:50:36.008>have <00:50:36.135>one, <00:50:36.263>one, <00:50:36.390>um, <00:50:36.517>web <00:50:36.645>application

1155
00:50:40.095 --> 00:50:42.525
<00:50:40.095>where <00:50:40.294>I'm <00:50:40.495>using <00:50:40.694>an <00:50:40.895>actual <00:50:41.095>Postgres <00:50:41.294>database <00:50:41.495>to,

1156
00:50:42.785 --> 00:50:44.565
<00:50:42.785>to <00:50:43.065>store <00:50:43.345>values, <00:50:43.625>uh, <00:50:43.904>in <00:50:44.185>production.

1157
00:50:44.565 --> 00:50:47.725
<00:50:44.565>But <00:50:44.692>I <00:50:44.819>want <00:50:44.946>to <00:50:45.074>test <00:50:45.201>my <00:50:45.328>handlers <00:50:45.455>against <00:50:45.583>a <00:50:45.710>simple <00:50:45.837>hash <00:50:45.965>map,

1158
00:50:47.725 --> 00:50:49.525
<00:50:47.725>key <00:50:47.958>value <00:50:48.191>store <00:50:48.424>or <00:50:48.658>file <00:50:48.891>based, <00:50:49.125>anything

1159
00:50:49.655 --> 00:50:51.085
<00:50:49.655>where <00:50:49.912>I <00:50:50.169>can <00:50:50.427>prepare <00:50:50.684>some <00:50:50.942>fixtures.

1160
00:50:51.745 --> 00:50:54.005
<00:50:51.745>Um, <00:50:51.944>and <00:50:52.145>I <00:50:52.345>abstracted <00:50:52.545>that <00:50:52.745>through <00:50:52.944>a <00:50:53.145>trade,

1161
00:50:54.005 --> 00:50:55.005
<00:50:54.005>and <00:50:54.185>this <00:50:54.365>works <00:50:54.545>really, <00:50:54.725>really <00:50:54.905>well.

1162
00:50:55.465 --> 00:50:56.725
<00:50:55.465>Um, <00:50:55.843>especially <00:50:56.221>I <00:50:56.599>think,

1163
00:50:56.925 --> 00:50:59.525
<00:50:56.925>I <00:50:57.065>don't <00:50:57.205>know <00:50:57.345>if <00:50:57.485>it's <00:50:57.625>also <00:50:57.765>possible <00:50:57.905>in <00:50:58.045>other <00:50:58.185>web <00:50:58.325>application

1164
00:50:59.525 --> 00:51:04.105
<00:50:59.525>frameworks, <00:50:59.700>but <00:50:59.875>especially <00:51:00.050>with <00:51:00.225>xm, <00:51:00.400>I <00:51:00.575>think <00:51:00.750>it's <00:51:00.925>really,

1165
00:51:04.105 --> 00:51:05.985
<00:51:04.105>really <00:51:04.571>great <00:51:05.038>to, <00:51:05.505>um,

1166
00:51:06.965 --> 00:51:09.825
<00:51:06.965>create <00:51:07.140>an <00:51:07.315>artificial <00:51:07.490>request <00:51:07.665>on <00:51:07.840>the <00:51:08.015>outside, <00:51:08.190>send <00:51:08.365>it

1167
00:51:09.825 --> 00:51:12.465
<00:51:09.825>through <00:51:09.980>the <00:51:10.136>stack <00:51:10.291>of <00:51:10.447>exome <00:51:10.602>and, <00:51:10.758>and <00:51:10.913>get <00:51:11.069>the <00:51:11.225>result,

1168
00:51:12.465 --> 00:51:15.145
<00:51:12.465>and <00:51:12.640>then <00:51:12.815>evaluate <00:51:12.990>the <00:51:13.165>result <00:51:13.340>through <00:51:13.515>something <00:51:13.690>that <00:51:13.865>you,

1169
00:51:15.145 --> 00:51:16.385
<00:51:15.145>that <00:51:15.368>you <00:51:15.591>defined <00:51:15.814>on <00:51:16.037>your <00:51:16.261>own,

1170
00:51:16.385 --> 00:51:18.185
<00:51:16.385>like <00:51:16.585>a <00:51:16.785>key <00:51:16.985>value <00:51:17.185>store <00:51:17.385>as <00:51:17.585>a <00:51:17.785>database.

1171
00:51:18.805 --> 00:51:23.155
<00:51:18.805>And <00:51:18.932>the <00:51:19.059>reason <00:51:19.186>that's <00:51:19.314>possible <00:51:19.441>to <00:51:19.568>do <00:51:19.695>so <00:51:19.823>in <00:51:19.950>XiO <00:51:20.077>is <00:51:20.205>also,

1172
00:51:23.275 --> 00:51:24.315
<00:51:23.275>again, <00:51:23.743>through <00:51:24.211>trades.

1173
00:51:24.415 --> 00:51:26.675
<00:51:24.415>So, <00:51:24.765>um, <00:51:25.115>I, <00:51:25.465>I <00:51:25.815>think,

1174
00:51:28.155 --> 00:51:29.555
<00:51:28.155>I <00:51:28.407>think <00:51:28.659>the <00:51:28.911>influence <00:51:29.163>is <00:51:29.415>implicit

1175
00:51:30.685 --> 00:51:32.475
<00:51:30.685>since <00:51:31.035>everything <00:51:31.384>centers <00:51:31.735>around <00:51:32.085>trades.

1176
00:51:32.655 --> 00:51:36.235
<00:51:32.655>You, <00:51:32.762>you, <00:51:32.870>it's <00:51:32.978>totally <00:51:33.085>up <00:51:33.193>to <00:51:33.301>you <00:51:33.408>on <00:51:33.516>how <00:51:33.624>much <00:51:33.731>you <00:51:33.839>want <00:51:33.947>to <00:51:34.055>to,

1177
00:51:36.335 --> 00:51:38.675
<00:51:36.335>to <00:51:37.035>leverage <00:51:37.735>them,

1178
00:51:39.815 --> 00:51:42.075
<00:51:39.815>but <00:51:39.942>I <00:51:40.069>think <00:51:40.196>they <00:51:40.324>can <00:51:40.451>be <00:51:40.578>very <00:51:40.705>powerful <00:51:40.833>and <00:51:40.960>useful <00:51:41.087>as <00:51:41.215>well.

1179
00:51:42.275 --> 00:51:43.435
<00:51:42.275>I <00:51:42.483>hope <00:51:42.692>this <00:51:42.901>answers <00:51:43.110>your <00:51:43.319>question.

1180
00:51:44.155 --> 00:51:46.195
<00:51:44.155>Uh, <00:51:44.355>and <00:51:44.555>if <00:51:44.755>it <00:51:44.955>doesn't, <00:51:45.155>um, <00:51:45.355>there's <00:51:45.555>one.

1181
00:51:46.255 --> 00:51:48.715
<00:51:46.255>So <00:51:46.430>I'm, <00:51:46.605>I'm <00:51:46.780>also <00:51:46.955>working <00:51:47.130>on <00:51:47.305>Charter <00:51:47.480>Launchpad, <00:51:47.655>uh,

1182
00:51:48.715 --> 00:51:50.395
<00:51:48.715>with <00:51:48.915>defined <00:51:49.115>folks <00:51:49.315>at <00:51:49.515>Chat, <00:51:49.715>which <00:51:49.915>is <00:51:50.115>a

1183
00:51:52.015 --> 00:51:55.235
<00:51:52.015>almost <00:51:52.190>biweekly <00:51:52.365>newsletter, <00:51:52.540>um, <00:51:52.714>where <00:51:52.890>I <00:51:53.065>work <00:51:53.240>on <00:51:53.415>little,

1184
00:51:55.235 --> 00:51:56.515
<00:51:55.235>little, <00:51:55.811>um, <00:51:56.386>applications

1185
00:51:56.515 --> 00:51:59.795
<00:51:56.515>and <00:51:56.654>we <00:51:56.795>spend <00:51:56.935>one <00:51:57.075>issue <00:51:57.214>where <00:51:57.355>we <00:51:57.495>show <00:51:57.634>mocking <00:51:57.775>and <00:51:57.915>testing.

1186
00:52:01.215 --> 00:52:04.785
<00:52:01.215>Um, <00:52:01.415>it's <00:52:01.615>on <00:52:01.815>shuttles <00:52:02.015>slash <00:52:02.215>launchpad, <00:52:02.415>you <00:52:02.615>see,

1187
00:52:04.785 --> 00:52:08.385
<00:52:04.785>thereby <00:52:04.912>example <00:52:05.039>how <00:52:05.166>you <00:52:05.294>can <00:52:05.421>use <00:52:05.548>traits <00:52:05.675>to, <00:52:05.803>to <00:52:05.930>mock, <00:52:06.057>to <00:52:06.185>test,

1188
00:52:09.245 --> 00:52:11.025
<00:52:09.245>uh, <00:52:09.400>and <00:52:09.556>hopefully <00:52:09.711>it <00:52:09.867>helps <00:52:10.022>you <00:52:10.178>also <00:52:10.333>with <00:52:10.489>the <00:52:10.645>package.

1189
00:52:11.095 --> 00:52:12.095
Yeah.

1190
00:52:13.225 --> 00:52:17.495
<00:52:13.225>Thank <00:52:13.400>you <00:52:13.575>Stefan. <00:52:13.750>Um, <00:52:13.924>next <00:52:14.100>question <00:52:14.275>is, <00:52:14.450>uh, <00:52:14.625>connected

1191
00:52:17.555 --> 00:52:20.175
<00:52:17.555>to <00:52:17.710>the <00:52:17.866>last <00:52:18.021>one <00:52:18.177>and, <00:52:18.332>uh, <00:52:18.488>just <00:52:18.643>maybe <00:52:18.799>to, <00:52:18.955>uh,

1192
00:52:20.365 --> 00:52:21.615
<00:52:20.365>give <00:52:20.927>some <00:52:21.490>examples.

1193
00:52:21.715 --> 00:52:24.815
<00:52:21.715>Uh, <00:52:21.870>you <00:52:22.026>referred <00:52:22.181>to <00:52:22.337>some <00:52:22.492>tools <00:52:22.648>to <00:52:22.803>help <00:52:22.959>trade <00:52:23.115>debugging.

1194
00:52:25.085 --> 00:52:26.575
<00:52:25.085>What <00:52:25.420>are <00:52:25.755>there, <00:52:26.090>are <00:52:26.426>they

1195
00:52:27.315 --> 00:52:29.895
<00:52:27.315>And <00:52:27.470>Yeah, <00:52:27.626>so <00:52:27.781>that's, <00:52:27.937>that <00:52:28.092>was <00:52:28.248>the <00:52:28.403>Axo <00:52:28.559>debug <00:52:28.715>macro

1196
00:52:29.895 --> 00:52:30.935
<00:52:29.895>debugging <00:52:30.363>macro, <00:52:30.831>yeah.

1197
00:52:30.955 --> 00:52:32.495
<00:52:30.955>Um, <00:52:31.232>you <00:52:31.509>know, <00:52:31.786>that's <00:52:32.063>from <00:52:32.341>the,

1198
00:52:32.495 --> 00:52:33.935
<00:52:32.495>that's <00:52:32.754>from <00:52:33.013>the <00:52:33.272>Exom <00:52:33.531>exome <00:52:33.791>project.

1199
00:52:34.155 --> 00:52:35.935
<00:52:34.155>Um, <00:52:34.435>other <00:52:34.715>project <00:52:34.995>have <00:52:35.275>different <00:52:35.555>ways

1200
00:52:35.935 --> 00:52:37.015
<00:52:35.935>to, <00:52:36.178>to <00:52:36.421>have <00:52:36.663>that. <00:52:36.906>Yeah.

1201
00:52:37.245 --> 00:52:38.575
<00:52:37.245>Alright. <00:52:37.544>But <00:52:37.843>this <00:52:38.142>is <00:52:38.442>like

1202
00:52:39.235 --> 00:52:40.335
<00:52:39.235>Go <00:52:39.565>through, <00:52:39.895>yeah, <00:52:40.225>sorry.

1203
00:52:40.365 --> 00:52:43.015
<00:52:40.365>Yeah, <00:52:40.520>yeah. <00:52:40.676>For, <00:52:40.831>for <00:52:40.987>the <00:52:41.142>action <00:52:41.298>framework, <00:52:41.453>um, <00:52:41.609>if <00:52:41.765>you,

1204
00:52:43.075 --> 00:52:45.335
<00:52:43.075>if <00:52:43.230>you <00:52:43.386>want <00:52:43.541>to <00:52:43.697>debug <00:52:43.852>traits <00:52:44.008>on <00:52:44.163>its <00:52:44.319>own, <00:52:44.475>um,

1205
00:52:45.925 --> 00:52:48.575
<00:52:45.925>they <00:52:46.125>are <00:52:46.325>just <00:52:46.525>a <00:52:46.725>description <00:52:46.925>on <00:52:47.125>how <00:52:47.325>the,

1206
00:52:48.675 --> 00:52:50.455
<00:52:48.675>the <00:52:48.908>interface <00:52:49.141>quote <00:52:49.375>unquote <00:52:49.608>should <00:52:49.841>look <00:52:50.075>like.

1207
00:52:50.455 --> 00:52:51.535
<00:52:50.455>So <00:52:50.616>there's <00:52:50.779>not <00:52:50.941>a <00:52:51.103>lot <00:52:51.265>to <00:52:51.426>debug,

1208
00:52:51.535 --> 00:52:54.175
<00:52:51.535>but <00:52:51.690>you <00:52:51.846>can <00:52:52.001>also <00:52:52.157>have <00:52:52.312>default <00:52:52.468>implementations <00:52:52.623>on <00:52:52.779>those <00:52:52.935>trait

1209
00:52:54.175 --> 00:52:56.295
<00:52:54.175>methods, <00:52:54.375>which <00:52:54.575>means <00:52:54.775>that <00:52:54.975>you <00:52:55.175>can <00:52:55.375>debug <00:52:55.575>them,

1210
00:52:56.295 --> 00:52:58.215
<00:52:56.295>but <00:52:56.495>you <00:52:56.695>know, <00:52:56.895>at <00:52:57.095>a <00:52:57.295>breakpoint <00:52:57.495>they're <00:52:57.695>hop

1211
00:52:58.765 --> 00:53:01.535
<00:52:58.765>just <00:52:58.892>like <00:52:59.019>you <00:52:59.146>would <00:52:59.274>do <00:52:59.401>with, <00:52:59.528>with <00:52:59.655>any <00:52:59.783>other <00:52:59.910>tool <00:53:00.037>as <00:53:00.165>well.

1212
00:53:03.305 --> 00:53:06.055
<00:53:03.305>Right. <00:53:03.585>Thank <00:53:03.865>you <00:53:04.145>Stefan. <00:53:04.424>Next <00:53:04.705>question.

1213
00:53:06.555 --> 00:53:09.295
<00:53:06.555>For <00:53:06.835>new <00:53:07.115>developers <00:53:07.395>exploring <00:53:07.674>rust <00:53:07.955>libraries,

1214
00:53:09.595 --> 00:53:12.615
<00:53:09.595>how <00:53:09.770>can <00:53:09.944>I <00:53:10.120>spot <00:53:10.294>well-crafted <00:53:10.470>trades <00:53:10.645>in <00:53:10.819>external <00:53:10.995>code

1215
00:53:12.615 --> 00:53:14.895
<00:53:12.615>and <00:53:12.848>use <00:53:13.081>them <00:53:13.314>in <00:53:13.548>my <00:53:13.781>own <00:53:14.015>projects?

1216
00:53:14.895 --> 00:53:19.575
<00:53:14.895>Yeah. <00:53:15.011>Um, <00:53:15.128>this <00:53:15.245>is <00:53:15.361>a <00:53:15.478>very <00:53:15.595>good <00:53:15.711>segue <00:53:15.828>to <00:53:15.945>Lu <00:53:16.061>where <00:53:16.178>I <00:53:16.295>know

1217
00:53:19.575 --> 00:53:21.095
<00:53:19.575>that, <00:53:19.770>I <00:53:19.965>know <00:53:20.161>that <00:53:20.356>Lucas <00:53:20.552>coming <00:53:20.747>up <00:53:20.942>nips

1218
00:53:21.095 --> 00:53:24.975
<00:53:21.095>and <00:53:21.294>he <00:53:21.495>talks <00:53:21.694>about, <00:53:21.895>about <00:53:22.095>rust <00:53:22.294>Start <00:53:22.495>learning

1219
00:53:25.225 --> 00:53:26.685
<00:53:25.225>to <00:53:25.663>read <00:53:26.101>rust <00:53:26.538>documentation.

1220
00:53:26.795 --> 00:53:28.565
<00:53:26.795>Rust <00:53:27.261>documentation <00:53:27.728>is <00:53:28.195>fantastic

1221
00:53:28.595 --> 00:53:31.045
<00:53:28.595>because <00:53:28.794>you <00:53:28.995>see, <00:53:29.194>if <00:53:29.395>you <00:53:29.595>see <00:53:29.794>a <00:53:29.995>type,

1222
00:53:31.385 --> 00:53:33.565
<00:53:31.385>you <00:53:31.618>also <00:53:31.851>see <00:53:32.085>which <00:53:32.318>traits <00:53:32.551>it's <00:53:32.785>implementing

1223
00:53:33.565 --> 00:53:35.245
<00:53:33.565>and <00:53:33.720>you <00:53:33.876>can <00:53:34.031>click <00:53:34.187>on <00:53:34.342>them <00:53:34.498>and <00:53:34.653>you <00:53:34.809>can <00:53:34.965>see

1224
00:53:35.245 --> 00:53:36.325
<00:53:35.245>how <00:53:35.488>they <00:53:35.731>implement <00:53:35.973>the <00:53:36.216>trait.

1225
00:53:36.325 --> 00:53:38.205
<00:53:36.325>But <00:53:36.524>you <00:53:36.725>can <00:53:36.924>also <00:53:37.125>click <00:53:37.325>on <00:53:37.524>the <00:53:37.725>trait

1226
00:53:38.265 --> 00:53:40.605
<00:53:38.265>and <00:53:38.420>see <00:53:38.576>which <00:53:38.731>other <00:53:38.887>types <00:53:39.042>from <00:53:39.198>other <00:53:39.353>libraries <00:53:39.509>are <00:53:39.665>going

1227
00:53:40.605 --> 00:53:41.605
<00:53:40.605>to <00:53:40.830>implement <00:53:41.055>the <00:53:41.280>same <00:53:41.505>trait.

1228
00:53:41.985 --> 00:53:44.005
<00:53:41.985>And <00:53:42.160>this <00:53:42.335>is <00:53:42.510>a <00:53:42.685>very <00:53:42.860>good <00:53:43.035>way <00:53:43.210>to <00:53:43.385>navigate

1229
00:53:44.005 --> 00:53:45.285
<00:53:44.005>around <00:53:44.389>what's, <00:53:44.773>what's <00:53:45.156>happening.

1230
00:53:45.545 --> 00:53:49.465
<00:53:45.545>Um, <00:53:45.672>and <00:53:45.799>the <00:53:45.926>trait <00:53:46.054>is <00:53:46.181>well <00:53:46.308>crafted <00:53:46.435>if <00:53:46.563>you <00:53:46.690>can <00:53:46.817>abstract, <00:53:46.945>um,

1231
00:53:49.645 --> 00:53:50.665
<00:53:49.645>um, <00:53:50.104>a <00:53:50.563>lot

1232
00:53:50.665 --> 00:53:52.865
<00:53:50.665>of <00:53:50.805>behavior <00:53:50.945>in <00:53:51.085>the <00:53:51.225>ecosystem <00:53:51.365>really, <00:53:51.505>really <00:53:51.645>well, <00:53:51.785>I <00:53:51.925>would <00:53:52.065>say.

1233
00:53:53.365 --> 00:53:55.905
<00:53:53.365>Um, <00:53:53.540>so <00:53:53.714>it's <00:53:53.890>actually, <00:53:54.064>it's <00:53:54.240>actually <00:53:54.415>tough <00:53:54.589>to <00:53:54.765>say,

1234
00:53:55.905 --> 00:53:56.905
<00:53:55.905>is <00:53:56.055>this <00:53:56.205>a <00:53:56.355>good <00:53:56.505>trait <00:53:56.655>or <00:53:56.805>not?

1235
00:53:56.925 --> 00:53:59.625
<00:53:56.925>We <00:53:57.052>are <00:53:57.179>going <00:53:57.306>into <00:53:57.434>a <00:53:57.561>territory <00:53:57.688>where <00:53:57.815>we, <00:53:57.943>where <00:53:58.070>we <00:53:58.197>go <00:53:58.325>into,

1236
00:53:59.695 --> 00:54:01.345
<00:53:59.695>into <00:53:59.975>how <00:54:00.255>can <00:54:00.535>we <00:54:00.815>abstract <00:54:01.095>stuff

1237
00:54:01.525 --> 00:54:03.585
<00:54:01.525>and <00:54:01.758>how <00:54:01.991>can <00:54:02.225>we <00:54:02.458>reason <00:54:02.691>about <00:54:02.925>stuff

1238
00:54:03.585 --> 00:54:04.825
<00:54:03.585>and <00:54:03.864>what's, <00:54:04.143>what's <00:54:04.422>good <00:54:04.701>naming.

1239
00:54:05.045 --> 00:54:08.945
<00:54:05.045>Um, <00:54:05.278>what <00:54:05.511>I <00:54:05.745>would <00:54:05.978>suggest <00:54:06.211>is <00:54:06.445>starting

1240
00:54:09.005 --> 00:54:11.465
<00:54:09.005>to <00:54:09.285>learn <00:54:09.565>the <00:54:09.845>trades <00:54:10.125>from, <00:54:10.405>uh,

1241
00:54:11.535 --> 00:54:12.905
<00:54:11.535>from <00:54:11.843>the <00:54:12.151>standard <00:54:12.459>library <00:54:12.768>first,

1242
00:54:13.495 --> 00:54:15.965
<00:54:13.495>especially <00:54:13.728>conversion <00:54:13.961>trades <00:54:14.194>is <00:54:14.428>something <00:54:14.661>that <00:54:14.895>you,

1243
00:54:15.965 --> 00:54:19.445
<00:54:15.965>that <00:54:16.105>you <00:54:16.245>need <00:54:16.385>to <00:54:16.525>look <00:54:16.665>into <00:54:16.805>and <00:54:16.945>ops, <00:54:17.085>there's <00:54:17.225>standard <00:54:17.365>ops.

1244
00:54:19.565 --> 00:54:23.175
<00:54:19.565>Ops. <00:54:19.705>I <00:54:19.845>don't, <00:54:19.985>I <00:54:20.125>don't <00:54:20.265>know <00:54:20.405>where <00:54:20.545>the <00:54:20.685>conversion <00:54:20.825>rates <00:54:20.965>are,

1245
00:54:23.235 --> 00:54:25.455
<00:54:23.235>are <00:54:23.375>being <00:54:23.515>located <00:54:23.655>at, <00:54:23.795>but <00:54:23.935>you, <00:54:24.075>you're <00:54:24.215>going <00:54:24.355>to <00:54:24.495>find <00:54:24.635>them.

1246
00:54:25.455 --> 00:54:27.815
<00:54:25.455>They're <00:54:25.735>called <00:54:26.015>into <00:54:26.295>and <00:54:26.575>from <00:54:26.855>see

1247
00:54:28.355 --> 00:54:29.935
<00:54:28.355>how <00:54:28.635>the <00:54:28.915>default <00:54:29.195>implementations <00:54:29.475>are <00:54:29.755>going

1248
00:54:29.935 --> 00:54:31.615
<00:54:29.935>to <00:54:30.090>look <00:54:30.246>like <00:54:30.401>and <00:54:30.557>you <00:54:30.712>learn <00:54:30.868>a <00:54:31.023>lot <00:54:31.179>from <00:54:31.335>them.

1249
00:54:31.675 --> 00:54:33.375
<00:54:31.675>And <00:54:31.850>if <00:54:32.025>you, <00:54:32.200>if <00:54:32.375>you <00:54:32.550>understand <00:54:32.725>how <00:54:32.900>they <00:54:33.075>work,

1250
00:54:33.875 --> 00:54:35.095
<00:54:33.875>you <00:54:34.149>can <00:54:34.424>take <00:54:34.698>this <00:54:34.973>knowledge

1251
00:54:35.095 --> 00:54:36.455
<00:54:35.095>and <00:54:35.269>put <00:54:35.444>it <00:54:35.619>to <00:54:35.794>other <00:54:35.969>libraries <00:54:36.144>as <00:54:36.319>well.

1252
00:54:38.035 --> 00:54:41.425
<00:54:38.035>Right. <00:54:38.210>Thanks <00:54:38.384>for <00:54:38.560>giving <00:54:38.734>insights <00:54:38.910>on <00:54:39.085>this <00:54:39.259>as <00:54:39.435>well.

1253
00:54:41.525 --> 00:54:44.665
<00:54:41.525>And <00:54:41.665>we <00:54:41.805>jump <00:54:41.945>to <00:54:42.085>the <00:54:42.225>next <00:54:42.365>question, <00:54:42.505>a <00:54:42.645>very <00:54:42.785>friendly <00:54:42.925>question.

1254
00:54:44.845 --> 00:54:48.105
<00:54:44.845>In <00:54:45.078>what <00:54:45.311>sense <00:54:45.544>are <00:54:45.778>traits <00:54:46.011>interfaces, <00:54:46.245>smiley?

1255
00:54:49.165 --> 00:54:52.305
<00:54:49.165>Um, <00:54:49.365>first <00:54:49.565>you <00:54:49.765>can <00:54:49.965>have <00:54:50.165>default <00:54:50.365>implementations <00:54:50.565>on,

1256
00:54:52.725 --> 00:54:54.185
<00:54:52.725>um, <00:54:53.382>on <00:54:54.038>traits.

1257
00:54:54.365 --> 00:54:55.425
<00:54:54.365>You <00:54:54.603>can't <00:54:54.842>have <00:54:55.080>them <00:54:55.319>interfaces,

1258
00:54:55.425 --> 00:54:56.545
<00:54:55.425>but <00:54:55.593>you <00:54:55.761>can <00:54:55.929>have <00:54:56.097>to <00:54:56.265>abstract <00:54:56.433>classes.

1259
00:54:57.325 --> 00:55:01.025
<00:54:57.325>Um, <00:54:57.500>then <00:54:57.674>you <00:54:57.850>can <00:54:58.024>apply <00:54:58.200>trade <00:54:58.375>bonds <00:54:58.549>to <00:54:58.725>them,

1260
00:55:01.035 --> 00:55:04.065
<00:55:01.035>which <00:55:01.174>limits <00:55:01.315>the <00:55:01.455>usage <00:55:01.595>of <00:55:01.734>your <00:55:01.875>trade <00:55:02.015>to <00:55:02.154>a <00:55:02.295>particular <00:55:02.435>set

1261
00:55:04.065 --> 00:55:05.825
<00:55:04.065>of <00:55:04.298>types <00:55:04.531>that <00:55:04.765>also <00:55:04.998>implement <00:55:05.231>another <00:55:05.465>trade,

1262
00:55:05.825 --> 00:55:07.505
<00:55:05.825>which <00:55:06.105>is, <00:55:06.384>I <00:55:06.665>think, <00:55:06.944>very <00:55:07.225>powerful.

1263
00:55:08.035 --> 00:55:11.185
<00:55:08.035>Especially <00:55:08.234>opposed <00:55:08.435>to <00:55:08.634>if <00:55:08.835>you <00:55:09.035>have <00:55:09.234>interface <00:55:09.435>hierarchies

1264
00:55:11.245 --> 00:55:13.065
<00:55:11.245>or <00:55:11.478>class <00:55:11.711>hierarchies, <00:55:11.944>you <00:55:12.178>can <00:55:12.411>just <00:55:12.645>say

1265
00:55:13.805 --> 00:55:17.145
<00:55:13.805>you <00:55:13.944>only <00:55:14.085>work <00:55:14.225>if <00:55:14.365>another <00:55:14.504>trade <00:55:14.645>is <00:55:14.785>also <00:55:14.924>implemented <00:55:15.065>as <00:55:15.205>well.

1266
00:55:17.765 --> 00:55:19.585
<00:55:17.765>And <00:55:17.964>for <00:55:18.165>this <00:55:18.365>method <00:55:18.565>to <00:55:18.765>work, <00:55:18.964>I <00:55:19.165>need

1267
00:55:19.585 --> 00:55:21.345
<00:55:19.585>to <00:55:19.818>have <00:55:20.051>another <00:55:20.285>trade <00:55:20.518>implemented <00:55:20.751>as <00:55:20.985>well.

1268
00:55:21.685 --> 00:55:24.105
<00:55:21.685>And <00:55:21.860>you <00:55:22.035>make <00:55:22.210>cross <00:55:22.384>references <00:55:22.560>to <00:55:22.735>other <00:55:22.910>trades <00:55:23.085>instead

1269
00:55:24.105 --> 00:55:27.425
<00:55:24.105>of <00:55:24.305>hierarchies, <00:55:24.505>which <00:55:24.705>is <00:55:24.905>arguably <00:55:25.105>in <00:55:25.305>the <00:55:25.505>end,

1270
00:55:27.425 --> 00:55:28.585
<00:55:27.425>much, <00:55:27.633>much <00:55:27.842>easier <00:55:28.051>to <00:55:28.260>reason <00:55:28.469>about.

1271
00:55:29.165 --> 00:55:32.385
<00:55:29.165>And <00:55:29.320>for <00:55:29.476>me, <00:55:29.631>the <00:55:29.787>biggest <00:55:29.942>difference <00:55:30.098>is, <00:55:30.253>um, <00:55:30.409>that, <00:55:30.565>um,

1272
00:55:32.845 --> 00:55:36.665
<00:55:32.845>you <00:55:33.044>can <00:55:33.245>implement <00:55:33.444>your <00:55:33.645>traits <00:55:33.845>for <00:55:34.044>foreign <00:55:34.245>types.

1273
00:55:36.965 --> 00:55:41.225
<00:55:36.965>You <00:55:37.105>can <00:55:37.245>make <00:55:37.385>code <00:55:37.525>by <00:55:37.665>other <00:55:37.805>people <00:55:37.945>compatible <00:55:38.085>with <00:55:38.225>your <00:55:38.365>code

1274
00:55:41.605 --> 00:55:43.905
<00:55:41.605>by <00:55:41.805>just <00:55:42.005>defining <00:55:42.205>a <00:55:42.405>trade <00:55:42.605>and <00:55:42.805>implementing <00:55:43.005>it.

1275
00:55:44.525 --> 00:55:48.545
<00:55:44.525>And <00:55:44.875>if, <00:55:45.225>if <00:55:45.575>you <00:55:45.925>understand

1276
00:55:48.565 --> 00:55:50.505
<00:55:48.565>how <00:55:48.720>the <00:55:48.876>IT <00:55:49.031>tools <00:55:49.187>package <00:55:49.342>works <00:55:49.498>and <00:55:49.653>how <00:55:49.809>it <00:55:49.965>works

1277
00:55:50.525 --> 00:55:52.745
<00:55:50.525>and <00:55:50.725>applies <00:55:50.925>stuff <00:55:51.125>to <00:55:51.325>every <00:55:51.525>iterator <00:55:51.725>that <00:55:51.925>existed

1278
00:55:52.805 --> 00:55:57.145
<00:55:52.805>and <00:55:52.980>will <00:55:53.154>ever <00:55:53.330>exist, <00:55:53.504>this <00:55:53.680>is <00:55:53.855>mindblowing <00:55:54.029>this, <00:55:54.205>it's,

1279
00:55:57.145 --> 00:55:58.265
<00:55:57.145>it's <00:55:57.397>such <00:55:57.649>a <00:55:57.901>small <00:55:58.153>detail,

1280
00:55:58.265 --> 00:56:01.745
<00:55:58.265>but <00:55:58.615>it's <00:55:58.964>mindblowing <00:55:59.315>once <00:55:59.665>you

1281
00:56:01.745 --> 00:56:02.865
<00:56:01.745>understand <00:56:01.913>what <00:56:02.080>you <00:56:02.249>can <00:56:02.417>do <00:56:02.585>with <00:56:02.752>it.

1282
00:56:04.295 --> 00:56:08.585
<00:56:04.295>Yeah. <00:56:04.528>Interface <00:56:04.761>of <00:56:04.995>boring. <00:56:05.228>Sorry. <00:56:05.461>Absolutely <00:56:05.695>boring.

1283
00:56:11.335 --> 00:56:13.705
<00:56:11.335>Alright. <00:56:11.801>Thank <00:56:12.268>you <00:56:12.735>Stephan.

1284
00:56:14.245 --> 00:56:18.345
<00:56:14.245>And, <00:56:14.384>uh, <00:56:14.525>we <00:56:14.665>still <00:56:14.805>got <00:56:14.944>time <00:56:15.085>for <00:56:15.225>one <00:56:15.365>more <00:56:15.505>question. <00:56:15.645>See,

1285
00:56:18.345 --> 00:56:19.585
<00:56:18.345>It's <00:56:18.504>great <00:56:18.663>that <00:56:18.823>you <00:56:18.982>have <00:56:19.142>so <00:56:19.301>many <00:56:19.461>questions.

1286
00:56:19.585 --> 00:56:20.585
<00:56:19.585>I <00:56:19.810>loved <00:56:20.035>it. <00:56:20.260>Yeah, <00:56:20.485>yeah.

1287
00:56:21.765 --> 00:56:25.165
<00:56:21.765>As <00:56:21.904>a <00:56:22.045>test, <00:56:22.185>coming <00:56:22.325>from <00:56:22.464>a <00:56:22.605>language <00:56:22.745>without <00:56:22.884>a <00:56:23.025>trait <00:56:23.165>system,

1288
00:56:25.715 --> 00:56:29.165
<00:56:25.715>what <00:56:25.890>mindset <00:56:26.065>changes <00:56:26.240>should <00:56:26.415>I <00:56:26.590>make <00:56:26.765>to <00:56:26.940>make <00:56:27.115>use

1289
00:56:29.185 --> 00:56:30.405
<00:56:29.185>of <00:56:29.551>traits <00:56:29.917>in <00:56:30.283>rust?

1290
00:56:31.745 --> 00:56:33.005
<00:56:31.745>Um, <00:56:31.933>this <00:56:32.123>is <00:56:32.312>a <00:56:32.501>very <00:56:32.690>good <00:56:32.879>question.

1291
00:56:33.005 --> 00:56:35.285
<00:56:33.005>It, <00:56:33.160>it <00:56:33.316>totally <00:56:33.471>depends <00:56:33.627>on <00:56:33.782>which <00:56:33.938>language <00:56:34.093>you're <00:56:34.249>coming <00:56:34.405>from.

1292
00:56:35.745 --> 00:56:37.365
<00:56:35.745>Um, <00:56:36.211>I <00:56:36.678>think, <00:56:37.145>um,

1293
00:56:39.995 --> 00:56:43.995
<00:56:39.995>types <00:56:40.345>in <00:56:40.694>TypeScript <00:56:41.045>script, <00:56:41.395>I'm

1294
00:56:44.745 --> 00:56:46.435
<00:56:44.745>more, <00:56:45.095>I <00:56:45.444>like <00:56:45.795>to <00:56:46.145>trades.

1295
00:56:47.615 --> 00:56:48.715
<00:56:47.615>It <00:56:47.862>hurts <00:56:48.110>saying <00:56:48.357>that, <00:56:48.605>but,

1296
00:56:48.815 --> 00:56:50.795
<00:56:48.815>but <00:56:48.990>there's <00:56:49.165>a <00:56:49.340>little <00:56:49.515>bit <00:56:49.690>of <00:56:49.865>truth <00:56:50.040>in <00:56:50.215>that.

1297
00:56:51.135 --> 00:56:53.195
<00:56:51.135>I'm <00:56:51.262>more, <00:56:51.389>I <00:56:51.516>like <00:56:51.644>to <00:56:51.771>trades <00:56:51.898>in <00:56:52.025>rust <00:56:52.153>than <00:56:52.280>let's <00:56:52.407>say <00:56:52.535>an

1298
00:56:53.195 --> 00:56:54.795
<00:56:53.195>interface <00:56:53.545>coming <00:56:53.895>from <00:56:54.245>C <00:56:54.595>Orava.

1299
00:56:55.295 --> 00:56:58.235
<00:56:55.295>Um, <00:56:55.470>I <00:56:55.645>think <00:56:55.820>what <00:56:55.995>you, <00:56:56.170>that, <00:56:56.345>the <00:56:56.520>one <00:56:56.695>mindset

1300
00:56:58.235 --> 00:56:59.675
<00:56:58.235>that <00:56:58.494>helped <00:56:58.753>me <00:56:59.012>really <00:56:59.271>is <00:56:59.531>that,

1301
00:57:00.735 --> 00:57:03.315
<00:57:00.735>um, <00:57:01.085>you <00:57:01.435>have <00:57:01.785>two <00:57:02.135>levels.

1302
00:57:03.375 --> 00:57:08.005
<00:57:03.375>You <00:57:03.515>have <00:57:03.655>on <00:57:03.795>one <00:57:03.935>side <00:57:04.075>the <00:57:04.215>actual <00:57:04.355>values <00:57:04.495>that <00:57:04.635>you <00:57:04.775>have,

1303
00:57:08.005 --> 00:57:11.765
<00:57:08.005>which <00:57:08.180>are <00:57:08.355>STRs, <00:57:08.530>enums, <00:57:08.705>whatever, <00:57:08.880>or <00:57:09.055>primitive <00:57:09.230>data <00:57:09.405>types.

1304
00:57:12.525 --> 00:57:15.625
<00:57:12.525>And <00:57:12.700>on <00:57:12.875>the <00:57:13.050>other <00:57:13.225>hand, <00:57:13.400>you <00:57:13.575>have <00:57:13.750>the <00:57:13.925>possibility

1305
00:57:15.845 --> 00:57:17.425
<00:57:15.845>to <00:57:16.078>define <00:57:16.311>behavior <00:57:16.544>on <00:57:16.778>top <00:57:17.011>of <00:57:17.245>them

1306
00:57:22.135 --> 00:57:24.995
<00:57:22.135>almost <00:57:22.368>independently <00:57:22.601>of <00:57:22.835>what <00:57:23.068>struck <00:57:23.301>is <00:57:23.535>underneath.

1307
00:57:26.625 --> 00:57:29.805
<00:57:26.625>And, <00:57:26.858>and <00:57:27.091>with <00:57:27.325>that, <00:57:27.558>you <00:57:27.791>can <00:57:28.025>separate

1308
00:57:31.145 --> 00:57:32.405
<00:57:31.145>the <00:57:31.523>actual <00:57:31.901>data <00:57:32.279>from

1309
00:57:32.825 --> 00:57:35.485
<00:57:32.825>how <00:57:33.024>should <00:57:33.225>they <00:57:33.424>behave <00:57:33.625>in <00:57:33.825>a <00:57:34.024>different <00:57:34.225>context.

1310
00:57:36.785 --> 00:57:38.405
<00:57:36.785>And <00:57:37.018>this <00:57:37.251>mindset <00:57:37.484>helped <00:57:37.718>me <00:57:37.951>a <00:57:38.185>lot

1311
00:57:38.405 --> 00:57:42.645
<00:57:38.405>because <00:57:38.580>then <00:57:38.755>you <00:57:38.930>understand <00:57:39.105>you <00:57:39.280>can <00:57:39.455>design <00:57:39.630>software <00:57:39.805>purely

1312
00:57:42.735 --> 00:57:46.775
<00:57:42.735>based <00:57:42.862>on <00:57:42.989>trades <00:57:43.116>and <00:57:43.244>then <00:57:43.371>just <00:57:43.498>in <00:57:43.625>the <00:57:43.753>end <00:57:43.880>have <00:57:44.007>this <00:57:44.135>one

1313
00:57:46.775 --> 00:57:48.175
<00:57:46.775>actual <00:57:47.027>value <00:57:47.279>that <00:57:47.531>works <00:57:47.783>with <00:57:48.035>it,

1314
00:57:48.715 --> 00:57:49.935
<00:57:48.715>or <00:57:48.871>you <00:57:49.028>do <00:57:49.185>it <00:57:49.342>the <00:57:49.499>other <00:57:49.656>way <00:57:49.813>around.

1315
00:57:50.035 --> 00:57:54.445
<00:57:50.035>You <00:57:50.384>define <00:57:50.734>values <00:57:51.085>through <00:57:51.435>types,

1316
00:57:54.445 --> 00:57:55.765
<00:57:54.445>through <00:57:54.841>structures, <00:57:55.237>genomes, <00:57:55.633>whatever.

1317
00:57:56.965 --> 00:58:00.705
<00:57:56.965>And <00:57:57.105>once <00:57:57.245>you <00:57:57.385>want <00:57:57.525>to <00:57:57.665>have <00:57:57.805>it <00:57:57.945>work <00:57:58.085>with <00:57:58.225>other <00:57:58.365>parts

1318
00:58:00.705 --> 00:58:02.345
<00:58:00.705>of <00:58:00.938>the <00:58:01.171>system, <00:58:01.404>slap <00:58:01.638>as <00:58:01.871>much <00:58:02.105>trades

1319
00:58:02.505 --> 00:58:03.625
<00:58:02.505>on <00:58:02.649>top <00:58:02.793>of <00:58:02.937>it <00:58:03.081>to <00:58:03.225>make <00:58:03.369>it <00:58:03.513>work.

1320
00:58:04.285 --> 00:58:08.795
<00:58:04.285>So, <00:58:04.412>um, <00:58:04.539>that's, <00:58:04.666>that's <00:58:04.794>the <00:58:04.921>best <00:58:05.048>I <00:58:05.175>can <00:58:05.303>do. <00:58:05.430>Gimme <00:58:05.557>the <00:58:05.685>minute.

1321
00:58:10.545 --> 00:58:12.035
<00:58:10.545>Yeah. <00:58:10.992>Thank <00:58:11.439>you <00:58:11.886>Stefan.

1322
00:58:12.135 --> 00:58:13.555
<00:58:12.135>Um, <00:58:12.390>we <00:58:12.646>got <00:58:12.901>one <00:58:13.157>more <00:58:13.413>question

1323
00:58:13.575 --> 00:58:15.235
<00:58:13.575>and <00:58:13.750>I <00:58:13.924>think <00:58:14.100>it's <00:58:14.274>a <00:58:14.450>very <00:58:14.625>good <00:58:14.799>closing <00:58:14.975>question.

1324
00:58:15.235 --> 00:58:17.475
<00:58:15.235>Okay. <00:58:15.410>So <00:58:15.585>maybe <00:58:15.760>let's <00:58:15.935>tackle <00:58:16.110>also <00:58:16.285>this <00:58:16.460>real <00:58:16.635>quick.

1325
00:58:17.705 --> 00:58:20.155
<00:58:17.705>What <00:58:17.938>is <00:58:18.171>your <00:58:18.404>favorite <00:58:18.638>thing <00:58:18.871>about <00:58:19.105>RAs

1326
00:58:20.155 --> 00:58:22.035
<00:58:20.155>and <00:58:20.355>what <00:58:20.555>are <00:58:20.755>some <00:58:20.955>features <00:58:21.155>you <00:58:21.355>still <00:58:21.555>miss?

1327
00:58:22.115 --> 00:58:25.315
<00:58:22.115>I <00:58:22.242>mean, <00:58:22.369>okay, <00:58:22.496>maybe <00:58:22.624>this <00:58:22.751>is <00:58:22.878>a <00:58:23.005>whole <00:58:23.133>talk <00:58:23.260>on <00:58:23.387>itself, <00:58:23.515>but

1328
00:58:26.305 --> 00:58:27.355
<00:58:26.305>It's <00:58:26.777>absolutely <00:58:27.250>great.

1329
00:58:28.015 --> 00:58:30.075
<00:58:28.015>Um, <00:58:28.214>and <00:58:28.415>I'm <00:58:28.615>mean <00:58:28.815>love <00:58:29.015>with <00:58:29.214>arrow <00:58:29.415>handling.

1330
00:58:30.135 --> 00:58:34.035
<00:58:30.135>Um, <00:58:30.262>um, <00:58:30.389>I <00:58:30.516>love, <00:58:30.644>I <00:58:30.771>love <00:58:30.898>traits. <00:58:31.025>Um, <00:58:31.153>what <00:58:31.280>do <00:58:31.407>I <00:58:31.535>miss?

1331
00:58:34.215 --> 00:58:39.115
<00:58:34.215>Um, <00:58:34.355>I, <00:58:34.495>I've, <00:58:34.635>I've <00:58:34.775>give <00:58:34.915>me <00:58:35.055>a <00:58:35.195>list <00:58:35.335>of, <00:58:35.475>of <00:58:35.615>features

1332
00:58:39.115 --> 00:58:40.635
<00:58:39.115>that <00:58:39.343>is <00:58:39.571>currently <00:58:39.799>been <00:58:40.027>working <00:58:40.255>on <00:58:40.483>right.

1333
00:58:40.655 --> 00:58:44.355
<00:58:40.655>Return <00:58:40.888>position, <00:58:41.121>infiltrating <00:58:41.355>trades, <00:58:41.588>uh, <00:58:41.821>type <00:58:42.055>analysis,

1334
00:58:44.355 --> 00:58:45.995
<00:58:44.355>infiltrate, <00:58:45.055>et <00:58:45.755>cetera.

1335
00:58:45.995 --> 00:58:48.475
<00:58:45.995>They <00:58:46.228>are <00:58:46.461>actively <00:58:46.694>being <00:58:46.928>worked <00:58:47.161>on <00:58:47.395>everything

1336
00:58:48.475 --> 00:58:51.435
<00:58:48.475>that <00:58:48.674>makes <00:58:48.875>a <00:58:49.075>simple, <00:58:49.275>infiltrate <00:58:49.475>usable <00:58:49.674>in <00:58:49.875>many,

1337
00:58:51.435 --> 00:58:52.915
<00:58:51.435>many <00:58:51.657>more <00:58:51.879>positions <00:58:52.101>where <00:58:52.323>I <00:58:52.545>don't <00:58:52.767>need

1338
00:58:52.915 --> 00:58:54.315
<00:58:52.915>to <00:58:53.230>have <00:58:53.545>a <00:58:53.860>concrete <00:58:54.175>type,

1339
00:58:54.935 --> 00:58:57.275
<00:58:54.935>but <00:58:55.075>just <00:58:55.215>can <00:58:55.355>say, <00:58:55.495>well, <00:58:55.634>here, <00:58:55.775>I <00:58:55.915>want <00:58:56.055>to <00:58:56.195>have <00:58:56.335>anything

1340
00:58:57.275 --> 00:58:58.355
<00:58:57.275>that <00:58:57.599>implements <00:58:57.923>the <00:58:58.247>trade.

1341
00:58:58.635 --> 00:59:01.155
<00:58:58.635>I <00:58:58.775>want <00:58:58.915>to <00:58:59.055>have <00:58:59.195>that, <00:58:59.335>because <00:58:59.475>it <00:58:59.615>opens <00:58:59.755>up <00:58:59.895>much, <00:59:00.035>much,

1342
00:59:01.155 --> 00:59:03.435
<00:59:01.155>much <00:59:01.388>po <00:59:01.621>possibilities <00:59:01.855>of <00:59:02.088>abstracting <00:59:02.321>your <00:59:02.555>code.

1343
00:59:04.015 --> 00:59:06.235
<00:59:04.015>So, <00:59:04.365>yeah. <00:59:04.714>Um, <00:59:05.065>but <00:59:05.415>yeah.

1344
00:59:06.375 --> 00:59:08.355
<00:59:06.375>You <00:59:06.550>know, <00:59:06.725>what's <00:59:06.900>your <00:59:07.075>favorite <00:59:07.250>thing <00:59:07.425>about <00:59:07.600>Rust <00:59:07.775>Kids?

1345
00:59:08.455 --> 00:59:09.675
<00:59:08.455>I'm <00:59:08.674>still <00:59:08.894>in <00:59:09.113>the <00:59:09.333>honeymoon <00:59:09.553>phase

1346
00:59:09.675 --> 00:59:11.195
<00:59:09.675>with <00:59:10.017>rust <00:59:10.359>after <00:59:10.701>three <00:59:11.043>years.

1347
00:59:11.345 --> 00:59:14.915
<00:59:11.345>It's, <00:59:11.500>it's <00:59:11.656>so <00:59:11.811>much <00:59:11.967>love. <00:59:12.122>I <00:59:12.278>love <00:59:12.433>all <00:59:12.589>about <00:59:12.745>it.

1348
00:59:14.915 --> 00:59:16.915
<00:59:14.915>Of <00:59:15.381>course. <00:59:15.848>So <00:59:16.315>yeah.

1349
00:59:17.765 --> 00:59:20.595
<00:59:17.765>Could <00:59:18.464>also, <00:59:19.165>yeah.

1350
00:59:21.055 --> 00:59:22.965
<00:59:21.055>Could <00:59:21.210>also <00:59:21.366>be <00:59:21.521>a <00:59:21.677>good <00:59:21.832>title <00:59:21.988>for <00:59:22.143>our <00:59:22.299>next <00:59:22.455>talk,

1351
00:59:22.965 --> 00:59:25.125
<00:59:22.965>like <00:59:23.198>three <00:59:23.431>years <00:59:23.665>of <00:59:23.898>Honeymoon <00:59:24.131>with <00:59:24.365>Rust.

1352
00:59:29.235 --> 00:59:30.285
<00:59:29.235>Perfect. <00:59:30.180>Which

1353
00:59:30.525 --> 00:59:33.405
<00:59:30.525>Confirms <00:59:30.700>that <00:59:30.875>you'll <00:59:31.050>attend <00:59:31.225>the <00:59:31.400>next <00:59:31.575>Rust <00:59:31.750>Day <00:59:31.925>also.

1354
00:59:34.345 --> 00:59:36.885
<00:59:34.345>Oh, <00:59:34.452>I <00:59:34.560>hope <00:59:34.668>so. <00:59:34.775>So <00:59:34.883>yes. <00:59:34.991>Yeah. <00:59:35.098>Cool. <00:59:35.206>It <00:59:35.314>was <00:59:35.421>a <00:59:35.529>lot <00:59:35.637>of <00:59:35.745>fun.

1355
00:59:37.015 --> 00:59:38.015
<00:59:37.015>Thank <00:59:37.315>you <00:59:37.615>very <00:59:37.915>much.

1356
00:59:39.225 --> 00:59:40.865
<00:59:39.225>Pleasure, <00:59:39.424>Alan <00:59:39.625>on <00:59:39.825>this <00:59:40.025>side <00:59:40.225>of <00:59:40.424>the <00:59:40.625>camera.

1357
00:59:41.195 --> 00:59:42.345
<00:59:41.195>Thank <00:59:41.453>you <00:59:41.712>so <00:59:41.971>much, <00:59:42.230>Stefan.

1358
00:59:42.345 --> 00:59:44.825
<00:59:42.345>Thank <00:59:42.472>you <00:59:42.599>so <00:59:42.726>much <00:59:42.854>for <00:59:42.981>joining <00:59:43.108>us <00:59:43.235>today. <00:59:43.363>Thanks <00:59:43.490>for <00:59:43.617>the <00:59:43.745>talk.

1359
00:59:44.825 --> 00:59:46.505
<00:59:44.825>Thanks <00:59:44.980>for <00:59:45.136>the <00:59:45.291>q <00:59:45.447>and <00:59:45.602>a. <00:59:45.758>Uh, <00:59:45.913>to <00:59:46.069>the <00:59:46.225>audience,

1360
00:59:46.565 --> 00:59:49.105
<00:59:46.565>if <00:59:46.740>you <00:59:46.915>still <00:59:47.090>have <00:59:47.265>some <00:59:47.440>questions, <00:59:47.615>just <00:59:47.790>reach <00:59:47.965>out

1361
00:59:49.125 --> 00:59:52.305
<00:59:49.125>to <00:59:49.358>Stefan <00:59:49.591>on <00:59:49.825>his <00:59:50.058>socials <00:59:50.291>or <00:59:50.525>everything.

1362
00:59:52.365 --> 00:59:54.385
<00:59:52.365>So <00:59:52.564>he <00:59:52.765>will <00:59:52.964>gladly <00:59:53.165>answer <00:59:53.365>all <00:59:53.564>of <00:59:53.765>them.

1363
00:59:54.385 --> 00:59:57.145
<00:59:54.385>And <00:59:54.512>Stefan, <00:59:54.639>as <00:59:54.766>we <00:59:54.894>already <00:59:55.021>have <00:59:55.148>the <00:59:55.275>title <00:59:55.403>for <00:59:55.530>the <00:59:55.657>next <00:59:55.785>talk,

1364
00:59:57.305 --> 00:59:59.145
<00:59:57.305>I <00:59:57.504>would <00:59:57.705>say, <00:59:57.904>till <00:59:58.105>the <00:59:58.305>next <00:59:58.504>live <00:59:58.705>date.

1365
00:59:59.145 --> 01:00:01.625
<00:59:59.145>Fantastic. <00:59:59.320>Alright. <00:59:59.495>And <00:59:59.670>have <00:59:59.845>fun <01:00:00.020>with <01:00:00.195>Luca. <01:00:00.370>He's <01:00:00.545>amazing.

1366
01:00:01.815 --> 01:00:03.865
<01:00:01.815>He's <01:00:01.990>a <01:00:02.165>good <01:00:02.340>friend <01:00:02.515>of <01:00:02.690>mine. <01:00:02.865>Uh, <01:00:03.040>he's <01:00:03.215>going

1367
01:00:03.865 --> 01:00:04.905
<01:00:03.865>to <01:00:04.052>rock <01:00:04.239>the <01:00:04.426>stage <01:00:04.613>right <01:00:04.801>now.

1368
01:00:05.385 --> 01:00:07.705
<01:00:05.385>Alrighty. <01:00:05.665>See <01:00:05.945>you. <01:00:06.225>Bye-Bye. <01:00:06.505>See <01:00:06.785>ya.