WEBVTT

1
00:00:02.255 --> 00:00:02.725
<00:00:02.255>Thank <00:00:02.678>you.

2
00:00:02.935 --> 00:00:05.805
<00:00:02.935>Thank <00:00:03.285>you. <00:00:03.635>S <00:00:03.985>um, <00:00:04.335>yeah,

3
00:00:05.825 --> 00:00:08.005
<00:00:05.825>my <00:00:06.058>thought <00:00:06.291>today <00:00:06.525>is <00:00:06.758>about <00:00:06.991>web <00:00:07.225>assembly.

4
00:00:08.265 --> 00:00:11.045
<00:00:08.265>And <00:00:08.405>first <00:00:08.545>of <00:00:08.685>all, <00:00:08.825>I'm <00:00:08.965>not <00:00:09.105>using <00:00:09.245>web <00:00:09.385>assembly <00:00:09.525>in <00:00:09.665>production,

5
00:00:11.105 --> 00:00:14.285
<00:00:11.105>so <00:00:11.305>I'm <00:00:11.505>just, <00:00:11.705>uh, <00:00:11.905>here <00:00:12.105>exploring <00:00:12.305>this <00:00:12.505>topic,

6
00:00:14.765 --> 00:00:17.485
<00:00:14.765>discovering <00:00:14.940>new <00:00:15.115>things <00:00:15.290>and <00:00:15.465>telling <00:00:15.640>them, <00:00:15.815>uh, <00:00:15.990>to <00:00:16.165>you.

7
00:00:18.025 --> 00:00:21.445
<00:00:18.025>Um, <00:00:18.200>I <00:00:18.375>really <00:00:18.549>love <00:00:18.724>many <00:00:18.900>things <00:00:19.075>about <00:00:19.250>web <00:00:19.424>assembly,

8
00:00:22.185 --> 00:00:23.885
<00:00:22.185>but <00:00:22.418>the, <00:00:22.651>the <00:00:22.884>thing <00:00:23.118>is, <00:00:23.351>I <00:00:23.584>want

9
00:00:23.885 --> 00:00:27.165
<00:00:23.885>to <00:00:24.040>talk <00:00:24.196>about <00:00:24.351>web <00:00:24.507>assembly <00:00:24.662>used <00:00:24.818>in <00:00:24.973>a <00:00:25.129>cloud <00:00:25.285>environment,

10
00:00:27.465 --> 00:00:29.045
<00:00:27.465>and <00:00:27.698>that's <00:00:27.931>the <00:00:28.165>crazy <00:00:28.398>part <00:00:28.631>to <00:00:28.865>me.

11
00:00:29.165 --> 00:00:32.125
<00:00:29.165>I <00:00:29.292>was <00:00:29.419>not <00:00:29.546>aware <00:00:29.674>that <00:00:29.801>you <00:00:29.928>could <00:00:30.055>use <00:00:30.183>web <00:00:30.310>assembly <00:00:30.437>in <00:00:30.564>the

12
00:00:32.125 --> 00:00:35.885
<00:00:32.125>cloud, <00:00:32.241>and <00:00:32.358>I <00:00:32.475>saw <00:00:32.591>that <00:00:32.708>the <00:00:32.825>most, <00:00:32.941>the <00:00:33.058>majority <00:00:33.175>of <00:00:33.291>you <00:00:33.408>are <00:00:33.525>not,

13
00:00:36.225 --> 00:00:38.005
<00:00:36.225>uh, <00:00:36.505>knowing <00:00:36.785>or <00:00:37.065>using <00:00:37.345>web <00:00:37.625>assembly.

14
00:00:38.065 --> 00:00:39.565
<00:00:38.065>So <00:00:38.257>maybe <00:00:38.450>that's <00:00:38.643>the <00:00:38.836>right <00:00:39.029>talk <00:00:39.222>for <00:00:39.415>you

15
00:00:39.565 --> 00:00:41.285
<00:00:39.565>because <00:00:39.915>it's <00:00:40.265>a <00:00:40.614>basic <00:00:40.964>introduction.

16
00:00:41.285 --> 00:00:45.925
<00:00:41.285>Okay. <00:00:41.425>Um, <00:00:41.565>well, <00:00:41.705>this <00:00:41.845>is <00:00:41.985>just, <00:00:42.125>ID <00:00:42.264>check. <00:00:42.404>It's <00:00:42.544>me. <00:00:42.684>Okay.

17
00:00:45.925 --> 00:00:47.205
<00:00:45.925>So <00:00:46.117>you <00:00:46.309>are <00:00:46.501>on <00:00:46.693>the <00:00:46.885>right <00:00:47.077>stage.

18
00:00:47.505 --> 00:00:49.365
<00:00:47.505>Uh, <00:00:47.705>I'm <00:00:47.905>at <00:00:48.105>the <00:00:48.305>Vel <00:00:48.505>at <00:00:48.705>Spark <00:00:48.905>Fabric.

19
00:00:49.425 --> 00:00:51.245
<00:00:49.425>We <00:00:49.625>are <00:00:49.824>a <00:00:50.025>consult <00:00:50.224>firm <00:00:50.425>based <00:00:50.625>in <00:00:50.824>Milan.

20
00:00:51.545 --> 00:00:55.245
<00:00:51.545>Uh, <00:00:51.700>you <00:00:51.856>can <00:00:52.011>find <00:00:52.167>me <00:00:52.322>online, <00:00:52.478>um, <00:00:52.633>many <00:00:52.789>social <00:00:52.945>networks.

21
00:00:55.405 --> 00:00:58.205
<00:00:55.405>I <00:00:55.560>am, <00:00:55.716>I'm <00:00:55.871>creating <00:00:56.027>content <00:00:56.182>online, <00:00:56.338>but <00:00:56.493>mostly <00:00:56.649>in <00:00:56.805>Italian.

22
00:00:58.345 --> 00:01:02.645
<00:00:58.345>So <00:00:58.472>maybe, <00:00:58.599>probably <00:00:58.726>not. <00:00:58.854>Uh, <00:00:58.981>not, <00:00:59.108>not <00:00:59.235>for <00:00:59.363>every <00:00:59.490>one <00:00:59.617>of <00:00:59.745>you.

23
00:01:03.905 --> 00:01:07.845
<00:01:03.905>It <00:01:04.254>is <00:01:04.605>not <00:01:04.955>working. <00:01:05.305>Why?

24
00:01:09.275 --> 00:01:12.285
<00:01:09.275>Okay. <00:01:09.508>I <00:01:09.741>will <00:01:09.975>start <00:01:10.208>with <00:01:10.441>this <00:01:10.675>quote.

25
00:01:13.425 --> 00:01:17.685
<00:01:13.425>Uh, <00:01:13.600>this <00:01:13.774>is <00:01:13.950>the <00:01:14.125>quote <00:01:14.300>that <00:01:14.475>made <00:01:14.649>me <00:01:14.825>start

26
00:01:18.635 --> 00:01:21.165
<00:01:18.635>looking <00:01:18.835>at <00:01:19.035>web <00:01:19.235>assembly <00:01:19.435>from <00:01:19.635>a <00:01:19.835>different <00:01:20.035>perspective.

27
00:01:21.165 --> 00:01:23.525
<00:01:21.164>Okay? <00:01:21.398>This <00:01:21.631>is <00:01:21.865>the <00:01:22.098>quote. <00:01:22.331>If <00:01:22.565>Wasm

28
00:01:23.525 --> 00:01:26.005
<00:01:23.525>and <00:01:23.700>Wze, <00:01:23.875>we <00:01:24.050>will <00:01:24.225>see <00:01:24.400>Wasm <00:01:24.575>is <00:01:24.750>the, <00:01:24.925>uh,

29
00:01:26.555 --> 00:01:28.165
<00:01:26.555>it's <00:01:26.905>web <00:01:27.255>assembly, <00:01:27.605>basically <00:01:27.955>wze.

30
00:01:28.165 --> 00:01:29.685
<00:01:28.164>We <00:01:28.506>will <00:01:28.848>see <00:01:29.191>what's <00:01:29.533>wze.

31
00:01:30.065 --> 00:01:32.845
<00:01:30.065>If <00:01:30.240>that <00:01:30.414>existed <00:01:30.590>in <00:01:30.765>2008, <00:01:30.940>we <00:01:31.115>wouldn't <00:01:31.289>have <00:01:31.465>needed

32
00:01:32.845 --> 00:01:34.005
<00:01:32.845>to <00:01:33.366>create <00:01:33.889>Docker.

33
00:01:34.235 --> 00:01:35.485
<00:01:34.235>This <00:01:34.516>is <00:01:34.797>acquired <00:01:35.078>by <00:01:35.360>Solomon.

34
00:01:35.645 --> 00:01:38.925
<00:01:35.645>S <00:01:35.820>you <00:01:35.995>are <00:01:36.170>solo, <00:01:36.345>you <00:01:36.520>know, <00:01:36.695>Solomon <00:01:36.870>S <00:01:37.045>right?

35
00:01:39.825 --> 00:01:40.845
<00:01:39.825>No, <00:01:40.743>Solomon.

36
00:01:41.005 --> 00:01:45.005
<00:01:41.005>S <00:01:41.205>what <00:01:41.405>the, <00:01:41.604>there's <00:01:41.804>God, <00:01:42.005>John <00:01:42.205>Romero <00:01:42.405>and,

37
00:01:45.005 --> 00:01:46.765
<00:01:45.005>and <00:01:45.285>Solomon <00:01:45.565>s <00:01:45.845>basically, <00:01:46.125>but <00:01:46.405>okay.

38
00:01:46.765 --> 00:01:51.005
<00:01:46.765>It's <00:01:46.965>the <00:01:47.165>creator <00:01:47.365>of <00:01:47.565>Docker. <00:01:47.765>Okay. <00:01:47.965>Um, <00:01:48.165>Uhhuh.

39
00:01:52.475 --> 00:01:55.445
<00:01:52.475>Okay. <00:01:52.824>And <00:01:53.175>this <00:01:53.524>is <00:01:53.875>what

40
00:01:56.065 --> 00:01:58.605
<00:01:56.065>got <00:01:56.240>me <00:01:56.414>started <00:01:56.590>looking <00:01:56.765>into <00:01:56.940>web <00:01:57.115>assembly <00:01:57.289>from, <00:01:57.465>from,

41
00:01:58.605 --> 00:01:59.805
<00:01:58.604>from <00:01:58.964>this <00:01:59.325>cloud <00:01:59.685>perspective,

42
00:01:59.805 --> 00:02:03.565
<00:01:59.805>because <00:01:59.980>when <00:02:00.155>I <00:02:00.330>read <00:02:00.505>this <00:02:00.680>quote, <00:02:00.855>I <00:02:01.030>was <00:02:01.205>thinking

43
00:02:03.565 --> 00:02:04.765
<00:02:03.565>that <00:02:03.835>web <00:02:04.105>assembly <00:02:04.375>was <00:02:04.645>something

44
00:02:04.765 --> 00:02:07.485
<00:02:04.765>to <00:02:04.965>just <00:02:05.165>run <00:02:05.365>3D <00:02:05.565>games <00:02:05.765>in <00:02:05.965>browsers, <00:02:06.165>right?

45
00:02:08.035 --> 00:02:12.405
<00:02:08.035>That <00:02:08.174>was <00:02:08.315>my <00:02:08.454>vision <00:02:08.595>of <00:02:08.734>web <00:02:08.875>WebAssembly. <00:02:09.014>I <00:02:09.155>was <00:02:09.294>mostly <00:02:09.435>right.

46
00:02:13.105 --> 00:02:17.685
<00:02:13.105>But <00:02:13.244>if <00:02:13.385>Solomon <00:02:13.524>Acts <00:02:13.665>tweeted <00:02:13.804>this, <00:02:13.945>it <00:02:14.084>means <00:02:14.225>that <00:02:14.364>we <00:02:14.505>don't,

47
00:02:17.755 --> 00:02:21.085
<00:02:17.755>that <00:02:17.894>web <00:02:18.035>assembly <00:02:18.174>could <00:02:18.315>also <00:02:18.454>be <00:02:18.595>used <00:02:18.734>for <00:02:18.875>other <00:02:19.015>things, <00:02:19.155>even

48
00:02:21.425 --> 00:02:25.805
<00:02:21.425>for <00:02:21.658>cloud <00:02:21.891>Docker <00:02:22.125>things, <00:02:22.358>um, <00:02:22.591>Kubernetes <00:02:22.825>maybe.

49
00:02:25.865 --> 00:02:29.805
<00:02:25.865>And <00:02:26.020>we <00:02:26.176>will <00:02:26.331>see. <00:02:26.487>So <00:02:26.642>let's <00:02:26.798>start <00:02:26.953>with <00:02:27.109>a <00:02:27.265>prologue.

50
00:02:30.245 --> 00:02:32.885
<00:02:30.245>I <00:02:30.445>will <00:02:30.645>start <00:02:30.845>explaining <00:02:31.045>what <00:02:31.245>web <00:02:31.445>assembly <00:02:31.645>is

51
00:02:32.945 --> 00:02:35.325
<00:02:32.945>and <00:02:33.144>how <00:02:33.345>we <00:02:33.545>got, <00:02:33.745>uh, <00:02:33.945>to <00:02:34.144>web <00:02:34.345>assembly.

52
00:02:35.625 --> 00:02:37.725
<00:02:35.625>Uh, <00:02:35.905>I <00:02:36.185>think <00:02:36.465>you <00:02:36.745>can <00:02:37.025>explain,

53
00:02:38.075 --> 00:02:39.605
<00:02:38.075>many <00:02:38.350>people <00:02:38.625>will <00:02:38.901>explain <00:02:39.176>web <00:02:39.452>assembly

54
00:02:39.625 --> 00:02:41.005
<00:02:39.625>to <00:02:39.873>you <00:02:40.121>in <00:02:40.370>many <00:02:40.618>different <00:02:40.867>ways.

55
00:02:41.265 --> 00:02:42.365
<00:02:41.265>One <00:02:41.595>of <00:02:41.925>the <00:02:42.255>analogy

56
00:02:42.365 --> 00:02:45.765
<00:02:42.365>that <00:02:42.505>I <00:02:42.645>see <00:02:42.785>a <00:02:42.925>lot <00:02:43.065>is <00:02:43.205>using <00:02:43.345>the <00:02:43.485>Java <00:02:43.625>analogy, <00:02:43.765>okay?

57
00:02:45.765 --> 00:02:47.325
<00:02:45.765>With <00:02:46.114>Java, <00:02:46.464>with <00:02:46.815>the <00:02:47.165>JVM.

58
00:02:47.785 --> 00:02:49.925
<00:02:47.785>So <00:02:47.924>you <00:02:48.065>have <00:02:48.204>the <00:02:48.345>source <00:02:48.484>code, <00:02:48.625>you <00:02:48.765>have <00:02:48.905>the <00:02:49.045>bike <00:02:49.185>code,

59
00:02:49.925 --> 00:02:52.045
<00:02:49.925>you <00:02:50.100>can <00:02:50.275>pilot <00:02:50.450>for <00:02:50.625>the <00:02:50.800>JVM, <00:02:50.975>and <00:02:51.150>it's <00:02:51.325>fine,

60
00:02:52.265 --> 00:02:56.125
<00:02:52.265>but <00:02:52.440>I <00:02:52.614>prefer <00:02:52.790>to <00:02:52.964>explain <00:02:53.140>what <00:02:53.315>WebAssembly <00:02:53.489>is <00:02:53.665>using,

61
00:02:56.545 --> 00:02:57.845
<00:02:56.545>uh, <00:02:57.715>virtualizations.

62
00:02:58.345 --> 00:03:00.965
<00:02:58.345>So, <00:02:58.625>uh, <00:02:58.905>the <00:02:59.185>level <00:02:59.465>of <00:02:59.745>abstractions

63
00:03:00.965 --> 00:03:03.405
<00:03:00.965>that <00:03:01.120>we <00:03:01.276>added <00:03:01.431>in <00:03:01.587>the <00:03:01.742>history <00:03:01.898>of <00:03:02.053>the <00:03:02.209>computer <00:03:02.365>science

64
00:03:03.705 --> 00:03:05.445
<00:03:03.705>to <00:03:04.055>abstract <00:03:04.405>the <00:03:04.755>hardware, <00:03:05.105>okay?

65
00:03:05.545 --> 00:03:07.965
<00:03:05.545>And <00:03:05.700>I <00:03:05.856>think <00:03:06.011>looking <00:03:06.167>at <00:03:06.322>web <00:03:06.478>assembly <00:03:06.633>from <00:03:06.789>this <00:03:06.945>perspective

66
00:03:08.295 --> 00:03:11.045
<00:03:08.295>gives <00:03:08.434>you <00:03:08.575>a <00:03:08.714>better <00:03:08.855>idea <00:03:08.994>of <00:03:09.135>what <00:03:09.274>web <00:03:09.415>assembly <00:03:09.554>really <00:03:09.695>is.

67
00:03:11.425 --> 00:03:15.125
<00:03:11.425>So <00:03:11.658>let's <00:03:11.891>start <00:03:12.125>from <00:03:12.358>the <00:03:12.591>history. <00:03:12.825>Really.

68
00:03:15.125 --> 00:03:19.525
<00:03:15.125>This <00:03:15.280>is <00:03:15.436>a <00:03:15.591>paper <00:03:15.747>from, <00:03:15.902>uh, <00:03:16.058>robot <00:03:16.213>p <00:03:16.369>Goldberg <00:03:16.525>1973.

69
00:03:19.835 --> 00:03:22.285
<00:03:19.835>This <00:03:20.068>is <00:03:20.301>the <00:03:20.535>definition <00:03:20.768>of <00:03:21.001>a <00:03:21.235>hypervisor,

70
00:03:22.545 --> 00:03:25.445
<00:03:22.545>and <00:03:22.685>this <00:03:22.825>is <00:03:22.965>the <00:03:23.105>actual <00:03:23.245>definition <00:03:23.385>that <00:03:23.525>we <00:03:23.665>are <00:03:23.805>using <00:03:23.945>today.

71
00:03:25.705 --> 00:03:29.525
<00:03:25.704>So <00:03:25.860>the <00:03:26.016>hypervisor <00:03:26.171>basically <00:03:26.327>is <00:03:26.482>something <00:03:26.638>that <00:03:26.793>allows <00:03:26.949>you <00:03:27.105>to

72
00:03:30.245 --> 00:03:32.565
<00:03:30.245>abstract <00:03:30.595>the <00:03:30.945>guest <00:03:31.295>operating <00:03:31.645>system,

73
00:03:33.425 --> 00:03:36.925
<00:03:33.425>and <00:03:33.625>multiple <00:03:33.825>developers <00:03:34.025>can <00:03:34.225>run <00:03:34.425>applications <00:03:34.625>from, <00:03:34.825>uh,

74
00:03:36.945 --> 00:03:38.445
<00:03:36.945>to <00:03:37.170>the <00:03:37.394>same, <00:03:37.620>in <00:03:37.845>the <00:03:38.070>same <00:03:38.295>hardware.

75
00:03:38.545 --> 00:03:41.045
<00:03:38.545>Uh, <00:03:38.825>because <00:03:39.105>in <00:03:39.385>1973, <00:03:39.665>in <00:03:39.945>sixties,

76
00:03:41.345 --> 00:03:45.285
<00:03:41.345>or <00:03:41.520>also <00:03:41.695>they <00:03:41.870>wanted, <00:03:42.045>they, <00:03:42.220>they <00:03:42.395>had <00:03:42.570>huge <00:03:42.745>mainframes,

77
00:03:45.385 --> 00:03:47.725
<00:03:45.385>and <00:03:45.584>they <00:03:45.785>wanted <00:03:45.984>many <00:03:46.185>developers <00:03:46.385>to <00:03:46.584>be <00:03:46.785>able

78
00:03:47.725 --> 00:03:51.325
<00:03:47.725>to <00:03:47.924>run <00:03:48.125>their <00:03:48.325>own <00:03:48.525>applications, <00:03:48.725>hours <00:03:48.924>of, <00:03:49.125>uh,

79
00:03:51.585 --> 00:03:55.045
<00:03:51.585>run <00:03:51.760>time <00:03:51.935>in <00:03:52.110>a <00:03:52.285>single <00:03:52.460>or <00:03:52.635>multiple <00:03:52.810>mainframes, <00:03:52.985>okay?

80
00:03:55.065 --> 00:03:57.725
<00:03:55.065>So <00:03:55.220>they, <00:03:55.376>they <00:03:55.531>needed <00:03:55.687>a <00:03:55.842>way <00:03:55.998>to <00:03:56.153>abstract <00:03:56.309>the <00:03:56.465>hardware.

81
00:03:57.725 --> 00:03:59.685
<00:03:57.725>And <00:03:57.900>this <00:03:58.075>is <00:03:58.250>the <00:03:58.424>first <00:03:58.600>definition <00:03:58.775>of <00:03:58.950>a <00:03:59.125>hypervisor.

82
00:03:59.865 --> 00:04:01.005
<00:03:59.865>And <00:04:00.036>if <00:04:00.207>you <00:04:00.378>look <00:04:00.549>at <00:04:00.720>the <00:04:00.891>compute

83
00:04:01.145 --> 00:04:04.845
<00:04:01.145>and <00:04:01.345>the, <00:04:01.545>the <00:04:01.745>cloud <00:04:01.945>history, <00:04:02.145>it's <00:04:02.345>the <00:04:02.545>history

84
00:04:04.865 --> 00:04:08.405
<00:04:04.865>of <00:04:05.040>abstractions <00:04:05.215>right <00:04:05.390>to <00:04:05.565>distance <00:04:05.740>ourself <00:04:05.915>from <00:04:06.090>the <00:04:06.265>hardware.

85
00:04:08.505 --> 00:04:13.405
<00:04:08.505>In <00:04:08.680>fact, <00:04:08.855>in <00:04:09.030>1999, <00:04:09.204>VMware <00:04:09.380>workstation <00:04:09.555>brought <00:04:09.730>to <00:04:09.905>us,

86
00:04:13.905 --> 00:04:18.885
<00:04:13.905>uh, <00:04:14.105>a <00:04:14.305>new <00:04:14.505>way <00:04:14.705>of <00:04:14.905>working, <00:04:15.105>uh, <00:04:15.305>developing,

87
00:04:18.955 --> 00:04:22.085
<00:04:18.954>deploying <00:04:19.188>application <00:04:19.421>using <00:04:19.654>another <00:04:19.888>level <00:04:20.121>of <00:04:20.354>abstraction.

88
00:04:22.085 --> 00:04:25.645
<00:04:22.084>So <00:04:22.240>abstracting <00:04:22.396>guest <00:04:22.551>operating <00:04:22.707>systems <00:04:22.862>in <00:04:23.018>an <00:04:23.173>easy <00:04:23.329>way, <00:04:23.484>well,

89
00:04:26.265 --> 00:04:29.045
<00:04:26.265>not <00:04:26.405>easy <00:04:26.544>as <00:04:26.685>we <00:04:26.825>used, <00:04:26.965>as <00:04:27.104>it <00:04:27.245>used <00:04:27.385>to <00:04:27.525>be <00:04:27.664>today,

90
00:04:29.155 --> 00:04:32.765
<00:04:29.155>because <00:04:29.330>to <00:04:29.505>deploy <00:04:29.679>an <00:04:29.854>application, <00:04:30.030>you, <00:04:30.205>if <00:04:30.380>you <00:04:30.554>remember,

91
00:04:32.765 --> 00:04:36.685
<00:04:32.765>you <00:04:32.920>have <00:04:33.076>to <00:04:33.231>just <00:04:33.387>take <00:04:33.542>a <00:04:33.698>USB <00:04:33.853>drive <00:04:34.009>with <00:04:34.164>tons

92
00:04:36.685 --> 00:04:38.445
<00:04:36.685>of <00:04:37.035>gigabytes <00:04:37.385>in <00:04:37.735>it, <00:04:38.085>terabytes

93
00:04:38.445 --> 00:04:42.685
<00:04:38.445>and <00:04:38.585>physically <00:04:38.724>ship <00:04:38.865>it <00:04:39.005>to <00:04:39.145>the, <00:04:39.284>the, <00:04:39.425>the <00:04:39.565>near, <00:04:39.705>uh, <00:04:39.844>server.

94
00:04:42.905 --> 00:04:46.725
<00:04:42.905>But <00:04:43.044>this <00:04:43.184>was <00:04:43.325>a <00:04:43.465>new <00:04:43.604>way <00:04:43.744>of <00:04:43.885>thinking <00:04:44.025>about <00:04:44.164>software <00:04:44.304>and,

95
00:04:46.725 --> 00:04:49.325
<00:04:46.725>and <00:04:47.075>virtualization <00:04:47.425>and, <00:04:47.775>and <00:04:48.125>obstructions.

96
00:04:49.985 --> 00:04:53.365
<00:04:49.985>And, <00:04:50.451>and <00:04:50.918>in <00:04:51.385>2013,

97
00:04:54.385 --> 00:04:58.885
<00:04:54.385>the <00:04:54.560>Solomon <00:04:54.735>himself, <00:04:54.909>uh, <00:04:55.085>presented <00:04:55.260>to <00:04:55.435>the <00:04:55.610>word <00:04:55.784>docker

98
00:04:59.265 --> 00:05:00.725
<00:04:59.265>and <00:04:59.527>not <00:04:59.790>the <00:05:00.053>level <00:05:00.316>of <00:05:00.579>obstruction.

99
00:05:00.825 --> 00:05:02.565
<00:05:00.825>So <00:05:01.291>here <00:05:01.758>with <00:05:02.224>Docker,

100
00:05:02.565 --> 00:05:05.085
<00:05:02.565>this <00:05:02.740>is <00:05:02.915>a <00:05:03.090>frame <00:05:03.265>from <00:05:03.440>the <00:05:03.615>very <00:05:03.790>first <00:05:03.965>presentation

101
00:05:05.085 --> 00:05:08.045
<00:05:05.085>of <00:05:05.364>Docker <00:05:05.645>at <00:05:05.924>a <00:05:06.205>Python, <00:05:06.484>okay?

102
00:05:08.465 --> 00:05:11.685
<00:05:08.465>Um, <00:05:08.604>and <00:05:08.744>with <00:05:08.885>Docker, <00:05:09.025>you <00:05:09.164>can <00:05:09.304>have, <00:05:09.445>you <00:05:09.585>can <00:05:09.724>create <00:05:09.864>faster,

103
00:05:12.265 --> 00:05:15.285
<00:05:12.265>uh, <00:05:12.544>virtual <00:05:12.825>environments <00:05:13.104>and <00:05:13.385>ship <00:05:13.664>them.

104
00:05:15.705 --> 00:05:18.805
<00:05:15.705>And <00:05:15.844>this <00:05:15.984>allowed <00:05:16.125>us <00:05:16.265>to <00:05:16.405>create, <00:05:16.544>to <00:05:16.685>have <00:05:16.825>a <00:05:16.965>new <00:05:17.104>way,

105
00:05:18.905 --> 00:05:21.445
<00:05:18.905>new <00:05:19.104>workflows, <00:05:19.304>a <00:05:19.505>new <00:05:19.705>way <00:05:19.905>to <00:05:20.104>deploy <00:05:20.304>applications.

106
00:05:21.715 --> 00:05:23.045
<00:05:21.715>This <00:05:22.114>is <00:05:22.513>another <00:05:22.912>abstractions.

107
00:05:23.105 --> 00:05:25.765
<00:05:23.105>So <00:05:23.260>we <00:05:23.416>are, <00:05:23.571>we <00:05:23.727>are <00:05:23.882>abstracting <00:05:24.038>the <00:05:24.193>hardware <00:05:24.349>even <00:05:24.505>more.

108
00:05:26.425 --> 00:05:27.965
<00:05:26.425>And <00:05:27.118>the <00:05:27.811>year

109
00:05:27.965 --> 00:05:31.765
<00:05:27.965>after <00:05:28.431>AWS <00:05:28.898>introduced <00:05:29.364>Lambda,

110
00:05:32.785 --> 00:05:35.205
<00:05:32.784>and <00:05:33.018>with <00:05:33.251>Lambda, <00:05:33.484>with <00:05:33.718>serverless <00:05:33.951>in <00:05:34.184>general,

111
00:05:36.065 --> 00:05:38.125
<00:05:36.065>you <00:05:36.298>can <00:05:36.531>concentrate <00:05:36.765>on <00:05:36.998>the <00:05:37.231>business <00:05:37.465>logic

112
00:05:38.145 --> 00:05:40.125
<00:05:38.145>of <00:05:38.378>an <00:05:38.611>application <00:05:38.844>without <00:05:39.078>even <00:05:39.311>thinking <00:05:39.544>about

113
00:05:40.125 --> 00:05:41.405
<00:05:40.125>the <00:05:40.700>hardware <00:05:41.277>underneath.

114
00:05:42.145 --> 00:05:46.485
<00:05:42.145>So <00:05:42.284>you <00:05:42.424>see <00:05:42.565>that <00:05:42.705>we <00:05:42.844>are <00:05:42.984>distancing <00:05:43.125>ourself <00:05:43.265>from <00:05:43.405>the <00:05:43.544>bare

115
00:05:46.495 --> 00:05:50.605
<00:05:46.495>metal, <00:05:46.670>from <00:05:46.845>the <00:05:47.020>hardware, <00:05:47.195>uh, <00:05:47.370>with <00:05:47.545>layers <00:05:47.720>of <00:05:47.895>abstractions.

116
00:05:50.865 --> 00:05:53.605
<00:05:50.865>And <00:05:51.145>so <00:05:51.425>to <00:05:51.705>summarize, <00:05:51.985>we <00:05:52.265>have,

117
00:05:54.945 --> 00:05:55.965
<00:05:54.945>we <00:05:55.251>have <00:05:55.557>virtual <00:05:55.863>machines,

118
00:05:55.965 --> 00:05:57.725
<00:05:55.965>we <00:05:56.198>have <00:05:56.431>containers, <00:05:56.665>we <00:05:56.898>have <00:05:57.131>several <00:05:57.365>less.

119
00:05:58.185 --> 00:06:02.405
<00:05:58.185>And <00:05:58.385>the <00:05:58.585>more <00:05:58.785>we <00:05:58.985>distance <00:05:59.185>from <00:05:59.385>the <00:05:59.585>hardware,

120
00:06:02.865 --> 00:06:05.445
<00:06:02.865>the <00:06:03.065>more <00:06:03.265>we <00:06:03.465>have, <00:06:03.665>uh, <00:06:03.865>faster <00:06:04.065>boot <00:06:04.265>times,

121
00:06:06.065 --> 00:06:09.005
<00:06:06.065>and <00:06:06.298>also <00:06:06.531>the <00:06:06.765>deployment <00:06:06.998>lifecycle, <00:06:07.231>uh, <00:06:07.465>changes.

122
00:06:10.545 --> 00:06:13.125
<00:06:10.545>So <00:06:10.700>the <00:06:10.856>thing <00:06:11.011>is, <00:06:11.167>if <00:06:11.322>you <00:06:11.478>think <00:06:11.633>about <00:06:11.789>web <00:06:11.945>assembly

123
00:06:13.225 --> 00:06:16.325
<00:06:13.225>as <00:06:13.505>another <00:06:13.785>layer <00:06:14.065>of <00:06:14.345>obstruction, <00:06:14.625>I,

124
00:06:16.445 --> 00:06:19.965
<00:06:16.445>I <00:06:16.572>think <00:06:16.699>it's <00:06:16.826>the <00:06:16.954>best <00:06:17.081>way <00:06:17.208>to <00:06:17.335>understand <00:06:17.463>what <00:06:17.590>web <00:06:17.717>assembly <00:06:17.844>is

125
00:06:19.965 --> 00:06:22.765
<00:06:19.965>and <00:06:20.140>how <00:06:20.315>it <00:06:20.489>could <00:06:20.664>help <00:06:20.840>in <00:06:21.015>the <00:06:21.190>cloud <00:06:21.364>world.

126
00:06:23.465 --> 00:06:25.365
<00:06:23.465>So <00:06:23.744>let's <00:06:24.025>talk <00:06:24.304>about <00:06:24.585>web <00:06:24.864>assembly.

127
00:06:26.465 --> 00:06:30.885
<00:06:26.465>It <00:06:26.640>was <00:06:26.815>announced <00:06:26.989>in <00:06:27.164>2015 <00:06:27.340>and <00:06:27.515>released <00:06:27.690>in <00:06:27.864>2017.

128
00:06:30.885 --> 00:06:33.045
<00:06:30.885>It's <00:06:31.118>now <00:06:31.351>a <00:06:31.585>W <00:06:31.818>three <00:06:32.051>C <00:06:32.284>recommendation.

129
00:06:33.105 --> 00:06:35.485
<00:06:33.105>It <00:06:33.385>started <00:06:33.665>as <00:06:33.945>a <00:06:34.225>joint <00:06:34.505>effort.

130
00:06:35.505 --> 00:06:39.085
<00:06:35.505>It <00:06:35.680>started <00:06:35.855>in <00:06:36.030>Moz, <00:06:36.205>then <00:06:36.380>other, <00:06:36.555>uh, <00:06:36.730>companies <00:06:36.905>joined.

131
00:06:39.745 --> 00:06:42.125
<00:06:39.745>Um, <00:06:40.025>and <00:06:40.305>I <00:06:40.585>was <00:06:40.865>not <00:06:41.145>wrong.

132
00:06:42.345 --> 00:06:46.365
<00:06:42.345>The <00:06:42.500>initial, <00:06:42.656>um, <00:06:42.811>the <00:06:42.967>initial <00:06:43.122>thought <00:06:43.278>about <00:06:43.433>web <00:06:43.589>assembly <00:06:43.745>was

133
00:06:46.365 --> 00:06:48.685
<00:06:46.365>to <00:06:46.598>have <00:06:46.831>something <00:06:47.065>that <00:06:47.298>allowed <00:06:47.531>the <00:06:47.765>developers

134
00:06:48.685 --> 00:06:51.885
<00:06:48.685>to <00:06:48.965>run <00:06:49.245>applications <00:06:49.525>in <00:06:49.805>browser, <00:06:50.085>uh,

135
00:06:52.195 --> 00:06:56.805
<00:06:52.195>high <00:06:52.370>performance <00:06:52.545>application, <00:06:52.719>a <00:06:52.895>way <00:06:53.070>to <00:06:53.245>allow <00:06:53.420>code <00:06:53.594>running

136
00:06:56.875 --> 00:06:58.325
<00:06:56.875>that, <00:06:57.092>that <00:06:57.310>was <00:06:57.527>running <00:06:57.745>in <00:06:57.962>the <00:06:58.180>browser

137
00:06:58.425 --> 00:07:01.045
<00:06:58.425>to <00:06:58.625>access <00:06:58.825>physical <00:06:59.025>capabilities <00:06:59.225>of <00:06:59.425>the <00:06:59.625>hardware <00:06:59.825>underneath.

138
00:07:01.045 --> 00:07:02.205
<00:07:01.045>Okay? <00:07:01.306>So <00:07:01.567>I <00:07:01.828>was <00:07:02.089>right.

139
00:07:02.585 --> 00:07:05.885
<00:07:02.585>But <00:07:02.740>then <00:07:02.896>web <00:07:03.051>assembly <00:07:03.207>was <00:07:03.362>designed <00:07:03.518>as <00:07:03.673>an <00:07:03.829>open <00:07:03.984>standard

140
00:07:06.065 --> 00:07:09.245
<00:07:06.065>and <00:07:06.240>to, <00:07:06.415>uh, <00:07:06.590>to <00:07:06.765>be <00:07:06.940>performant, <00:07:07.115>to <00:07:07.290>be <00:07:07.465>scalable,

141
00:07:09.705 --> 00:07:12.085
<00:07:09.705>to <00:07:09.905>be <00:07:10.104>portable, <00:07:10.305>to <00:07:10.505>be <00:07:10.705>secure <00:07:10.905>by <00:07:11.104>design.

142
00:07:12.705 --> 00:07:14.845
<00:07:12.705>And <00:07:12.905>that's <00:07:13.104>exactly <00:07:13.305>what <00:07:13.505>we <00:07:13.705>want <00:07:13.905>from <00:07:14.104>a

143
00:07:14.845 --> 00:07:16.005
<00:07:14.845>cloud <00:07:15.367>workload, <00:07:15.889>right?

144
00:07:19.625 --> 00:07:23.785
<00:07:19.625>I <00:07:19.752>have <00:07:19.879>to <00:07:20.006>go <00:07:20.134>to <00:07:20.261>the <00:07:20.388>next <00:07:20.515>slide, <00:07:20.643>not <00:07:20.770>the <00:07:20.897>previous <00:07:21.025>slide.

145
00:07:23.815 --> 00:07:25.945
<00:07:23.815>Okay. <00:07:24.048>So <00:07:24.281>how <00:07:24.515>web <00:07:24.748>assembly <00:07:24.981>works, <00:07:25.215>uh,

146
00:07:26.265 --> 00:07:28.385
<00:07:26.265>I <00:07:26.420>think <00:07:26.576>this <00:07:26.731>is <00:07:26.887>my <00:07:27.042>vision <00:07:27.198>of <00:07:27.353>web <00:07:27.509>assembly, <00:07:27.664>okay?

147
00:07:28.385 --> 00:07:29.785
<00:07:28.385>We <00:07:28.700>have <00:07:29.015>three <00:07:29.330>main <00:07:29.645>things.

148
00:07:30.205 --> 00:07:33.345
<00:07:30.205>We <00:07:30.438>have <00:07:30.671>the <00:07:30.905>compiler, <00:07:31.138>compiler <00:07:31.371>of <00:07:31.604>course,

149
00:07:33.535 --> 00:07:34.985
<00:07:33.534>translate <00:07:33.969>the <00:07:34.405>source <00:07:34.840>code.

150
00:07:35.125 --> 00:07:37.185
<00:07:35.125>We <00:07:35.358>have <00:07:35.591>many <00:07:35.825>different <00:07:36.058>source <00:07:36.291>codes, <00:07:36.525>okay?

151
00:07:37.185 --> 00:07:38.985
<00:07:37.185>Many <00:07:37.651>different <00:07:38.118>source <00:07:38.585>languages.

152
00:07:39.285 --> 00:07:41.745
<00:07:39.284>We, <00:07:39.518>the <00:07:39.751>compiler <00:07:39.984>translates <00:07:40.218>the <00:07:40.451>source <00:07:40.684>language

153
00:07:42.135 --> 00:07:43.305
<00:07:42.135>into <00:07:42.486>a <00:07:42.837>byte <00:07:43.188>code.

154
00:07:43.405 --> 00:07:46.145
<00:07:43.405>That's <00:07:43.580>where <00:07:43.755>the <00:07:43.929>similarities <00:07:44.104>with <00:07:44.280>Java <00:07:44.455>is, <00:07:44.630>correct? <00:07:44.804>Okay?

155
00:07:46.485 --> 00:07:48.825
<00:07:46.485>The <00:07:46.718>compiler <00:07:46.951>can <00:07:47.185>be <00:07:47.418>a <00:07:47.651>standalone <00:07:47.885>tool,

156
00:07:48.825 --> 00:07:49.945
<00:07:48.825>like <00:07:49.077>we <00:07:49.329>have <00:07:49.581>m <00:07:49.832>script,

157
00:07:50.245 --> 00:07:52.745
<00:07:50.245>or <00:07:50.385>it <00:07:50.525>can <00:07:50.665>be <00:07:50.805>part <00:07:50.945>of <00:07:51.085>a, <00:07:51.225>a <00:07:51.365>language <00:07:51.505>tool <00:07:51.645>chain,

158
00:07:52.745 --> 00:07:54.225
<00:07:52.745>like <00:07:53.078>in <00:07:53.411>rust, <00:07:53.744>in <00:07:54.077>go.

159
00:07:54.765 --> 00:07:56.705
<00:07:54.765>Um, <00:07:54.965>and <00:07:55.164>then <00:07:55.365>we <00:07:55.565>have <00:07:55.765>the <00:07:55.965>binary <00:07:56.164>format.

160
00:07:56.765 --> 00:08:00.025
<00:07:56.765>So <00:07:56.892>from <00:07:57.019>the <00:07:57.146>compiler, <00:07:57.274>we <00:07:57.401>get <00:07:57.528>a <00:07:57.655>binary <00:07:57.783>format, <00:07:57.910>a <00:07:58.037>byte <00:07:58.164>code,

161
00:08:00.075 --> 00:08:02.665
<00:08:00.075>which <00:08:00.250>is <00:08:00.425>a <00:08:00.599>low <00:08:00.775>level <00:08:00.950>representation <00:08:01.125>of <00:08:01.300>our <00:08:01.474>code.

162
00:08:02.805 --> 00:08:04.425
<00:08:02.805>So <00:08:02.980>you <00:08:03.155>have <00:08:03.330>sequence <00:08:03.505>of <00:08:03.680>bytes, <00:08:03.855>you <00:08:04.030>have <00:08:04.205>data,

163
00:08:04.425 --> 00:08:05.425
<00:08:04.425>you <00:08:04.650>have <00:08:04.875>functions, <00:08:05.100>you <00:08:05.325>have

164
00:08:05.585 --> 00:08:07.185
<00:08:05.585>instructions, <00:08:06.051>you <00:08:06.518>have <00:08:06.984>everything.

165
00:08:07.685 --> 00:08:10.305
<00:08:07.685>And <00:08:07.860>it <00:08:08.035>is <00:08:08.210>designed <00:08:08.385>to <00:08:08.560>be <00:08:08.735>compact <00:08:08.910>and <00:08:09.085>fast,

166
00:08:10.305 --> 00:08:12.665
<00:08:10.305>because <00:08:10.445>if <00:08:10.585>you <00:08:10.725>think <00:08:10.865>about <00:08:11.005>the <00:08:11.145>use <00:08:11.285>case <00:08:11.425>of <00:08:11.565>the <00:08:11.705>browser,

167
00:08:12.805 --> 00:08:16.425
<00:08:12.805>you <00:08:12.960>need <00:08:13.116>to <00:08:13.271>have <00:08:13.427>small <00:08:13.582>applications, <00:08:13.738>small, <00:08:13.893>a <00:08:14.049>few <00:08:14.205>bytes,

168
00:08:16.425 --> 00:08:18.945
<00:08:16.425>because <00:08:16.600>you <00:08:16.775>have <00:08:16.950>to <00:08:17.125>download <00:08:17.300>them <00:08:17.475>and <00:08:17.650>parse <00:08:17.825>them.

169
00:08:19.085 --> 00:08:21.545
<00:08:19.085>So <00:08:19.364>performance <00:08:19.645>is, <00:08:19.924>uh, <00:08:20.205>performance <00:08:20.484>wise,

170
00:08:21.645 --> 00:08:22.985
<00:08:21.645>you <00:08:21.846>need <00:08:22.046>to <00:08:22.248>be <00:08:22.449>compact <00:08:22.650>and <00:08:22.851>fast.

171
00:08:23.165 --> 00:08:25.305
<00:08:23.165>And <00:08:23.320>then <00:08:23.476>we <00:08:23.631>have <00:08:23.787>the <00:08:23.942>third <00:08:24.098>part, <00:08:24.253>it's <00:08:24.409>the <00:08:24.565>runtime.

172
00:08:25.445 --> 00:08:29.025
<00:08:25.445>So <00:08:25.585>web <00:08:25.724>assembly <00:08:25.865>is <00:08:26.005>the <00:08:26.145>runtime <00:08:26.284>that <00:08:26.425>runs, <00:08:26.565>uh, <00:08:26.705>compiles <00:08:26.844>or,

173
00:08:29.365 --> 00:08:33.465
<00:08:29.365>or <00:08:29.505>interprets <00:08:29.645>the <00:08:29.785>byte <00:08:29.925>code <00:08:30.065>and <00:08:30.205>it <00:08:30.345>runs <00:08:30.485>on <00:08:30.625>a <00:08:30.765>machine.

174
00:08:33.765 --> 00:08:35.785
<00:08:33.765>The <00:08:33.998>runtime <00:08:34.231>can <00:08:34.465>be <00:08:34.698>in <00:08:34.931>a <00:08:35.164>browser,

175
00:08:36.405 --> 00:08:40.185
<00:08:36.405>or <00:08:36.512>it <00:08:36.620>can <00:08:36.728>be <00:08:36.835>outside <00:08:36.943>of <00:08:37.051>a <00:08:37.158>browser <00:08:37.266>in <00:08:37.374>a <00:08:37.481>no <00:08:37.589>js, <00:08:37.697>for <00:08:37.804>example.

176
00:08:40.645 --> 00:08:44.265
<00:08:40.645>Uh, <00:08:40.819>or <00:08:40.995>in <00:08:41.169>a <00:08:41.345>standalone <00:08:41.520>runtime, <00:08:41.694>like <00:08:41.870>wasm <00:08:42.044>time,

177
00:08:44.485 --> 00:08:45.905
<00:08:44.485>it <00:08:44.667>was, <00:08:44.850>I <00:08:45.032>think <00:08:45.215>it <00:08:45.397>was <00:08:45.580>the <00:08:45.762>first.

178
00:08:46.255 --> 00:08:48.865
<00:08:46.255>It's <00:08:46.395>one <00:08:46.535>of <00:08:46.675>the <00:08:46.814>many <00:08:46.955>runtimes <00:08:47.095>that <00:08:47.235>we <00:08:47.375>have <00:08:47.515>for <00:08:47.655>WebAssembly.

179
00:08:49.485 --> 00:08:51.705
<00:08:49.485>And <00:08:49.718>through <00:08:49.951>the <00:08:50.185>runtime, <00:08:50.418>you <00:08:50.651>have <00:08:50.885>access

180
00:08:51.725 --> 00:08:52.905
<00:08:51.725>to <00:08:52.079>the <00:08:52.433>host <00:08:52.787>capabilities.

181
00:08:53.285 --> 00:08:56.085
<00:08:53.285>So <00:08:53.518>the <00:08:53.751>hardware <00:08:53.985>underneath <00:08:54.218>drivers <00:08:54.451>file <00:08:54.685>system,

182
00:08:56.305 --> 00:08:57.725
<00:08:56.305>the <00:08:56.944>network, <00:08:57.583>whatever.

183
00:09:03.505 --> 00:09:05.035
<00:09:03.505>Okay, <00:09:04.193>first <00:09:04.882>demo.

184
00:09:05.245 --> 00:09:08.555
<00:09:05.245>Quick, <00:09:05.372>very <00:09:05.499>quickly, <00:09:05.626>just <00:09:05.754>to <00:09:05.881>show <00:09:06.008>that <00:09:06.135>we <00:09:06.263>have <00:09:06.390>RAs <00:09:06.517>code <00:09:06.645>here

185
00:09:08.665 --> 00:09:12.275
<00:09:08.665>with <00:09:08.839>a <00:09:09.015>binding <00:09:09.189>through, <00:09:09.365>um, <00:09:09.540>console <00:09:09.714>log <00:09:09.890>in <00:09:10.064>JavaScript,

186
00:09:12.375 --> 00:09:13.755
<00:09:12.375>but <00:09:12.623>this <00:09:12.871>is <00:09:13.120>RAs <00:09:13.368>code, <00:09:13.617>okay?

187
00:09:13.815 --> 00:09:16.315
<00:09:13.815>We <00:09:14.048>are <00:09:14.281>just <00:09:14.515>printing <00:09:14.748>something <00:09:14.981>a <00:09:15.215>string.

188
00:09:16.815 --> 00:09:18.955
<00:09:16.815>I'm <00:09:16.990>using <00:09:17.165>Wasm <00:09:17.340>pack, <00:09:17.515>which <00:09:17.690>is <00:09:17.865>a <00:09:18.040>tool <00:09:18.215>part

189
00:09:18.955 --> 00:09:20.795
<00:09:18.955>of <00:09:19.155>the <00:09:19.355>RAs <00:09:19.555>tool <00:09:19.755>chain <00:09:19.955>to <00:09:20.155>build <00:09:20.355>this.

190
00:09:21.575 --> 00:09:25.355
<00:09:21.575>So <00:09:21.730>the <00:09:21.886>RAs <00:09:22.041>compiler <00:09:22.197>is <00:09:22.352>giving <00:09:22.508>me <00:09:22.663>a <00:09:22.819>wasm <00:09:22.975>module.

191
00:09:25.455 --> 00:09:28.995
<00:09:25.455>We <00:09:25.595>will <00:09:25.735>see <00:09:25.875>later. <00:09:26.015>And <00:09:26.155>when <00:09:26.295>I <00:09:26.435>compile <00:09:26.575>this, <00:09:26.715>I <00:09:26.855>get

192
00:09:29.145 --> 00:09:32.595
<00:09:29.145>through <00:09:29.345>wasm <00:09:29.545>pack, <00:09:29.745>uh, <00:09:29.944>I <00:09:30.145>get <00:09:30.345>a <00:09:30.545>JavaScript.

193
00:09:32.895 --> 00:09:34.035
<00:09:32.895>So <00:09:33.151>this <00:09:33.408>is <00:09:33.664>the <00:09:33.920>JavaScript.

194
00:09:34.215 --> 00:09:35.995
<00:09:34.215>And <00:09:34.390>if <00:09:34.565>you <00:09:34.740>see <00:09:34.915>the <00:09:35.090>JavaScript <00:09:35.265>that <00:09:35.440>you <00:09:35.615>get,

195
00:09:36.415 --> 00:09:39.155
<00:09:36.415>you <00:09:36.648>have <00:09:36.881>the <00:09:37.115>export <00:09:37.348>an <00:09:37.581>exported <00:09:37.814>function.

196
00:09:39.155 --> 00:09:41.515
<00:09:39.155>This <00:09:39.310>is <00:09:39.466>the <00:09:39.621>grid <00:09:39.777>functions <00:09:39.932>that <00:09:40.088>we <00:09:40.243>wrote <00:09:40.399>in <00:09:40.555>rust.

197
00:09:41.775 --> 00:09:42.875
<00:09:41.775>So <00:09:42.105>this <00:09:42.435>is <00:09:42.765>exported.

198
00:09:43.015 --> 00:09:45.275
<00:09:43.015>We <00:09:43.248>can <00:09:43.481>call <00:09:43.715>this <00:09:43.948>function <00:09:44.181>from <00:09:44.415>JavaScript

199
00:09:45.575 --> 00:09:49.835
<00:09:45.575>and <00:09:45.750>run <00:09:45.925>our <00:09:46.100>JavaScript <00:09:46.275>code <00:09:46.450>from, <00:09:46.625>uh, <00:09:46.800>the <00:09:46.975>runtime,

200
00:09:50.095 --> 00:09:51.275
<00:09:50.095>no <00:09:50.449>JS, <00:09:50.803>for <00:09:51.156>example.

201
00:09:51.575 --> 00:09:54.675
<00:09:51.575>So <00:09:51.775>here <00:09:51.975>we <00:09:52.175>are <00:09:52.375>importing <00:09:52.575>our <00:09:52.775>was <00:09:52.975>module

202
00:09:54.855 --> 00:09:56.275
<00:09:54.855>and <00:09:55.174>calling <00:09:55.494>the <00:09:55.813>grid <00:09:56.133>function.

203
00:09:56.595 --> 00:09:58.875
<00:09:56.595>Remember, <00:09:56.770>the <00:09:56.945>grid <00:09:57.120>function <00:09:57.295>was, <00:09:57.470>uh, <00:09:57.645>written <00:09:57.820>in <00:09:57.995>rust.

204
00:09:59.255 --> 00:10:01.675
<00:09:59.255>So <00:09:59.535>sorry <00:09:59.814>for <00:10:00.095>the <00:10:00.375>wrong <00:10:00.655>conference.

205
00:10:01.735 --> 00:10:04.395
<00:10:01.735>But <00:10:01.968>anyway, <00:10:02.201>this <00:10:02.435>is <00:10:02.668>the, <00:10:02.901>uh, <00:10:03.135>code,

206
00:10:04.655 --> 00:10:06.355
<00:10:04.655>and <00:10:04.888>this <00:10:05.121>is <00:10:05.355>the <00:10:05.588>runtime <00:10:05.821>with <00:10:06.055>node.

207
00:10:06.455 --> 00:10:08.915
<00:10:06.455>We <00:10:06.735>get <00:10:07.015>the <00:10:07.295>correct <00:10:07.575>output. <00:10:07.855>Okay?

208
00:10:09.015 --> 00:10:13.365
<00:10:09.015>So <00:10:09.215>this <00:10:09.415>is <00:10:09.615>basically <00:10:09.814>the <00:10:10.015>source <00:10:10.215>coding <00:10:10.415>rust,

209
00:10:13.945 --> 00:10:17.165
<00:10:13.945>um, <00:10:14.178>imported <00:10:14.411>from <00:10:14.645>JavaScript, <00:10:14.878>executed <00:10:15.111>in <00:10:15.345>node,

210
00:10:17.225 --> 00:10:20.205
<00:10:17.225>and <00:10:17.425>we <00:10:17.625>have <00:10:17.825>the, <00:10:18.025>uh, <00:10:18.225>the <00:10:18.425>string <00:10:18.625>printed.

211
00:10:20.475 --> 00:10:23.405
<00:10:20.475>Another <00:10:20.825>quick <00:10:21.175>example, <00:10:21.525>uh, <00:10:21.875>using,

212
00:10:23.985 --> 00:10:25.805
<00:10:23.985>always <00:10:24.335>using <00:10:24.685>the <00:10:25.035>wasm <00:10:25.385>pack.

213
00:10:26.105 --> 00:10:28.365
<00:10:26.105>Now <00:10:26.280>we <00:10:26.455>want <00:10:26.630>to <00:10:26.805>compile <00:10:26.980>this <00:10:27.155>for <00:10:27.330>the <00:10:27.505>browser.

214
00:10:28.505 --> 00:10:30.685
<00:10:28.505>So <00:10:28.660>we <00:10:28.816>have <00:10:28.971>a <00:10:29.127>simple <00:10:29.282>function <00:10:29.438>that <00:10:29.593>takes <00:10:29.749>two <00:10:29.905>arguments

215
00:10:30.685 --> 00:10:32.085
<00:10:30.685>and, <00:10:31.105>uh, <00:10:31.525>sum <00:10:31.945>them.

216
00:10:32.195 --> 00:10:34.845
<00:10:32.195>Okay? <00:10:32.370>So <00:10:32.545>we <00:10:32.720>want <00:10:32.895>the <00:10:33.070>sum <00:10:33.245>of <00:10:33.420>two <00:10:33.595>arguments.

217
00:10:34.865 --> 00:10:37.765
<00:10:34.865>So <00:10:35.040>using <00:10:35.215>was <00:10:35.390>unpack, <00:10:35.565>uh, <00:10:35.740>with <00:10:35.915>the <00:10:36.090>target <00:10:36.265>web.

218
00:10:37.765 --> 00:10:39.725
<00:10:37.765>So <00:10:37.939>we <00:10:38.115>get <00:10:38.290>a <00:10:38.465>bundle <00:10:38.640>ready <00:10:38.814>for <00:10:38.990>the <00:10:39.165>web.

219
00:10:40.115 --> 00:10:43.885
<00:10:40.115>It's <00:10:40.290>compiling, <00:10:40.465>using <00:10:40.640>the <00:10:40.815>rust, <00:10:40.990>uh, <00:10:41.165>compiler <00:10:41.340>in, <00:10:41.515>in,

220
00:10:43.885 --> 00:10:45.005
<00:10:43.885>in <00:10:44.137>the <00:10:44.389>RA <00:10:44.641>home <00:10:44.893>chain.

221
00:10:45.505 --> 00:10:49.485
<00:10:45.505>And <00:10:45.645>then <00:10:45.785>if <00:10:45.925>you <00:10:46.064>see <00:10:46.205>here, <00:10:46.345>we <00:10:46.485>have <00:10:46.625>the <00:10:46.765>wasm, <00:10:46.905>uh,

222
00:10:49.485 --> 00:10:51.485
<00:10:49.485>module <00:10:49.718>dot <00:10:49.951>wasm <00:10:50.185>is <00:10:50.418>the <00:10:50.651>wasm <00:10:50.885>module

223
00:10:51.985 --> 00:10:54.125
<00:10:51.985>and <00:10:52.265>a <00:10:52.545>JavaScript <00:10:52.825>ready <00:10:53.105>for <00:10:53.385>us.

224
00:10:54.585 --> 00:10:57.725
<00:10:54.585>Uh, <00:10:54.818>we <00:10:55.051>can <00:10:55.285>call <00:10:55.518>the <00:10:55.751>ad <00:10:55.985>function

225
00:10:57.725 --> 00:11:01.365
<00:10:57.725>that <00:10:57.925>we <00:10:58.125>exported <00:10:58.325>passing <00:10:58.525>them <00:10:58.725>to, <00:10:58.925>uh, <00:10:59.125>arguments.

226
00:11:01.705 --> 00:11:04.605
<00:11:01.705>And <00:11:01.880>the <00:11:02.055>ad <00:11:02.230>functions <00:11:02.405>is <00:11:02.580>the <00:11:02.755>actual <00:11:02.930>rust <00:11:03.105>function

227
00:11:04.605 --> 00:11:07.365
<00:11:04.605>that <00:11:04.805>gets <00:11:05.005>executed <00:11:05.205>in <00:11:05.405>was, <00:11:05.605>so <00:11:05.805>of <00:11:06.005>course,

228
00:11:07.785 --> 00:11:10.885
<00:11:07.785>now <00:11:08.018>we <00:11:08.251>are <00:11:08.485>treating <00:11:08.718>this <00:11:08.951>into <00:11:09.185>H-H-T-M-L.

229
00:11:11.185 --> 00:11:14.005
<00:11:11.185>Of <00:11:11.359>course, <00:11:11.535>adding <00:11:11.709>to <00:11:11.885>numbers <00:11:12.060>is <00:11:12.234>not <00:11:12.410>the <00:11:12.584>case

230
00:11:14.655 --> 00:11:16.085
<00:11:14.655>where <00:11:14.912>you <00:11:15.169>will <00:11:15.427>use <00:11:15.684>web <00:11:15.942>assembly,

231
00:11:16.145 --> 00:11:18.965
<00:11:16.145>but <00:11:16.345>think <00:11:16.545>about <00:11:16.745>more <00:11:16.944>expensive <00:11:17.145>tasks <00:11:17.345>like <00:11:17.545>encoding

232
00:11:19.305 --> 00:11:22.365
<00:11:19.305>or <00:11:19.505>other <00:11:19.704>things <00:11:19.905>that <00:11:20.104>in <00:11:20.305>RAs <00:11:20.505>performs <00:11:20.704>better.

233
00:11:22.475 --> 00:11:26.045
<00:11:22.475>Okay? <00:11:22.630>You <00:11:22.786>can, <00:11:22.941>you <00:11:23.097>can <00:11:23.252>call <00:11:23.408>RAs <00:11:23.563>code <00:11:23.719>passing <00:11:23.875>arguments,

234
00:11:26.225 --> 00:11:27.765
<00:11:26.225>and <00:11:26.423>you <00:11:26.621>have <00:11:26.819>the <00:11:27.017>result <00:11:27.215>in <00:11:27.413>the <00:11:27.611>browser.

235
00:11:29.585 --> 00:11:33.805
<00:11:29.585>You <00:11:29.740>have <00:11:29.896>the, <00:11:30.051>uh, <00:11:30.207>the <00:11:30.362>sum <00:11:30.518>in <00:11:30.673>the <00:11:30.829>browser, <00:11:30.985>right?

236
00:11:34.585 --> 00:11:36.565
<00:11:34.585>But <00:11:34.935>there's <00:11:35.285>more, <00:11:35.635>there's <00:11:35.985>more

237
00:11:36.565 --> 00:11:40.725
<00:11:36.565>because <00:11:36.720>I, <00:11:36.876>I <00:11:37.031>thought <00:11:37.187>I, <00:11:37.342>I, <00:11:37.498>I <00:11:37.653>mentioned <00:11:37.809>wie <00:11:37.965>before,

238
00:11:41.105 --> 00:11:43.285
<00:11:41.105>and <00:11:41.385>WIE <00:11:41.665>is <00:11:41.945>the <00:11:42.225>system <00:11:42.505>interface.

239
00:11:43.465 --> 00:11:46.525
<00:11:43.465>And <00:11:43.665>through <00:11:43.865>wze, <00:11:44.065>the <00:11:44.265>runtime <00:11:44.465>can <00:11:44.665>access, <00:11:44.865>uh,

240
00:11:46.905 --> 00:11:48.325
<00:11:46.905>the <00:11:47.331>operating <00:11:47.757>systems <00:11:48.183>feature.

241
00:11:48.785 --> 00:11:52.685
<00:11:48.785>So <00:11:48.925>you <00:11:49.064>have <00:11:49.204>access <00:11:49.344>to <00:11:49.485>the <00:11:49.625>file <00:11:49.765>system <00:11:49.905>clocks, <00:11:50.045>uh, <00:11:50.185>sockets,

242
00:11:52.685 --> 00:11:54.005
<00:11:52.685>uh, <00:11:53.279>and <00:11:53.873>whatever.

243
00:11:55.145 --> 00:11:56.245
<00:11:55.145>And <00:11:55.392>the <00:11:55.640>cool <00:11:55.887>thing <00:11:56.135>is

244
00:11:56.275 --> 00:11:59.485
<00:11:56.275>that <00:11:56.508>you <00:11:56.741>have <00:11:56.975>integrated <00:11:57.208>security <00:11:57.441>in <00:11:57.675>azi.

245
00:11:59.785 --> 00:12:03.165
<00:11:59.785>So <00:12:00.135>it's <00:12:00.485>called <00:12:00.834>sandbox <00:12:01.185>mode.

246
00:12:03.225 --> 00:12:06.245
<00:12:03.225>So <00:12:03.380>every <00:12:03.536>time <00:12:03.691>a <00:12:03.847>user <00:12:04.002>needs <00:12:04.158>to <00:12:04.313>access <00:12:04.469>a <00:12:04.625>capability

247
00:12:06.265 --> 00:12:09.725
<00:12:06.265>of <00:12:06.465>the <00:12:06.665>system, <00:12:06.865>the <00:12:07.064>user <00:12:07.265>that <00:12:07.465>is <00:12:07.665>running

248
00:12:10.545 --> 00:12:14.085
<00:12:10.545>the <00:12:10.824>module <00:12:11.104>needs <00:12:11.385>to, <00:12:11.665>uh, <00:12:11.944>allow

249
00:12:14.855 --> 00:12:16.565
<00:12:14.855>every <00:12:15.555>feature, <00:12:16.255>okay?

250
00:12:16.565 --> 00:12:19.405
<00:12:16.565>Needs <00:12:16.798>to <00:12:17.031>specifically <00:12:17.265>manually <00:12:17.498>allow <00:12:17.731>every <00:12:17.965>feature,

251
00:12:19.415 --> 00:12:21.005
<00:12:19.415>every <00:12:20.115>capability <00:12:20.814>accessed.

252
00:12:22.065 --> 00:12:24.325
<00:12:22.065>So <00:12:22.240>this <00:12:22.415>is <00:12:22.590>the <00:12:22.765>sense <00:12:22.940>the <00:12:23.115>capability <00:12:23.290>based <00:12:23.465>security.

253
00:12:24.665 --> 00:12:28.845
<00:12:24.665>And <00:12:24.805>now <00:12:24.944>we <00:12:25.084>have, <00:12:25.224>uh, <00:12:25.365>the <00:12:25.505>WASI <00:12:25.645>review <00:12:25.785>two, <00:12:25.925>uh, <00:12:26.064>divided

254
00:12:29.435 --> 00:12:31.125
<00:12:29.435>each <00:12:29.714>the <00:12:29.994>capabilities <00:12:30.275>that <00:12:30.555>we <00:12:30.834>have.

255
00:12:31.125 --> 00:12:34.405
<00:12:31.125>In <00:12:31.265>two <00:12:31.405>words, <00:12:31.545>we <00:12:31.685>have <00:12:31.825>azi, <00:12:31.965>CLI <00:12:32.105>four <00:12:32.245>sockets <00:12:32.385>and <00:12:32.525>files

256
00:12:34.465 --> 00:12:35.565
<00:12:34.465>and <00:12:34.712>whatever <00:12:34.960>in <00:12:35.207>the <00:12:35.455>machine.

257
00:12:35.625 --> 00:12:37.645
<00:12:35.625>And <00:12:35.858>then <00:12:36.091>we <00:12:36.325>have <00:12:36.558>Wasi, <00:12:36.791>HTDP, <00:12:37.025>uh,

258
00:12:37.775 --> 00:12:39.445
<00:12:37.775>which <00:12:38.055>is <00:12:38.334>basically <00:12:38.615>an <00:12:38.895>HTP <00:12:39.175>proxy.

259
00:12:39.505 --> 00:12:41.405
<00:12:39.505>You <00:12:39.785>can <00:12:40.064>handle <00:12:40.345>the, <00:12:40.625>uh, <00:12:40.905>requests

260
00:12:41.405 --> 00:12:45.845
<00:12:41.405>and <00:12:41.579>responses <00:12:41.755>in <00:12:41.930>the <00:12:42.105>HTDP <00:12:42.280>word, <00:12:42.454>another <00:12:42.630>quicker <00:12:42.805>sample

261
00:12:46.065 --> 00:12:48.565
<00:12:46.065>to <00:12:46.298>see <00:12:46.531>the <00:12:46.765>capability <00:12:46.998>based, <00:12:47.231>uh, <00:12:47.465>model.

262
00:12:48.905 --> 00:12:52.165
<00:12:48.905>So <00:12:49.045>this <00:12:49.185>is <00:12:49.324>a <00:12:49.464>rust <00:12:49.605>functions <00:12:49.745>that <00:12:49.885>processes, <00:12:50.025>uh, <00:12:50.165>that, <00:12:50.305>uh,

263
00:12:52.455 --> 00:12:53.925
<00:12:52.455>reads <00:12:52.719>the <00:12:52.984>content <00:12:53.248>of <00:12:53.513>a <00:12:53.778>file

264
00:12:54.225 --> 00:12:57.045
<00:12:54.225>and <00:12:54.365>writes <00:12:54.505>the <00:12:54.645>content <00:12:54.785>of <00:12:54.925>the <00:12:55.065>same <00:12:55.205>file <00:12:55.345>to <00:12:55.485>another <00:12:55.625>file.

265
00:12:57.045 --> 00:12:58.725
<00:12:57.045>So <00:12:57.278>basically <00:12:57.511>to <00:12:57.745>copy <00:12:57.978>two <00:12:58.211>files. <00:12:58.444>Okay?

266
00:12:58.785 --> 00:13:01.325
<00:12:58.785>So <00:12:58.925>you <00:12:59.064>see <00:12:59.204>that <00:12:59.344>we <00:12:59.485>are <00:12:59.625>creating <00:12:59.765>a <00:12:59.905>new <00:13:00.045>file, <00:13:00.185>uh,

267
00:13:01.555 --> 00:13:03.565
<00:13:01.555>writing <00:13:01.755>all <00:13:01.954>the <00:13:02.155>content <00:13:02.354>of <00:13:02.555>the <00:13:02.755>first <00:13:02.954>file.

268
00:13:03.985 --> 00:13:06.405
<00:13:03.985>And <00:13:04.140>you <00:13:04.296>see <00:13:04.451>that <00:13:04.607>we <00:13:04.762>are <00:13:04.918>taking <00:13:05.073>the <00:13:05.229>two <00:13:05.385>files

269
00:13:06.745 --> 00:13:08.525
<00:13:06.745>to <00:13:07.025>parts <00:13:07.305>from <00:13:07.585>the <00:13:07.865>command <00:13:08.145>line.

270
00:13:09.505 --> 00:13:12.925
<00:13:09.505>So <00:13:09.680>now <00:13:09.855>first <00:13:10.030>we <00:13:10.205>compile <00:13:10.380>this <00:13:10.555>with <00:13:10.730>this <00:13:10.905>target,

271
00:13:13.155 --> 00:13:14.325
<00:13:13.155>WASM <00:13:13.506>30 <00:13:13.857>to <00:13:14.208>azi.

272
00:13:14.775 --> 00:13:18.845
<00:13:14.775>After <00:13:14.902>we <00:13:15.029>compile <00:13:15.156>this, <00:13:15.284>we <00:13:15.411>create <00:13:15.538>a <00:13:15.665>new <00:13:15.793>file <00:13:15.920>with <00:13:16.047>Hello <00:13:16.175>Word

273
00:13:18.865 --> 00:13:20.605
<00:13:18.865>inside <00:13:19.215>the <00:13:19.565>hello <00:13:19.915>TXT <00:13:20.265>file.

274
00:13:21.235 --> 00:13:25.925
<00:13:21.235>Then <00:13:21.362>we <00:13:21.489>use <00:13:21.616>Wasm <00:13:21.744>time <00:13:21.871>to <00:13:21.998>run <00:13:22.125>this <00:13:22.253>module <00:13:22.380>in <00:13:22.507>our <00:13:22.635>runtime.

275
00:13:25.985 --> 00:13:30.525
<00:13:25.985>So <00:13:26.112>main <00:13:26.239>dot <00:13:26.366>wasm <00:13:26.494>is <00:13:26.621>our <00:13:26.748>module. <00:13:26.875>The <00:13:27.003>first <00:13:27.130>argument <00:13:27.257>is <00:13:27.385>txt.

276
00:13:30.625 --> 00:13:34.565
<00:13:30.625>We <00:13:30.752>want <00:13:30.879>to <00:13:31.006>copy <00:13:31.134>into <00:13:31.261>slash <00:13:31.388>dmp <00:13:31.515>slash <00:13:31.643>denied, <00:13:31.770>but <00:13:31.897>we <00:13:32.025>cannot,

277
00:13:34.755 --> 00:13:38.165
<00:13:34.755>because <00:13:34.955>we <00:13:35.155>don't, <00:13:35.355>we <00:13:35.555>didn't <00:13:35.755>allow <00:13:35.955>the <00:13:36.155>runtime

278
00:13:38.185 --> 00:13:39.525
<00:13:38.185>to <00:13:38.587>access <00:13:38.988>the <00:13:39.391>directories.

279
00:13:39.665 --> 00:13:42.525
<00:13:39.665>So <00:13:39.805>first <00:13:39.944>we <00:13:40.084>allowed <00:13:40.224>the <00:13:40.365>current <00:13:40.505>directory <00:13:40.645>to <00:13:40.785>read <00:13:40.925>the <00:13:41.064>file.

280
00:13:42.785 --> 00:13:43.885
<00:13:42.785>We <00:13:43.032>still <00:13:43.280>get <00:13:43.527>an <00:13:43.775>error

281
00:13:43.885 --> 00:13:47.125
<00:13:43.885>because <00:13:44.060>we <00:13:44.235>have <00:13:44.410>to <00:13:44.585>allow <00:13:44.760>the, <00:13:44.935>uh, <00:13:45.110>target <00:13:45.285>directory.

282
00:13:47.265 --> 00:13:52.085
<00:13:47.265>So <00:13:47.420>allowing <00:13:47.576>also <00:13:47.731>the <00:13:47.887>slash <00:13:48.042>TMP <00:13:48.198>directory <00:13:48.353>will <00:13:48.509>allow <00:13:48.665>us

283
00:13:52.145 --> 00:13:55.085
<00:13:52.145>to <00:13:52.319>finish <00:13:52.495>the <00:13:52.670>computation <00:13:52.845>and <00:13:53.020>copying <00:13:53.194>the <00:13:53.370>two <00:13:53.545>files.

284
00:13:55.375 --> 00:13:58.405
<00:13:55.375>Proof. <00:13:55.550>I <00:13:55.725>can <00:13:55.900>cut <00:13:56.075>in <00:13:56.250>slash <00:13:56.425>tmp <00:13:56.600>slash <00:13:56.775>deny

285
00:13:58.865 --> 00:14:00.445
<00:13:58.865>and <00:13:59.145>see <00:13:59.425>that <00:13:59.705>the <00:13:59.985>same <00:14:00.265>content.

286
00:14:01.875 --> 00:14:06.825
<00:14:01.875>Okay? <00:14:02.575>So <00:14:03.275>now,

287
00:14:07.005 --> 00:14:09.145
<00:14:07.005>yes, <00:14:07.205>we <00:14:07.405>have <00:14:07.605>main <00:14:07.805>features <00:14:08.005>in <00:14:08.205>web <00:14:08.405>assembly.

288
00:14:09.165 --> 00:14:11.825
<00:14:09.165>We <00:14:09.365>have <00:14:09.564>performance <00:14:09.765>because <00:14:09.964>it's <00:14:10.165>optimized, <00:14:10.365>it's <00:14:10.564>small.

289
00:14:12.485 --> 00:14:15.865
<00:14:12.485>Um, <00:14:12.660>we <00:14:12.835>have <00:14:13.010>linear <00:14:13.185>memory, <00:14:13.360>we <00:14:13.535>have <00:14:13.710>aesthetically <00:14:13.885>types,

290
00:14:16.805 --> 00:14:19.065
<00:14:16.805>we <00:14:17.038>have <00:14:17.271>portability <00:14:17.505>because <00:14:17.738>it's <00:14:17.971>platform <00:14:18.204>agnostic.

291
00:14:19.485 --> 00:14:21.865
<00:14:19.485>Uh, <00:14:19.765>it's <00:14:20.045>architectural, <00:14:20.325>independent, <00:14:20.605>it's <00:14:20.885>runtime.

292
00:14:21.885 --> 00:14:25.025
<00:14:21.885>You <00:14:22.040>can, <00:14:22.196>uh, <00:14:22.351>port <00:14:22.507>the <00:14:22.662>runtime <00:14:22.818>wherever <00:14:22.973>you <00:14:23.129>need <00:14:23.285>it.

293
00:14:25.375 --> 00:14:26.425
<00:14:25.375>It's <00:14:25.847>cross <00:14:26.319>language.

294
00:14:26.845 --> 00:14:30.225
<00:14:26.845>We <00:14:27.020>have <00:14:27.195>many <00:14:27.370>source <00:14:27.545>languages <00:14:27.720>that <00:14:27.895>we <00:14:28.070>can <00:14:28.245>use.

295
00:14:30.485 --> 00:14:33.025
<00:14:30.485>So <00:14:30.660>you <00:14:30.835>have <00:14:31.010>teams <00:14:31.185>writing <00:14:31.360>code <00:14:31.535>in <00:14:31.710>different <00:14:31.885>languages.

296
00:14:33.215 --> 00:14:36.345
<00:14:33.215>It's <00:14:33.370>fine, <00:14:33.526>because <00:14:33.681>they <00:14:33.837>all <00:14:33.992>can <00:14:34.148>all <00:14:34.303>if <00:14:34.459>that, <00:14:34.615>if,

297
00:14:36.405 --> 00:14:38.945
<00:14:36.405>if <00:14:36.605>it's <00:14:36.805>a <00:14:37.005>supported <00:14:37.204>language, <00:14:37.405>they <00:14:37.605>can <00:14:37.805>compile

298
00:14:39.205 --> 00:14:40.505
<00:14:39.205>for <00:14:39.439>web <00:14:39.673>assembly <00:14:39.907>as <00:14:40.141>a <00:14:40.375>target.

299
00:14:41.125 --> 00:14:43.825
<00:14:41.125>Um, <00:14:41.325>and <00:14:41.525>we <00:14:41.725>have <00:14:41.925>security, <00:14:42.125>it's <00:14:42.325>memory <00:14:42.525>safe.

300
00:14:43.965 --> 00:14:45.545
<00:14:43.965>So <00:14:44.315>the <00:14:44.665>US <00:14:45.015>government <00:14:45.365>approves,

301
00:14:45.965 --> 00:14:47.945
<00:14:45.965>and <00:14:46.315>it's <00:14:46.665>sandboxed, <00:14:47.015>it's <00:14:47.365>isolated.

302
00:14:48.045 --> 00:14:49.425
<00:14:48.045>So <00:14:48.355>each <00:14:48.665>module <00:14:48.976>is <00:14:49.286>isolated.

303
00:14:49.775 --> 00:14:53.005
<00:14:49.775>When <00:14:49.915>you <00:14:50.055>run <00:14:50.194>a <00:14:50.334>module, <00:14:50.475>the <00:14:50.615>module <00:14:50.755>can <00:14:50.895>only <00:14:51.035>access <00:14:51.175>its

304
00:14:53.005 --> 00:14:55.965
<00:14:53.005>memory, <00:14:53.180>not <00:14:53.355>the <00:14:53.530>memories <00:14:53.705>for, <00:14:53.880>uh, <00:14:54.055>from <00:14:54.230>other <00:14:54.405>modules.

305
00:14:56.585 --> 00:14:58.405
<00:14:56.585>And <00:14:56.785>it <00:14:56.985>uses <00:14:57.185>a <00:14:57.385>denied <00:14:57.585>by <00:14:57.785>default <00:14:57.985>approach.

306
00:14:58.425 --> 00:15:03.325
<00:14:58.425>So <00:14:58.580>you <00:14:58.736>have <00:14:58.891>to <00:14:59.047>manually <00:14:59.202>allow <00:14:59.358>each <00:14:59.513>capability, <00:14:59.669>uh, <00:14:59.824>quickly.

307
00:15:03.395 --> 00:15:04.845
<00:15:03.395>Some <00:15:03.721>concepts, <00:15:04.047>you <00:15:04.373>have <00:15:04.700>instructions.

308
00:15:04.845 --> 00:15:07.365
<00:15:04.845>So <00:15:05.000>inside <00:15:05.156>the <00:15:05.311>runtime <00:15:05.467>work <00:15:05.622>stack, <00:15:05.778>like <00:15:05.933>a <00:15:06.089>stack <00:15:06.245>machine.

309
00:15:07.505 --> 00:15:10.965
<00:15:07.505>So <00:15:07.660>you <00:15:07.816>push, <00:15:07.971>uh, <00:15:08.127>instructions <00:15:08.282>and <00:15:08.438>values <00:15:08.593>to <00:15:08.749>the <00:15:08.905>stack,

310
00:15:10.985 --> 00:15:14.085
<00:15:10.985>and <00:15:11.160>you, <00:15:11.335>it's, <00:15:11.510>uh, <00:15:11.685>it's <00:15:11.860>a <00:15:12.035>life <00:15:12.210>four <00:15:12.385>module.

311
00:15:14.265 --> 00:15:17.365
<00:15:14.265>So <00:15:14.420>the <00:15:14.576>last <00:15:14.731>inflection <00:15:14.887>you <00:15:15.042>put, <00:15:15.198>it's, <00:15:15.353>it's <00:15:15.509>basically, <00:15:15.665>um,

312
00:15:17.785 --> 00:15:19.765
<00:15:17.785>uh, <00:15:18.135>similar <00:15:18.485>to <00:15:18.834>the <00:15:19.185>C

313
00:15:19.765 --> 00:15:23.925
<00:15:19.765>or <00:15:19.939>last, <00:15:20.115>um, <00:15:20.290>how <00:15:20.465>them <00:15:20.640>works <00:15:20.814>in <00:15:20.990>managing <00:15:21.165>memories.

314
00:15:23.925 --> 00:15:25.685
<00:15:23.925>Okay? <00:15:24.125>And <00:15:24.324>then <00:15:24.525>you <00:15:24.724>have <00:15:24.925>this <00:15:25.125>linear <00:15:25.324>memory.

315
00:15:26.105 --> 00:15:29.885
<00:15:26.105>So <00:15:26.280>where <00:15:26.455>you <00:15:26.630>store <00:15:26.805>objects, <00:15:26.980>linear <00:15:27.155>memory <00:15:27.330>is, <00:15:27.505>uh,

316
00:15:29.935 --> 00:15:31.485
<00:15:29.935>contiguous <00:15:30.400>array <00:15:30.865>of <00:15:31.330>bytes.

317
00:15:32.185 --> 00:15:35.365
<00:15:32.185>Web <00:15:32.385>assembly <00:15:32.584>can <00:15:32.785>also <00:15:32.984>store <00:15:33.185>integer, <00:15:33.385>uh, <00:15:33.584>intes

318
00:15:35.585 --> 00:15:37.445
<00:15:35.585>for <00:15:36.051>32 <00:15:36.518>64 <00:15:36.985>bits.

319
00:15:38.145 --> 00:15:41.405
<00:15:38.145>And <00:15:38.319>the, <00:15:38.495>the, <00:15:38.670>the <00:15:38.845>module <00:15:39.020>can <00:15:39.194>access, <00:15:39.370>can <00:15:39.545>write

320
00:15:41.405 --> 00:15:43.885
<00:15:41.405>and <00:15:41.605>read <00:15:41.805>anywhere <00:15:42.005>in <00:15:42.204>these <00:15:42.405>array <00:15:42.605>of <00:15:42.805>bytes.

321
00:15:44.105 --> 00:15:47.845
<00:15:44.105>If <00:15:44.260>the <00:15:44.416>models <00:15:44.571>try <00:15:44.727>to <00:15:44.882>access <00:15:45.038>outside <00:15:45.193>of <00:15:45.349>the <00:15:45.505>bounds

322
00:15:48.065 --> 00:15:50.085
<00:15:48.065>of <00:15:48.298>its <00:15:48.531>memory, <00:15:48.765>you <00:15:48.998>get <00:15:49.231>an <00:15:49.465>error.

323
00:15:50.465 --> 00:15:52.045
<00:15:50.465>And <00:15:50.815>so <00:15:51.165>you <00:15:51.515>cannot <00:15:51.865>read

324
00:15:52.045 --> 00:15:54.965
<00:15:52.045>or <00:15:52.245>write <00:15:52.444>out <00:15:52.645>outside <00:15:52.844>of <00:15:53.045>your, <00:15:53.245>uh, <00:15:53.444>memory.

325
00:15:55.705 --> 00:15:58.205
<00:15:55.705>So <00:15:55.938>this <00:15:56.171>is <00:15:56.405>the <00:15:56.638>safety <00:15:56.871>feature, <00:15:57.105>okay?

326
00:15:58.745 --> 00:16:01.445
<00:15:58.745>Um, <00:15:58.945>and <00:15:59.145>when <00:15:59.345>you <00:15:59.545>compile <00:15:59.745>web <00:15:59.945>assembly <00:16:00.145>source

327
00:16:01.445 --> 00:16:02.525
<00:16:01.445>code, <00:16:01.688>you <00:16:01.931>get <00:16:02.174>a <00:16:02.417>module.

328
00:16:02.755 --> 00:16:05.045
<00:16:02.755>It's <00:16:02.955>called <00:16:03.155>a <00:16:03.355>module. <00:16:03.555>Uh, <00:16:03.755>in <00:16:03.955>a <00:16:04.155>module,

329
00:16:05.145 --> 00:16:06.245
<00:16:05.145>you <00:16:05.475>have <00:16:05.805>every <00:16:06.135>definition.

330
00:16:06.245 --> 00:16:08.285
<00:16:06.245>You <00:16:06.420>have <00:16:06.595>data, <00:16:06.770>you <00:16:06.945>have <00:16:07.120>tables, <00:16:07.295>you <00:16:07.470>have <00:16:07.645>values

331
00:16:08.785 --> 00:16:12.725
<00:16:08.785>and <00:16:08.959>definitions <00:16:09.135>of <00:16:09.310>functions <00:16:09.485>and <00:16:09.660>values <00:16:09.834>can <00:16:10.010>be <00:16:10.185>exported

332
00:16:13.225 --> 00:16:14.805
<00:16:13.225>and <00:16:13.691>imported <00:16:14.158>from <00:16:14.625>modules.

333
00:16:14.945 --> 00:16:18.085
<00:16:14.945>So <00:16:15.120>you <00:16:15.295>can <00:16:15.470>have <00:16:15.645>multiple <00:16:15.820>modules <00:16:15.995>that <00:16:16.170>can <00:16:16.345>interoperate,

334
00:16:18.395 --> 00:16:20.085
<00:16:18.395>exporting, <00:16:18.861>and <00:16:19.328>importing <00:16:19.795>functions.

335
00:16:21.195 --> 00:16:24.045
<00:16:21.195>Modules <00:16:21.322>can <00:16:21.449>run <00:16:21.576>in <00:16:21.704>the <00:16:21.831>browser <00:16:21.958>as <00:16:22.085>we <00:16:22.213>can, <00:16:22.340>as <00:16:22.467>we <00:16:22.595>saw,

336
00:16:24.345 --> 00:16:28.885
<00:16:24.345>or <00:16:24.485>via, <00:16:24.625>uh, <00:16:24.765>other <00:16:24.905>runtimes, <00:16:25.045>like <00:16:25.185>wasm <00:16:25.325>times <00:16:25.465>one, <00:16:25.605>et <00:16:25.745>cetera.

337
00:16:30.135 --> 00:16:33.485
<00:16:30.135>Since <00:16:30.310>we <00:16:30.485>have <00:16:30.660>multiple <00:16:30.835>models <00:16:31.010>that <00:16:31.185>can <00:16:31.360>work <00:16:31.535>together,

338
00:16:34.195 --> 00:16:37.285
<00:16:34.195>they <00:16:34.428>need <00:16:34.661>a <00:16:34.895>way <00:16:35.128>to <00:16:35.361>exchange <00:16:35.595>values,

339
00:16:37.805 --> 00:16:39.485
<00:16:37.805>instructions, <00:16:39.204>functions.

340
00:16:39.945 --> 00:16:42.085
<00:16:39.945>The <00:16:40.295>thing <00:16:40.645>is, <00:16:40.995>low <00:16:41.345>level

341
00:16:42.675 --> 00:16:45.325
<00:16:42.675>different <00:16:43.025>languages <00:16:43.375>uses <00:16:43.724>different <00:16:44.074>representations

342
00:16:45.325 --> 00:16:47.965
<00:16:45.325>of <00:16:45.558>the <00:16:45.791>same, <00:16:46.025>uh, <00:16:46.258>the <00:16:46.491>same <00:16:46.725>types.

343
00:16:48.235 --> 00:16:51.125
<00:16:48.235>Like <00:16:48.410>for <00:16:48.585>example, <00:16:48.760>a <00:16:48.935>string <00:16:49.110>in <00:16:49.285>rust <00:16:49.460>is <00:16:49.635>represented

344
00:16:51.125 --> 00:16:52.925
<00:16:51.125>differently <00:16:51.405>than <00:16:51.685>a <00:16:51.965>string <00:16:52.245>in <00:16:52.525>JavaScript.

345
00:16:53.225 --> 00:16:55.045
<00:16:53.225>So <00:16:53.425>you <00:16:53.625>need <00:16:53.825>a <00:16:54.025>way <00:16:54.225>to <00:16:54.425>make <00:16:54.625>different

346
00:16:55.045 --> 00:16:56.565
<00:16:55.045>modules, <00:16:55.318>uh, <00:16:55.592>talk <00:16:55.865>to <00:16:56.139>each <00:16:56.413>other.

347
00:16:56.785 --> 00:17:00.445
<00:16:56.785>And <00:16:56.912>the <00:16:57.039>way, <00:16:57.166>uh, <00:16:57.294>that <00:16:57.421>the <00:16:57.548>working <00:16:57.675>group <00:16:57.803>came <00:16:57.930>up <00:16:58.057>with <00:16:58.185>this,

348
00:17:00.705 --> 00:17:03.205
<00:17:00.705>uh, <00:17:00.938>concept, <00:17:01.171>the <00:17:01.405>web <00:17:01.638>assembly <00:17:01.871>component <00:17:02.105>module.

349
00:17:03.265 --> 00:17:06.405
<00:17:03.265>So <00:17:03.420>a <00:17:03.576>component <00:17:03.731>is <00:17:03.887>basically <00:17:04.042>a <00:17:04.198>wrapper <00:17:04.353>around <00:17:04.509>the <00:17:04.665>module.

350
00:17:06.985 --> 00:17:10.405
<00:17:06.984>And <00:17:07.159>in <00:17:07.334>this <00:17:07.510>wrapper, <00:17:07.685>you <00:17:07.859>have, <00:17:08.034>uh, <00:17:08.209>an <00:17:08.385>interface.

351
00:17:10.825 --> 00:17:14.845
<00:17:10.825>And <00:17:10.980>through <00:17:11.136>this <00:17:11.291>interface, <00:17:11.447>a <00:17:11.602>module <00:17:11.758>is <00:17:11.913>able <00:17:12.069>to <00:17:12.225>export

352
00:17:14.905 --> 00:17:17.365
<00:17:14.905>and <00:17:15.185>import <00:17:15.464>definitions <00:17:15.744>and <00:17:16.024>read <00:17:16.305>everything.

353
00:17:17.705 --> 00:17:20.765
<00:17:17.704>And <00:17:17.879>other <00:17:18.054>modules <00:17:18.230>using <00:17:18.405>this <00:17:18.579>component <00:17:18.754>module <00:17:18.929>can <00:17:19.105>read

354
00:17:21.025 --> 00:17:24.365
<00:17:21.025>and <00:17:21.180>export <00:17:21.336>and <00:17:21.491>import <00:17:21.647>functions <00:17:21.802>and <00:17:21.958>values <00:17:22.113>the <00:17:22.269>same <00:17:22.425>way.

355
00:17:24.385 --> 00:17:26.885
<00:17:24.385>So <00:17:24.618>it's <00:17:24.851>a <00:17:25.085>compatibility <00:17:25.318>layer <00:17:25.551>between <00:17:25.785>models,

356
00:17:27.315 --> 00:17:29.165
<00:17:27.315>between <00:17:28.015>modules, <00:17:28.715>right?

357
00:17:31.025 --> 00:17:34.835
<00:17:31.025>Um, <00:17:31.180>then <00:17:31.336>I <00:17:31.491>have <00:17:31.647>to <00:17:31.802>drink. <00:17:31.958>This <00:17:32.113>is <00:17:32.269>my <00:17:32.425>intermission.

358
00:17:34.915 --> 00:17:35.875
<00:17:34.915>I <00:17:35.059>will <00:17:35.203>leave <00:17:35.347>you <00:17:35.491>with <00:17:35.635>a <00:17:35.779>flow.

359
00:17:41.715 --> 00:17:46.505
<00:17:41.715>Thank <00:17:41.995>you. <00:17:42.274>Now, <00:17:42.554>chapter <00:17:42.834>three, <00:17:43.115>uh,

360
00:17:46.565 --> 00:17:48.665
<00:17:46.565>wasn't <00:17:46.720>in <00:17:46.876>the <00:17:47.031>cloud <00:17:47.187>because <00:17:47.342>we <00:17:47.498>are <00:17:47.653>here <00:17:47.809>to <00:17:47.965>see

361
00:17:49.665 --> 00:17:51.525
<00:17:49.665>why <00:17:49.898>Wasm <00:17:50.131>is <00:17:50.365>okay <00:17:50.598>for <00:17:50.831>the <00:17:51.065>cloud.

362
00:17:51.675 --> 00:17:55.125
<00:17:51.675>Yeah. <00:17:51.908>Now <00:17:52.141>we <00:17:52.375>know <00:17:52.608>what <00:17:52.841>WebAssembly <00:17:53.075>is,

363
00:17:55.785 --> 00:17:57.645
<00:17:55.785>its <00:17:56.065>main <00:17:56.345>concepts, <00:17:56.625>how <00:17:56.905>it <00:17:57.185>works.

364
00:17:58.225 --> 00:17:59.685
<00:17:58.225>So <00:17:58.389>how <00:17:58.553>can <00:17:58.717>we <00:17:58.881>use <00:17:59.046>it <00:17:59.210>in <00:17:59.374>the <00:17:59.539>cloud?

365
00:18:01.025 --> 00:18:03.365
<00:18:01.025>So <00:18:01.225>cloud <00:18:01.425>computing <00:18:01.625>is <00:18:01.825>about <00:18:02.025>distributed <00:18:02.225>applications, <00:18:02.425>okay?

366
00:18:03.365 --> 00:18:04.885
<00:18:03.365>You <00:18:03.536>can <00:18:03.707>have <00:18:03.878>monitor, <00:18:04.049>its <00:18:04.220>in <00:18:04.391>the <00:18:04.562>cloud, <00:18:04.733>right?

367
00:18:04.885 --> 00:18:06.005
<00:18:04.885>But <00:18:05.221>the <00:18:05.557>right <00:18:05.893>scenario

368
00:18:06.005 --> 00:18:08.805
<00:18:06.005>for <00:18:06.180>the <00:18:06.355>cloud <00:18:06.530>is <00:18:06.705>having <00:18:06.880>a <00:18:07.055>microservice <00:18:07.230>architecture <00:18:07.405>with,

369
00:18:08.905 --> 00:18:10.125
<00:18:08.905>uh, <00:18:09.454>multiple <00:18:10.003>workloads.

370
00:18:10.395 --> 00:18:13.405
<00:18:10.395>What <00:18:10.550>do <00:18:10.706>we <00:18:10.861>want <00:18:11.017>from <00:18:11.172>a <00:18:11.328>workload? <00:18:11.483>We <00:18:11.639>want <00:18:11.795>efficiency.

371
00:18:13.425 --> 00:18:14.445
<00:18:13.425>We <00:18:13.884>want <00:18:14.342>flexibility.

372
00:18:14.825 --> 00:18:17.885
<00:18:14.825>We <00:18:15.000>want <00:18:15.175>scalability, <00:18:15.350>and <00:18:15.525>we <00:18:15.700>want <00:18:15.875>security <00:18:16.050>above <00:18:16.225>all.

373
00:18:18.185 --> 00:18:22.205
<00:18:18.185>And <00:18:18.340>web <00:18:18.496>assembly <00:18:18.651>is <00:18:18.807>the <00:18:18.962>right <00:18:19.118>runtime <00:18:19.273>for <00:18:19.429>your <00:18:19.585>workload

374
00:18:22.205 --> 00:18:25.365
<00:18:22.205>because <00:18:22.438>it's <00:18:22.671>efficient, <00:18:22.905>it's <00:18:23.138>flexible, <00:18:23.371>it's <00:18:23.605>scales,

375
00:18:25.825 --> 00:18:27.845
<00:18:25.825>and <00:18:26.291>it <00:18:26.758>has <00:18:27.225>securities.

376
00:18:28.045 --> 00:18:29.245
<00:18:28.045>I <00:18:28.225>I'm <00:18:28.405>not <00:18:28.585>reading <00:18:28.764>all <00:18:28.945>of <00:18:29.125>it,

377
00:18:29.265 --> 00:18:31.565
<00:18:29.265>but <00:18:29.420>I <00:18:29.576>will <00:18:29.731>leave <00:18:29.887>the <00:18:30.042>slides <00:18:30.198>to <00:18:30.353>you <00:18:30.509>after <00:18:30.665>this.

378
00:18:32.705 --> 00:18:35.485
<00:18:32.705>And <00:18:32.860>in <00:18:33.016>fact, <00:18:33.171>there <00:18:33.327>are <00:18:33.482>many <00:18:33.638>companies <00:18:33.793>that <00:18:33.949>are <00:18:34.105>offering

379
00:18:36.195 --> 00:18:39.605
<00:18:36.195>Wasm <00:18:36.428>runtime <00:18:36.661>for <00:18:36.895>their <00:18:37.128>cloud <00:18:37.361>to <00:18:37.595>you.

380
00:18:39.605 --> 00:18:42.965
<00:18:39.605>Right <00:18:39.745>now, <00:18:39.885>Firman <00:18:40.025>is <00:18:40.165>one <00:18:40.305>of <00:18:40.445>the, <00:18:40.585>uh, <00:18:40.725>newest <00:18:40.865>company <00:18:41.005>that's,

381
00:18:43.265 --> 00:18:46.645
<00:18:43.265>uh, <00:18:43.420>using <00:18:43.576>web <00:18:43.731>assembly <00:18:43.887>as <00:18:44.042>a <00:18:44.198>runtime <00:18:44.353>for <00:18:44.509>the <00:18:44.665>cloud.

382
00:18:46.865 --> 00:18:49.165
<00:18:46.865>And <00:18:47.098>Firmo <00:18:47.331>is <00:18:47.565>the <00:18:47.798>company <00:18:48.031>behind <00:18:48.265>Helm.

383
00:18:49.545 --> 00:18:51.965
<00:18:49.545>Um, <00:18:49.745>and <00:18:49.945>with <00:18:50.145>firman <00:18:50.345>Cloud, <00:18:50.545>you <00:18:50.745>can <00:18:50.945>deploy

384
00:18:52.475 --> 00:18:55.525
<00:18:52.475>Wasm <00:18:52.675>code <00:18:52.875>wasm <00:18:53.074>modules <00:18:53.274>in <00:18:53.475>a <00:18:53.675>serverless <00:18:53.875>environment

385
00:18:55.525 --> 00:18:59.165
<00:18:55.525>and <00:18:55.725>run <00:18:55.925>functions, <00:18:56.125>um, <00:18:56.325>just <00:18:56.525>like <00:18:56.725>serverless <00:18:56.925>functions.

386
00:18:59.785 --> 00:19:01.685
<00:18:59.785>And <00:19:00.065>they <00:19:00.345>also <00:19:00.625>released <00:19:00.905>Spin <00:19:01.185>Cuba,

387
00:19:01.685 --> 00:19:02.925
<00:19:01.685>we <00:19:01.908>will <00:19:02.131>talk <00:19:02.354>about <00:19:02.577>that <00:19:02.801>later.

388
00:19:03.585 --> 00:19:07.645
<00:19:03.585>And <00:19:03.865>also <00:19:04.145>CloudFlare <00:19:04.425>with <00:19:04.705>workers, <00:19:04.985>uh,

389
00:19:07.655 --> 00:19:10.565
<00:19:07.655>gives <00:19:07.810>you <00:19:07.966>a <00:19:08.121>web <00:19:08.277>assembly, <00:19:08.432>run <00:19:08.588>time <00:19:08.743>for <00:19:08.899>the <00:19:09.055>same,

390
00:19:10.705 --> 00:19:11.925
<00:19:10.705>uh, <00:19:10.979>for <00:19:11.254>the <00:19:11.528>same <00:19:11.803>thing.

391
00:19:11.925 --> 00:19:14.605
<00:19:11.925>Running <00:19:12.065>was <00:19:12.205>modules <00:19:12.345>in <00:19:12.485>the <00:19:12.625>cloud. <00:19:12.764>We <00:19:12.905>see <00:19:13.044>a <00:19:13.185>quick <00:19:13.325>demo.

392
00:19:14.825 --> 00:19:19.165
<00:19:14.825>If <00:19:15.000>you <00:19:15.175>bootstrap <00:19:15.350>a <00:19:15.525>CloudFlare, <00:19:15.700>uh, <00:19:15.875>project <00:19:16.050>using <00:19:16.225>Wrangler,

393
00:19:19.185 --> 00:19:21.845
<00:19:19.185>you <00:19:19.418>use, <00:19:19.651>it's <00:19:19.885>the, <00:19:20.118>uh, <00:19:20.351>CloudFlare <00:19:20.585>tool

394
00:19:22.235 --> 00:19:24.645
<00:19:22.235>with <00:19:22.584>this <00:19:22.935>template, <00:19:23.284>wasm <00:19:23.635>CloudFlare.

395
00:19:24.865 --> 00:19:28.205
<00:19:24.865>So <00:19:25.040>you <00:19:25.215>bootstrap <00:19:25.390>a <00:19:25.565>new <00:19:25.740>template, <00:19:25.915>um, <00:19:26.090>with <00:19:26.265>Wrangler,

396
00:19:28.205 --> 00:19:30.165
<00:19:28.205>you <00:19:28.405>are <00:19:28.605>already <00:19:28.804>connected <00:19:29.004>to <00:19:29.205>your <00:19:29.405>CloudFlare <00:19:29.605>account.

397
00:19:30.785 --> 00:19:32.685
<00:19:30.785>Now <00:19:31.065>you <00:19:31.345>have <00:19:31.625>a <00:19:31.905>new <00:19:32.185>project.

398
00:19:33.225 --> 00:19:36.885
<00:19:33.225>We <00:19:33.352>can <00:19:33.479>change <00:19:33.606>the <00:19:33.734>name <00:19:33.861>of <00:19:33.988>the <00:19:34.115>product, <00:19:34.243>uh, <00:19:34.370>wasm <00:19:34.497>Cloud. <00:19:34.625>Okay?

399
00:19:37.345 --> 00:19:41.245
<00:19:37.345>You <00:19:37.500>have <00:19:37.656>a <00:19:37.811>rust, <00:19:37.967>uh, <00:19:38.122>file. <00:19:38.278>This <00:19:38.433>is, <00:19:38.589>yeah, <00:19:38.745>metadata.

400
00:19:41.245 --> 00:19:42.845
<00:19:41.245>You <00:19:41.445>have <00:19:41.645>the <00:19:41.844>RAs <00:19:42.044>file. <00:19:42.245>You <00:19:42.445>can, <00:19:42.645>uh,

401
00:19:42.845 --> 00:19:45.485
<00:19:42.845>manipulate <00:19:43.125>the <00:19:43.405>HTP <00:19:43.685>response <00:19:43.965>and <00:19:44.245>request.

402
00:19:46.065 --> 00:19:47.125
<00:19:46.065>So <00:19:46.383>I <00:19:46.701>changed <00:19:47.019>this.

403
00:19:47.665 --> 00:19:49.805
<00:19:47.665>Uh, <00:19:47.945>you <00:19:48.225>see, <00:19:48.504>you <00:19:48.784>have <00:19:49.065>request

404
00:19:49.805 --> 00:19:52.325
<00:19:49.805>and <00:19:50.005>response <00:19:50.205>to, <00:19:50.405>for, <00:19:50.605>in, <00:19:50.805>in <00:19:51.005>these <00:19:51.205>functions.

405
00:19:52.865 --> 00:19:55.485
<00:19:52.865>So <00:19:53.065>now <00:19:53.265>I <00:19:53.465>can <00:19:53.665>simply <00:19:53.865>use <00:19:54.065>the <00:19:54.265>Wrangler.

406
00:19:55.485 --> 00:19:59.525
<00:19:55.485>Deploy <00:19:55.764>is <00:19:56.044>using <00:19:56.324>the <00:19:56.604>RA <00:19:56.885>compiler

407
00:20:00.065 --> 00:20:01.125
<00:20:00.065>and <00:20:00.383>the <00:20:00.701>was <00:20:01.019>pack,

408
00:20:01.665 --> 00:20:04.965
<00:20:01.665>and <00:20:01.792>it <00:20:01.919>gives <00:20:02.046>me <00:20:02.174>a <00:20:02.301>ready <00:20:02.428>to <00:20:02.555>use, <00:20:02.683>uh, <00:20:02.810>web <00:20:02.937>assembly <00:20:03.065>module.

409
00:20:05.145 --> 00:20:08.805
<00:20:05.145>Not <00:20:05.320>only <00:20:05.495>it <00:20:05.670>deploys <00:20:05.845>it <00:20:06.020>to <00:20:06.195>the <00:20:06.370>CloudFlare, <00:20:06.545>uh,

410
00:20:08.805 --> 00:20:09.805
<00:20:08.805>serverless <00:20:09.705>cloud.

411
00:20:10.345 --> 00:20:14.365
<00:20:10.345>So <00:20:10.500>I, <00:20:10.656>I <00:20:10.811>have <00:20:10.967>the <00:20:11.122>Wasm <00:20:11.278>module <00:20:11.433>compile <00:20:11.589>everything <00:20:11.745>is

412
00:20:14.425 --> 00:20:16.365
<00:20:14.425>inside <00:20:14.625>the <00:20:14.825>same <00:20:15.024>things <00:20:15.225>as <00:20:15.425>we <00:20:15.625>saw <00:20:15.825>before.

413
00:20:16.385 --> 00:20:18.445
<00:20:16.385>So, <00:20:16.735>modules, <00:20:17.085>JavaScript, <00:20:17.435>et <00:20:17.785>cetera.

414
00:20:18.705 --> 00:20:21.165
<00:20:18.705>But <00:20:18.860>if <00:20:19.016>you <00:20:19.171>see <00:20:19.327>here, <00:20:19.482>we <00:20:19.638>also <00:20:19.793>have <00:20:19.949>a <00:20:20.105>URL.

415
00:20:21.345 --> 00:20:22.925
<00:20:21.345>And <00:20:21.625>if <00:20:21.905>you <00:20:22.185>open <00:20:22.465>this <00:20:22.745>URL,

416
00:20:23.145 --> 00:20:25.085
<00:20:23.145>you <00:20:23.345>see <00:20:23.545>the <00:20:23.745>content <00:20:23.945>that <00:20:24.145>you <00:20:24.345>are <00:20:24.545>expecting.

417
00:20:25.085 --> 00:20:28.325
<00:20:25.085>So <00:20:25.285>the <00:20:25.485>string <00:20:25.685>that <00:20:25.885>you <00:20:26.085>are, <00:20:26.285>uh, <00:20:26.485>exporting.

418
00:20:29.515 --> 00:20:33.695
<00:20:29.515>Now <00:20:29.655>in <00:20:29.795>cloud, <00:20:29.935>we <00:20:30.075>need <00:20:30.215>a <00:20:30.355>runtime <00:20:30.495>to <00:20:30.635>run <00:20:30.775>our <00:20:30.915>workloads,

419
00:20:33.715 --> 00:20:34.935
<00:20:33.715>and <00:20:33.934>we <00:20:34.154>have <00:20:34.373>many <00:20:34.593>of <00:20:34.812>them.

420
00:20:35.355 --> 00:20:38.015
<00:20:35.355>Uh, <00:20:35.510>for <00:20:35.666>example, <00:20:35.821>was <00:20:35.977>a <00:20:36.132>major <00:20:36.288>runtime, <00:20:36.443>is <00:20:36.599>the <00:20:36.755>runtime

421
00:20:38.015 --> 00:20:40.375
<00:20:38.015>that's <00:20:38.365>currently <00:20:38.715>A-C-N-C-F <00:20:39.065>sandbox <00:20:39.415>project.

422
00:20:40.955 --> 00:20:45.895
<00:20:40.955>Um, <00:20:41.095>and <00:20:41.235>it's <00:20:41.375>used <00:20:41.514>by, <00:20:41.655>uh, <00:20:41.794>Docker, <00:20:41.935>by <00:20:42.074>Kubernetes, <00:20:42.215>by <00:20:42.355>many,

423
00:20:46.115 --> 00:20:48.765
<00:20:46.115>uh, <00:20:46.348>projects <00:20:46.581>to <00:20:46.815>run <00:20:47.048>web <00:20:47.281>assembly <00:20:47.515>workloads.

424
00:20:48.945 --> 00:20:51.445
<00:20:48.945>Uh, <00:20:49.225>how, <00:20:49.504>well, <00:20:49.784>if <00:20:50.064>you, <00:20:50.345>uh,

425
00:20:51.545 --> 00:20:54.165
<00:20:51.545>enable <00:20:51.778>container <00:20:52.011>D <00:20:52.245>image <00:20:52.478>store <00:20:52.711>in <00:20:52.945>Docker,

426
00:20:54.285 --> 00:20:56.325
<00:20:54.285>I <00:20:54.485>think <00:20:54.685>it's <00:20:54.885>still <00:20:55.085>experimental, <00:20:55.285>and <00:20:55.485>I <00:20:55.685>remember,

427
00:20:56.505 --> 00:21:00.245
<00:20:56.505>but <00:20:56.621>if <00:20:56.738>you <00:20:56.855>enable <00:20:56.971>it, <00:20:57.088>you <00:20:57.205>can <00:20:57.321>use <00:20:57.438>was <00:20:57.555>image <00:20:57.671>as <00:20:57.788>a <00:20:57.905>runtime,

428
00:21:00.725 --> 00:21:03.925
<00:21:00.725>enabling <00:21:00.958>wasm <00:21:01.191>support, <00:21:01.425>um, <00:21:01.658>how <00:21:01.891>it's <00:21:02.125>working.

429
00:21:04.425 --> 00:21:08.125
<00:21:04.425>Uh, <00:21:04.625>you <00:21:04.825>see <00:21:05.024>there <00:21:05.225>that <00:21:05.425>we <00:21:05.625>have <00:21:05.825>nothing.

430
00:21:08.275 --> 00:21:10.365
<00:21:08.275>Yeah, <00:21:08.975>no, <00:21:09.675>yeah.

431
00:21:10.505 --> 00:21:14.605
<00:21:10.505>We <00:21:10.738>have <00:21:10.971>two, <00:21:11.205>um, <00:21:11.438>containers. <00:21:11.671>For <00:21:11.905>containers.

432
00:21:14.625 --> 00:21:16.485
<00:21:14.625>You <00:21:14.825>have <00:21:15.025>a <00:21:15.225>runtime, <00:21:15.425>which <00:21:15.625>is <00:21:15.825>run <00:21:16.025>sea.

433
00:21:16.505 --> 00:21:18.525
<00:21:16.505>Run <00:21:16.705>Sea <00:21:16.905>is <00:21:17.105>the <00:21:17.305>runtime <00:21:17.505>for <00:21:17.705>containers. <00:21:17.905>Yeah.

434
00:21:18.865 --> 00:21:23.045
<00:21:18.865>And <00:21:19.020>from <00:21:19.176>Docker, <00:21:19.331>you <00:21:19.487>just <00:21:19.642>can, <00:21:19.798>uh, <00:21:19.953>use <00:21:20.109>your <00:21:20.265>containers

435
00:21:23.045 --> 00:21:27.125
<00:21:23.045>because <00:21:23.185>you <00:21:23.325>have <00:21:23.465>a <00:21:23.605>Shem <00:21:23.745>that <00:21:23.885>allows <00:21:24.025>your <00:21:24.165>run <00:21:24.305>sea <00:21:24.445>runtime

436
00:21:27.585 --> 00:21:29.125
<00:21:27.585>to <00:21:27.862>communicate <00:21:28.139>with <00:21:28.416>the <00:21:28.693>Docker <00:21:28.971>engine.

437
00:21:29.905 --> 00:21:32.925
<00:21:29.905>If <00:21:30.060>you <00:21:30.216>swap <00:21:30.371>the <00:21:30.527>container, <00:21:30.682>the <00:21:30.838>Shem <00:21:30.993>with <00:21:31.149>the <00:21:31.305>container,

438
00:21:32.945 --> 00:21:35.805
<00:21:32.945>the <00:21:33.120>Wasm <00:21:33.294>Shem, <00:21:33.470>which <00:21:33.645>is <00:21:33.820>supported <00:21:33.995>by <00:21:34.169>many <00:21:34.345>runtime,

439
00:21:36.105 --> 00:21:38.405
<00:21:36.105>you <00:21:36.338>can <00:21:36.571>just <00:21:36.805>use <00:21:37.038>a <00:21:37.271>Wasm <00:21:37.505>runtime.

440
00:21:38.625 --> 00:21:40.405
<00:21:38.625>In <00:21:38.825>this <00:21:39.025>case, <00:21:39.225>we <00:21:39.425>are <00:21:39.625>using <00:21:39.825>Wasm <00:21:40.025>Edge.

441
00:21:40.705 --> 00:21:45.405
<00:21:40.705>So <00:21:40.821>using <00:21:40.938>Wasm <00:21:41.054>Edge, <00:21:41.171>you <00:21:41.288>can, <00:21:41.405>uh, <00:21:41.521>you <00:21:41.638>can <00:21:41.754>call, <00:21:41.871>you <00:21:41.988>can <00:21:42.105>load

442
00:21:45.425 --> 00:21:49.165
<00:21:45.425>and <00:21:45.565>run <00:21:45.705>a <00:21:45.845>wasm <00:21:45.985>module, <00:21:46.125>just <00:21:46.264>like <00:21:46.405>if <00:21:46.544>it <00:21:46.685>were, <00:21:46.825>um,

443
00:21:49.885 --> 00:21:50.965
<00:21:49.885>a <00:21:50.370>container, <00:21:50.857>right?

444
00:21:51.105 --> 00:21:53.205
<00:21:51.105>So <00:21:51.385>you <00:21:51.665>can <00:21:51.945>have <00:21:52.225>wasm <00:21:52.505>modules

445
00:21:53.305 --> 00:21:55.765
<00:21:53.305>and <00:21:53.585>container <00:21:53.865>running <00:21:54.145>alongside <00:21:54.425>each <00:21:54.705>other.

446
00:21:56.025 --> 00:21:58.765
<00:21:56.025>And <00:21:56.225>from <00:21:56.425>the <00:21:56.625>Docker <00:21:56.825>perspective, <00:21:57.025>they're <00:21:57.225>the <00:21:57.425>same.

447
00:21:59.075 --> 00:22:02.925
<00:21:59.075>They're <00:21:59.230>just <00:21:59.386>images <00:21:59.541>with <00:21:59.697>something <00:21:59.852>inside <00:22:00.008>run <00:22:00.163>by <00:22:00.319>own <00:22:00.475>time.

448
00:22:03.025 --> 00:22:06.405
<00:22:03.025>In <00:22:03.165>fact, <00:22:03.305>this <00:22:03.445>is <00:22:03.585>a <00:22:03.725>Docker <00:22:03.865>file <00:22:04.005>with <00:22:04.145>the <00:22:04.285>module, <00:22:04.425>with,

449
00:22:06.405 --> 00:22:08.805
<00:22:06.405>with <00:22:06.580>the <00:22:06.754>module <00:22:06.930>inside <00:22:07.105>the, <00:22:07.280>uh, <00:22:07.455>hello <00:22:07.629>Word <00:22:07.805>module.

450
00:22:09.145 --> 00:22:12.165
<00:22:09.145>We <00:22:09.285>just <00:22:09.425>write <00:22:09.565>a <00:22:09.705>docker <00:22:09.845>file <00:22:09.985>with <00:22:10.125>this <00:22:10.264>was <00:22:10.405>a <00:22:10.545>module.

451
00:22:12.385 --> 00:22:14.645
<00:22:12.385>And <00:22:12.585>then <00:22:12.785>we <00:22:12.985>build <00:22:13.185>this <00:22:13.385>using <00:22:13.585>build <00:22:13.785>X,

452
00:22:14.645 --> 00:22:17.205
<00:22:14.645>which <00:22:14.925>is <00:22:15.205>experimental <00:22:15.485>tagging <00:22:15.764>it, <00:22:16.045>uh,

453
00:22:17.525 --> 00:22:18.845
<00:22:17.525>username <00:22:17.921>slash <00:22:18.317>yellow <00:22:18.713>word.

454
00:22:18.905 --> 00:22:19.965
<00:22:18.905>So <00:22:19.143>we <00:22:19.382>have <00:22:19.620>an <00:22:19.859>image,

455
00:22:20.185 --> 00:22:22.925
<00:22:20.185>but <00:22:20.340>in <00:22:20.496>the <00:22:20.651>image <00:22:20.807>we <00:22:20.962>just <00:22:21.118>have <00:22:21.273>yellow <00:22:21.429>word <00:22:21.585>module.

456
00:22:23.905 --> 00:22:26.525
<00:22:23.905>Now, <00:22:24.185>if <00:22:24.465>we <00:22:24.745>go <00:22:25.024>to <00:22:25.305>Kubernetes,

457
00:22:26.765 --> 00:22:29.125
<00:22:26.765>Kubernetes <00:22:27.231>uses <00:22:27.698>container <00:22:28.165>D.

458
00:22:29.315 --> 00:22:32.085
<00:22:29.315>Okay? <00:22:29.490>So <00:22:29.665>we <00:22:29.840>just <00:22:30.015>do <00:22:30.190>the <00:22:30.365>same <00:22:30.540>thing, <00:22:30.715>which

459
00:22:33.395 --> 00:22:34.645
<00:22:33.395>it's <00:22:33.676>working <00:22:33.957>when <00:22:34.238>it <00:22:34.520>shouldn't.

460
00:22:34.755 --> 00:22:38.085
<00:22:34.755>Okay? <00:22:34.930>Uh, <00:22:35.105>so <00:22:35.280>now <00:22:35.455>we <00:22:35.630>have <00:22:35.805>different, <00:22:35.980>shes, <00:22:36.155>okay,

461
00:22:38.465 --> 00:22:42.325
<00:22:38.465>we <00:22:38.605>have <00:22:38.745>the <00:22:38.885>default <00:22:39.024>shi <00:22:39.165>for <00:22:39.304>running <00:22:39.445>containers <00:22:39.584>with <00:22:39.725>run <00:22:39.865>C,

462
00:22:42.705 --> 00:22:46.925
<00:22:42.705>but <00:22:42.845>also <00:22:42.985>we <00:22:43.125>have <00:22:43.264>Wasm <00:22:43.405>time, <00:22:43.544>or <00:22:43.685>Wasm <00:22:43.824>Edge <00:22:43.965>Shims, <00:22:44.105>right?

463
00:22:47.385 --> 00:22:52.215
<00:22:47.385>And <00:22:47.585>so <00:22:47.785>we <00:22:47.985>could <00:22:48.185>run <00:22:48.385>wasm <00:22:48.585>modules, <00:22:48.785>modules,

464
00:22:52.715 --> 00:22:54.575
<00:22:52.715>um, <00:22:53.181>for <00:22:53.648>doing <00:22:54.115>this.

465
00:22:54.575 --> 00:22:56.775
<00:22:54.575>We <00:22:54.855>just <00:22:55.135>write <00:22:55.415>a <00:22:55.695>runtime <00:22:55.975>class,

466
00:22:56.775 --> 00:23:00.935
<00:22:56.775>which <00:22:56.950>is <00:22:57.125>a <00:22:57.300>customer <00:22:57.475>runtime <00:22:57.650>class <00:22:57.825>using, <00:22:58.000>um, <00:22:58.175>wasm,

467
00:23:01.235 --> 00:23:03.375
<00:23:01.235>uh, <00:23:01.935>wha <00:23:02.635>zoom.

468
00:23:04.525 --> 00:23:05.655
<00:23:04.525>What, <00:23:05.033>what's <00:23:05.542>happening?

469
00:23:06.795 --> 00:23:10.735
<00:23:06.795>Should <00:23:06.970>I <00:23:07.145>should, <00:23:07.320>should <00:23:07.495>I <00:23:07.670>so <00:23:07.845>them <00:23:08.020>my <00:23:08.195>laptop?

470
00:23:11.685 --> 00:23:12.815
<00:23:11.685>It's <00:23:11.939>not, <00:23:12.193>it's <00:23:12.447>not <00:23:12.702>working.

471
00:23:20.715 --> 00:23:24.595
<00:23:20.715>Hmm. <00:23:20.889>We <00:23:21.064>were <00:23:21.240>joking <00:23:21.415>about <00:23:21.590>Windows <00:23:21.764>before, <00:23:21.939>right? <00:23:22.115>With

472
00:23:25.935 --> 00:23:28.435
<00:23:25.935>Should <00:23:26.110>we, <00:23:26.284>uh, <00:23:26.460>should <00:23:26.635>we <00:23:26.810>just <00:23:26.985>have <00:23:27.159>some <00:23:27.335>fun

473
00:23:28.435 --> 00:23:29.635
<00:23:28.435>with <00:23:28.705>He <00:23:28.975>fixes <00:23:29.245>your <00:23:29.514>slides?

474
00:23:30.375 --> 00:23:32.635
<00:23:30.375>No, <00:23:30.502>no, <00:23:30.629>no. <00:23:30.756>It's, <00:23:30.884>it <00:23:31.011>is <00:23:31.138>not <00:23:31.265>my <00:23:31.393>slide. <00:23:31.520>It's <00:23:31.647>your <00:23:31.775>setup.

475
00:23:33.035 --> 00:23:36.635
<00:23:33.035>Yes, <00:23:33.268>yes, <00:23:33.501>yes, <00:23:33.735>yes. <00:23:33.968>That's <00:23:34.201>nice. <00:23:34.435>Nice.

476
00:23:37.275 --> 00:23:38.315
<00:23:37.275>I <00:23:37.462>I <00:23:37.649>set <00:23:37.836>that <00:23:38.023>one <00:23:38.211>up.

477
00:23:38.535 --> 00:23:40.955
<00:23:38.535>So <00:23:38.690>you <00:23:38.846>think <00:23:39.001>this <00:23:39.157>is <00:23:39.312>related <00:23:39.468>to <00:23:39.623>CrowdStrike <00:23:39.779>at <00:23:39.935>all?

478
00:23:40.975 --> 00:23:43.635
<00:23:40.975>Oh, <00:23:41.102>I <00:23:41.229>think <00:23:41.356>so. <00:23:41.484>Okay. <00:23:41.611>Well, <00:23:41.738>it <00:23:41.865>seems <00:23:41.993>to <00:23:42.120>be <00:23:42.247>working. <00:23:42.375>I'm

479
00:23:43.635 --> 00:23:44.675
<00:23:43.635>Using <00:23:43.822>a <00:23:44.009>max, <00:23:44.196>so <00:23:44.383>I'm <00:23:44.571>safe.

480
00:23:45.355 --> 00:23:46.725
<00:23:45.355>Yeah, <00:23:45.766>Great. <00:23:46.177>I'm <00:23:46.588>safe.

481
00:23:47.065 --> 00:23:48.885
<00:23:47.065>And <00:23:47.298>US <00:23:47.531>government <00:23:47.765>approved. <00:23:47.998>Okay. <00:23:48.231>So <00:23:48.465>give

482
00:23:48.885 --> 00:23:49.925
<00:23:48.885>Him <00:23:49.197>some <00:23:49.509>encouragement, <00:23:49.821>everybody.

483
00:23:55.955 --> 00:23:59.725
<00:23:55.955>Okay. <00:23:56.110>So <00:23:56.266>I <00:23:56.421>have <00:23:56.577>my <00:23:56.732>custom <00:23:56.888>runtime <00:23:57.043>class <00:23:57.199>in <00:23:57.355>Kubernetes.

484
00:23:59.765 --> 00:24:03.445
<00:23:59.765>I <00:23:59.920>can <00:24:00.076>write <00:24:00.231>this. <00:24:00.387>And <00:24:00.542>using <00:24:00.698>this <00:24:00.853>handler <00:24:01.009>was <00:24:01.165>time.

485
00:24:03.665 --> 00:24:06.245
<00:24:03.665>So <00:24:03.865>I'm <00:24:04.065>telling <00:24:04.264>Kubernetes <00:24:04.465>to <00:24:04.665>use <00:24:04.865>this <00:24:05.065>runtime.

486
00:24:06.465 --> 00:24:10.205
<00:24:06.465>So <00:24:06.620>with <00:24:06.776>this <00:24:06.931>custom <00:24:07.087>runtime <00:24:07.242>class, <00:24:07.398>then <00:24:07.553>in <00:24:07.709>my, <00:24:07.865>um,

487
00:24:10.665 --> 00:24:15.605
<00:24:10.665>pod <00:24:10.805>definition <00:24:10.945>here, <00:24:11.085>I'm <00:24:11.225>using <00:24:11.365>Wasm <00:24:11.504>one, <00:24:11.645>which <00:24:11.784>is <00:24:11.925>my, <00:24:12.065>uh,

488
00:24:15.675 --> 00:24:17.965
<00:24:15.675>runtime <00:24:16.024>class <00:24:16.375>name <00:24:16.725>was <00:24:17.075>one.

489
00:24:18.065 --> 00:24:20.125
<00:24:18.065>Yes. <00:24:18.345>I'm <00:24:18.625>using <00:24:18.905>this <00:24:19.185>runtime <00:24:19.465>class

490
00:24:20.865 --> 00:24:24.725
<00:24:20.865>and <00:24:21.040>using <00:24:21.215>my <00:24:21.390>previously <00:24:21.565>tagged <00:24:21.740>the <00:24:21.915>Docker, <00:24:22.090>uh, <00:24:22.265>image.

491
00:24:25.075 --> 00:24:29.845
<00:24:25.075>Well, <00:24:25.230>OCI <00:24:25.386>image, <00:24:25.541>uh, <00:24:25.697>use <00:24:25.852>word. <00:24:26.008>And <00:24:26.163>this <00:24:26.319>is <00:24:26.475>working.

492
00:24:30.105 --> 00:24:34.365
<00:24:30.105>So <00:24:30.280>this <00:24:30.455>way <00:24:30.630>you <00:24:30.805>can <00:24:30.980>have <00:24:31.155>Wasm <00:24:31.330>modules <00:24:31.505>loaded

493
00:24:34.505 --> 00:24:37.565
<00:24:34.505>and <00:24:34.738>run <00:24:34.971>into <00:24:35.205>a <00:24:35.438>Kubernetes <00:24:35.671>environment <00:24:35.905>alongside,

494
00:24:38.185 --> 00:24:39.325
<00:24:38.185>uh, <00:24:38.698>docker <00:24:39.211>containers.

495
00:24:39.425 --> 00:24:41.645
<00:24:39.425>So <00:24:39.625>for <00:24:39.825>Kubernetes <00:24:40.024>is <00:24:40.225>the <00:24:40.425>same, <00:24:40.625>just <00:24:40.825>something

496
00:24:41.645 --> 00:24:42.965
<00:24:41.645>to <00:24:41.882>run <00:24:42.120>with <00:24:42.357>their <00:24:42.595>own <00:24:42.832>time.

497
00:24:43.185 --> 00:24:46.325
<00:24:43.185>And <00:24:43.340>for <00:24:43.496>you, <00:24:43.651>you <00:24:43.807>can <00:24:43.962>deploy <00:24:44.118>Watson <00:24:44.273>modules <00:24:44.429>in <00:24:44.585>Kubernetes.

498
00:24:47.665 --> 00:24:50.125
<00:24:47.665>And <00:24:47.865>if <00:24:48.065>you <00:24:48.264>want <00:24:48.465>to <00:24:48.665>make <00:24:48.865>this <00:24:49.065>easier,

499
00:24:50.665 --> 00:24:53.885
<00:24:50.665>before <00:24:50.820>I <00:24:50.976>mention <00:24:51.131>Spin <00:24:51.287>Cube, <00:24:51.442>which <00:24:51.598>is <00:24:51.753>a <00:24:51.909>project, <00:24:52.065>uh,

500
00:24:53.915 --> 00:24:57.445
<00:24:53.915>created <00:24:54.115>in, <00:24:54.315>uh, <00:24:54.514>well <00:24:54.715>by <00:24:54.915>firm <00:24:55.115>and <00:24:55.315>others,

501
00:24:58.425 --> 00:24:59.805
<00:24:58.425>and <00:24:58.735>it <00:24:59.046>is <00:24:59.356>open <00:24:59.667>source.

502
00:25:00.265 --> 00:25:04.445
<00:25:00.265>And <00:25:00.440>with <00:25:00.615>Spin <00:25:00.790>Cube, <00:25:00.965>it's <00:25:01.140>easier <00:25:01.315>to <00:25:01.490>manage, <00:25:01.665>uh,

503
00:25:05.005 --> 00:25:06.365
<00:25:05.005>workloads <00:25:05.617>in <00:25:06.229>Kubernetes.

504
00:25:06.395 --> 00:25:11.005
<00:25:06.395>It's <00:25:06.570>using <00:25:06.745>Spin, <00:25:06.920>which <00:25:07.095>is <00:25:07.270>the, <00:25:07.445>um, <00:25:07.620>firm <00:25:07.795>SDK

505
00:25:11.265 --> 00:25:12.885
<00:25:11.265>for, <00:25:11.731>for <00:25:12.198>web <00:25:12.665>assembly

506
00:25:13.305 --> 00:25:16.125
<00:25:13.305>and <00:25:13.460>run <00:25:13.616>wasi, <00:25:13.771>which <00:25:13.927>is <00:25:14.082>another <00:25:14.238>runtime, <00:25:14.393>and <00:25:14.549>K <00:25:14.705>wasm.

507
00:25:16.345 --> 00:25:17.565
<00:25:16.345>So <00:25:16.711>in <00:25:17.077>Spin <00:25:17.443>Cube,

508
00:25:17.705 --> 00:25:19.885
<00:25:17.705>you <00:25:17.879>have <00:25:18.054>the <00:25:18.230>container, <00:25:18.405>the <00:25:18.580>shame <00:25:18.754>that <00:25:18.929>you <00:25:19.105>need.

509
00:25:19.985 --> 00:25:21.405
<00:25:19.985>You <00:25:20.240>have <00:25:20.496>the <00:25:20.751>Runtime <00:25:21.007>class <00:25:21.263>manager,

510
00:25:21.665 --> 00:25:23.525
<00:25:21.665>you <00:25:21.865>have <00:25:22.065>the <00:25:22.264>spin <00:25:22.465>plugin <00:25:22.665>and <00:25:22.865>spin <00:25:23.065>operator.

511
00:25:23.585 --> 00:25:25.485
<00:25:23.585>So <00:25:23.785>you <00:25:23.985>don't <00:25:24.185>need <00:25:24.385>to <00:25:24.585>write <00:25:24.785>them <00:25:24.985>manually.

512
00:25:25.585 --> 00:25:26.885
<00:25:25.585>You <00:25:25.819>have <00:25:26.053>everything <00:25:26.287>in <00:25:26.521>Spin <00:25:26.755>Cube.

513
00:25:27.195 --> 00:25:30.645
<00:25:27.195>It's <00:25:27.335>a <00:25:27.475>sandbox <00:25:27.615>project <00:25:27.754>in <00:25:27.895>CNCF, <00:25:28.034>and <00:25:28.175>it's <00:25:28.314>all <00:25:28.455>open <00:25:28.595>source.

514
00:25:32.025 --> 00:25:34.245
<00:25:32.025>And <00:25:32.305>as <00:25:32.585>an <00:25:32.865>example <00:25:33.145>of, <00:25:33.425>um,

515
00:25:34.905 --> 00:25:38.085
<00:25:34.905>web <00:25:35.060>assembly <00:25:35.216>used <00:25:35.371>in <00:25:35.527>the <00:25:35.682>real <00:25:35.838>world, <00:25:35.993>I <00:25:36.149>just <00:25:36.305>discovered

516
00:25:38.085 --> 00:25:42.965
<00:25:38.085>that <00:25:38.240>in <00:25:38.396>traffic <00:25:38.551>version <00:25:38.707>3.0, <00:25:38.862>you <00:25:39.018>can <00:25:39.173>write, <00:25:39.329>uh, <00:25:39.485>plugins

517
00:25:43.185 --> 00:25:45.845
<00:25:43.185>for <00:25:43.340>traffic <00:25:43.496>in <00:25:43.651>web <00:25:43.807>as <00:25:43.962>well, <00:25:44.118>not <00:25:44.273>in <00:25:44.429>web <00:25:44.585>assembly.

518
00:25:45.865 --> 00:25:48.525
<00:25:45.865>You <00:25:46.065>can <00:25:46.265>write <00:25:46.465>in <00:25:46.665>whichever <00:25:46.865>language <00:25:47.065>is <00:25:47.265>supported

519
00:25:48.525 --> 00:25:50.845
<00:25:48.525>by <00:25:48.725>web <00:25:48.925>assembly <00:25:49.125>and <00:25:49.325>then <00:25:49.525>compile <00:25:49.725>them, <00:25:49.925>uh,

520
00:25:50.845 --> 00:25:53.245
<00:25:50.845>through <00:25:51.045>web <00:25:51.245>assembly <00:25:51.445>and <00:25:51.645>load <00:25:51.845>them <00:25:52.045>in <00:25:52.245>traffic.

521
00:25:53.785 --> 00:25:57.285
<00:25:53.785>So, <00:25:53.985>uh, <00:25:54.185>traffic, <00:25:54.385>uh, <00:25:54.585>is <00:25:54.785>supporting <00:25:54.985>web <00:25:55.185>assembly

522
00:25:57.885 --> 00:26:01.605
<00:25:57.885>enabling <00:25:58.060>different <00:25:58.235>teams <00:25:58.410>to <00:25:58.585>write, <00:25:58.760>uh, <00:25:58.935>plugins <00:25:59.110>for <00:25:59.285>traffic

523
00:26:02.265 --> 00:26:04.045
<00:26:02.265>in <00:26:02.731>different <00:26:03.198>source <00:26:03.665>languages.

524
00:26:04.225 --> 00:26:06.925
<00:26:04.225>So <00:26:04.380>imagine <00:26:04.536>a <00:26:04.691>future <00:26:04.847>in <00:26:05.002>which <00:26:05.158>you <00:26:05.313>have <00:26:05.469>an <00:26:05.625>application

525
00:26:07.595 --> 00:26:09.805
<00:26:07.595>written <00:26:07.945>in <00:26:08.295>different <00:26:08.645>source <00:26:08.995>languages

526
00:26:09.985 --> 00:26:13.765
<00:26:09.985>and <00:26:10.159>then <00:26:10.334>compile, <00:26:10.510>uh, <00:26:10.685>all <00:26:10.860>together <00:26:11.034>with <00:26:11.209>web <00:26:11.385>assembly

527
00:26:13.785 --> 00:26:16.085
<00:26:13.785>and <00:26:13.960>the <00:26:14.135>component <00:26:14.310>models <00:26:14.485>to <00:26:14.660>interoperate <00:26:14.835>with <00:26:15.010>each <00:26:15.185>other.

528
00:26:16.305 --> 00:26:18.685
<00:26:16.305>So <00:26:16.480>this <00:26:16.655>is <00:26:16.830>something <00:26:17.005>that <00:26:17.180>traffic <00:26:17.355>is <00:26:17.530>doing, <00:26:17.705>uh,

529
00:26:18.695 --> 00:26:19.925
<00:26:18.695>right <00:26:18.971>now <00:26:19.248>in <00:26:19.525>real <00:26:19.802>life.

530
00:26:20.275 --> 00:26:21.845
<00:26:20.275>It's <00:26:20.555>a <00:26:20.835>hint <00:26:21.115>to <00:26:21.395>the <00:26:21.675>future.

531
00:26:23.145 --> 00:26:27.325
<00:26:23.145>Now, <00:26:23.378>to <00:26:23.611>finish <00:26:23.845>this, <00:26:24.078>uh, <00:26:24.311>the <00:26:24.545>word

532
00:26:27.325 --> 00:26:29.405
<00:26:27.325>around <00:26:27.675>the <00:26:28.025>wasm <00:26:28.375>is <00:26:28.725>complicated

533
00:26:29.555 --> 00:26:34.485
<00:26:29.555>because <00:26:29.755>there <00:26:29.955>are <00:26:30.155>many <00:26:30.355>actors, <00:26:30.555>um, <00:26:30.755>many <00:26:30.955>foundations,

534
00:26:34.635 --> 00:26:37.565
<00:26:34.635>many <00:26:34.790>names, <00:26:34.946>and <00:26:35.101>it's <00:26:35.257>diff <00:26:35.412>it <00:26:35.568>was <00:26:35.723>difficult <00:26:35.879>for <00:26:36.035>me

535
00:26:37.785 --> 00:26:41.325
<00:26:37.785>to <00:26:37.985>figure <00:26:38.185>out <00:26:38.385>what's <00:26:38.585>outside, <00:26:38.785>uh, <00:26:38.985>web <00:26:39.185>assembly,

536
00:26:41.325 --> 00:26:42.405
<00:26:41.325>what's <00:26:41.649>around <00:26:41.973>web <00:26:42.297>assembly.

537
00:26:43.065 --> 00:26:45.765
<00:26:43.065>So <00:26:43.220>you <00:26:43.376>have <00:26:43.531>to <00:26:43.687>start <00:26:43.842>with <00:26:43.998>the <00:26:44.153>W <00:26:44.309>three <00:26:44.465>C

538
00:26:45.775 --> 00:26:48.725
<00:26:45.775>where <00:26:45.950>you <00:26:46.125>find <00:26:46.300>the <00:26:46.475>web <00:26:46.650>assembly <00:26:46.825>working <00:26:47.000>group <00:26:47.175>here.

539
00:26:49.075 --> 00:26:52.485
<00:26:49.075>They <00:26:49.275>are <00:26:49.475>defining <00:26:49.675>the <00:26:49.875>language, <00:26:50.075>the <00:26:50.275>specification, <00:26:50.475>uh,

540
00:26:52.825 --> 00:26:55.005
<00:26:52.825>by <00:26:53.175>code <00:26:53.525>format, <00:26:53.875>et <00:26:54.225>cetera.

541
00:26:55.385 --> 00:26:59.005
<00:26:55.385>Um, <00:26:55.501>so <00:26:55.618>you <00:26:55.735>see <00:26:55.851>here, <00:26:55.968>the <00:26:56.085>was <00:26:56.201>core <00:26:56.318>two <00:26:56.435>is <00:26:56.551>the <00:26:56.668>actual, <00:26:56.785>uh,

542
00:26:59.005 --> 00:27:01.765
<00:26:59.005>the <00:26:59.285>current <00:26:59.565>W <00:26:59.845>three <00:27:00.125>C <00:27:00.405>recommendation.

543
00:27:02.105 --> 00:27:04.605
<00:27:02.105>You <00:27:02.338>can <00:27:02.571>join <00:27:02.805>the, <00:27:03.038>uh, <00:27:03.271>working <00:27:03.505>group

544
00:27:04.825 --> 00:27:06.925
<00:27:04.825>to <00:27:05.025>find <00:27:05.225>out <00:27:05.425>the <00:27:05.625>evolution <00:27:05.825>of <00:27:06.025>the <00:27:06.225>language

545
00:27:07.025 --> 00:27:08.445
<00:27:07.025>and <00:27:07.344>the <00:27:07.664>discussions <00:27:07.983>around <00:27:08.303>it.

546
00:27:08.785 --> 00:27:13.005
<00:27:08.785>So <00:27:08.960>it's <00:27:09.135>the <00:27:09.310>web <00:27:09.485>assembly <00:27:09.660>format <00:27:09.835>and <00:27:10.010>language, <00:27:10.185>okay?

547
00:27:13.545 --> 00:27:16.285
<00:27:13.545>But <00:27:13.745>you <00:27:13.945>also <00:27:14.145>have <00:27:14.345>the <00:27:14.545>Bite <00:27:14.745>Code <00:27:14.945>Alliance,

548
00:27:16.815 --> 00:27:19.525
<00:27:16.815>which <00:27:17.165>is <00:27:17.515>another <00:27:17.865>non-profit <00:27:18.215>organization.

549
00:27:20.345 --> 00:27:25.045
<00:27:20.345>Um, <00:27:20.520>they <00:27:20.695>are <00:27:20.870>basically, <00:27:21.045>uh, <00:27:21.220>trying <00:27:21.395>to <00:27:21.570>create <00:27:21.745>environments

550
00:27:25.185 --> 00:27:26.365
<00:27:25.185>around <00:27:25.716>web <00:27:26.247>assembly.

551
00:27:26.665 --> 00:27:29.805
<00:27:26.665>So <00:27:26.898>for <00:27:27.131>example, <00:27:27.365>the <00:27:27.598>wie, <00:27:27.831>uh, <00:27:28.065>specification,

552
00:27:29.875 --> 00:27:31.405
<00:27:29.875>they <00:27:30.219>created <00:27:30.563>the <00:27:30.907>WIE <00:27:31.252>specification.

553
00:27:31.405 --> 00:27:34.165
<00:27:31.405>They <00:27:31.580>create <00:27:31.754>also, <00:27:31.930>uh, <00:27:32.105>runtime, <00:27:32.280>like <00:27:32.455>was <00:27:32.629>on <00:27:32.805>times,

554
00:27:34.235 --> 00:27:35.765
<00:27:34.235>they <00:27:34.464>have <00:27:34.694>projects <00:27:34.923>like <00:27:35.153>was <00:27:35.382>on <00:27:35.612>time,

555
00:27:36.065 --> 00:27:38.845
<00:27:36.065>but <00:27:36.265>also <00:27:36.465>warmer, <00:27:36.665>which <00:27:36.865>is <00:27:37.065>another <00:27:37.265>time, <00:27:37.465>um,

556
00:27:39.575 --> 00:27:40.725
<00:27:39.575>crane <00:27:39.920>lift, <00:27:40.264>et <00:27:40.610>cetera.

557
00:27:40.825 --> 00:27:44.565
<00:27:40.825>So <00:27:40.952>in <00:27:41.079>the <00:27:41.206>BI <00:27:41.334>Code <00:27:41.461>Alliance, <00:27:41.588>they <00:27:41.715>are <00:27:41.843>trying <00:27:41.970>to <00:27:42.097>create <00:27:42.225>tools

558
00:27:44.945 --> 00:27:48.045
<00:27:44.945>around, <00:27:45.120>uh, <00:27:45.294>web <00:27:45.470>assembly <00:27:45.645>to <00:27:45.820>make <00:27:45.995>them <00:27:46.169>more <00:27:46.345>usable

559
00:27:48.185 --> 00:27:49.445
<00:27:48.185>for, <00:27:48.752>for <00:27:49.319>developers.

560
00:27:50.355 --> 00:27:55.165
<00:27:50.355>It's <00:27:50.495>not <00:27:50.635>all, <00:27:50.775>we <00:27:50.915>also <00:27:51.055>have <00:27:51.195>CNCF <00:27:51.335>and <00:27:51.475>the <00:27:51.615>Linx <00:27:51.755>Foundation.

561
00:27:55.225 --> 00:27:58.165
<00:27:55.225>So <00:27:55.504>many <00:27:55.784>projects <00:27:56.064>in <00:27:56.344>web <00:27:56.625>assembly

562
00:27:58.265 --> 00:28:01.245
<00:27:58.265>or <00:27:58.498>around <00:27:58.731>web <00:27:58.965>assembly <00:27:59.198>are, <00:27:59.431>uh, <00:27:59.665>sandboxed

563
00:28:01.345 --> 00:28:03.125
<00:28:01.345>and <00:28:01.695>donated <00:28:02.045>to <00:28:02.395>the <00:28:02.745>CNCF.

564
00:28:03.305 --> 00:28:07.405
<00:28:03.305>So <00:28:03.445>in <00:28:03.585>CNCF, <00:28:03.725>in <00:28:03.865>this <00:28:04.005>landscape, <00:28:04.145>so <00:28:04.285>this <00:28:04.425>is <00:28:04.565>the <00:28:04.705>URL

565
00:28:07.585 --> 00:28:10.365
<00:28:07.585>of <00:28:07.785>this <00:28:07.985>landscape, <00:28:08.185>you <00:28:08.385>will <00:28:08.585>find <00:28:08.785>many <00:28:08.985>languages,

566
00:28:10.425 --> 00:28:11.845
<00:28:10.425>run <00:28:11.064>times <00:28:11.703>frameworks.

567
00:28:12.145 --> 00:28:15.125
<00:28:12.145>So <00:28:12.345>was <00:28:12.545>Edge, <00:28:12.745>for <00:28:12.945>example, <00:28:13.145>is <00:28:13.345>A-C-N-C-F, <00:28:13.545>uh,

568
00:28:15.355 --> 00:28:17.045
<00:28:15.355>project <00:28:16.055>in <00:28:16.755>Sandbox.

569
00:28:17.195 --> 00:28:19.525
<00:28:17.195>Okay? <00:28:17.428>So <00:28:17.661>you <00:28:17.895>see <00:28:18.128>three <00:28:18.361>different <00:28:18.595>actors,

570
00:28:20.225 --> 00:28:21.725
<00:28:20.225>big <00:28:20.899>nonprofit <00:28:21.574>organizations.

571
00:28:21.985 --> 00:28:23.485
<00:28:21.985>So <00:28:22.435>following <00:28:22.885>the <00:28:23.334>discussion

572
00:28:23.485 --> 00:28:25.205
<00:28:23.485>around <00:28:23.764>web <00:28:24.044>assembly <00:28:24.324>can <00:28:24.604>be <00:28:24.885>complicated

573
00:28:25.205 --> 00:28:27.325
<00:28:25.205>because <00:28:25.438>you <00:28:25.671>have <00:28:25.905>many <00:28:26.138>people <00:28:26.371>to <00:28:26.605>follow,

574
00:28:27.625 --> 00:28:30.325
<00:28:27.625>and <00:28:27.825>they <00:28:28.025>are <00:28:28.225>not <00:28:28.425>always <00:28:28.625>agreeing <00:28:28.825>in <00:28:29.025>everything.

575
00:28:30.355 --> 00:28:32.435
<00:28:30.355>Okay? <00:28:30.705>But <00:28:31.055>this <00:28:31.405>is <00:28:31.755>it.

576
00:28:32.855 --> 00:28:37.675
<00:28:32.855>And <00:28:33.030>you <00:28:33.205>can <00:28:33.380>find <00:28:33.555>useful <00:28:33.730>insights <00:28:33.905>in <00:28:34.080>this <00:28:34.255>document,

577
00:28:37.685 --> 00:28:42.355
<00:28:37.685>which <00:28:37.812>is <00:28:37.939>the <00:28:38.066>state <00:28:38.194>of <00:28:38.321>web <00:28:38.448>assembly, <00:28:38.575>um, <00:28:38.703>run <00:28:38.830>by <00:28:38.957>slash <00:28:39.085>data,

578
00:28:42.455 --> 00:28:46.355
<00:28:42.455>and <00:28:42.595>the <00:28:42.735>CNCF <00:28:42.875>f <00:28:43.014>and <00:28:43.155>here <00:28:43.294>you <00:28:43.435>will <00:28:43.574>find <00:28:43.715>many <00:28:43.855>useful.

579
00:28:46.355 --> 00:28:47.635
<00:28:46.355>It, <00:28:46.643>it's <00:28:46.931>a <00:28:47.219>survey <00:28:47.507>basically.

580
00:28:47.655 --> 00:28:51.395
<00:28:47.655>So <00:28:47.795>we, <00:28:47.935>you <00:28:48.075>will <00:28:48.215>see <00:28:48.355>how <00:28:48.495>developers <00:28:48.635>are <00:28:48.774>using <00:28:48.915>web <00:28:49.055>assembly

581
00:28:51.405 --> 00:28:52.915
<00:28:51.405>right <00:28:51.744>now <00:28:52.084>in <00:28:52.424>their <00:28:52.764>projects.

582
00:28:53.095 --> 00:28:55.555
<00:28:53.095>And, <00:28:53.270>uh, <00:28:53.445>why, <00:28:53.620>and <00:28:53.795>for <00:28:53.970>example, <00:28:54.145>you <00:28:54.320>will <00:28:54.495>see

583
00:28:56.305 --> 00:28:59.275
<00:28:56.305>this <00:28:56.460>is <00:28:56.616>interesting, <00:28:56.771>uh, <00:28:56.927>what <00:28:57.082>is <00:28:57.238>web <00:28:57.393>assembly <00:28:57.549>used <00:28:57.705>for?

584
00:28:59.385 --> 00:29:02.355
<00:28:59.385>It's, <00:28:59.618>uh, <00:28:59.851>the <00:29:00.085>end <00:29:00.318>of <00:29:00.551>2023. <00:29:00.785>Okay?

585
00:29:02.655 --> 00:29:05.475
<00:29:02.655>And <00:29:02.795>so <00:29:02.935>you <00:29:03.075>see <00:29:03.215>web <00:29:03.355>applications <00:29:03.495>is <00:29:03.635>at <00:29:03.774>the <00:29:03.915>first <00:29:04.055>place,

586
00:29:05.895 --> 00:29:09.715
<00:29:05.895>and <00:29:06.050>it's, <00:29:06.206>um, <00:29:06.361>uh, <00:29:06.517>it's <00:29:06.672>what <00:29:06.828>web <00:29:06.983>assembly <00:29:07.139>was <00:29:07.295>created

587
00:29:09.855 --> 00:29:11.035
<00:29:09.855>for <00:29:10.120>in <00:29:10.386>the <00:29:10.651>beginning, <00:29:10.917>right?

588
00:29:11.255 --> 00:29:12.875
<00:29:11.255>So <00:29:11.605>for <00:29:11.955>example, <00:29:12.305>you <00:29:12.655>know

589
00:29:12.875 --> 00:29:15.035
<00:29:12.875>that <00:29:13.108>Photoshop <00:29:13.341>now <00:29:13.575>has <00:29:13.808>a <00:29:14.041>web <00:29:14.275>version.

590
00:29:15.385 --> 00:29:18.315
<00:29:15.385>It's <00:29:15.618>using <00:29:15.851>web <00:29:16.085>assembly <00:29:16.318>and <00:29:16.551>web <00:29:16.785>GPU.

591
00:29:18.455 --> 00:29:21.275
<00:29:18.455>So, <00:29:18.655>uh, <00:29:18.855>also <00:29:19.054>Figma <00:29:19.254>here <00:29:19.455>we <00:29:19.655>have <00:29:19.855>Figma.

592
00:29:21.325 --> 00:29:25.075
<00:29:21.325>Figma <00:29:21.500>is <00:29:21.675>using <00:29:21.850>web <00:29:22.025>assembly <00:29:22.200>for <00:29:22.375>their, <00:29:22.550>uh, <00:29:22.725>application

593
00:29:25.075 --> 00:29:26.315
<00:29:25.075>because <00:29:25.447>it's <00:29:25.819>fast, <00:29:26.191>right?

594
00:29:26.775 --> 00:29:29.395
<00:29:26.775>Um, <00:29:26.950>so <00:29:27.125>you, <00:29:27.300>web <00:29:27.475>assembly <00:29:27.650>used <00:29:27.825>for <00:29:28.000>many <00:29:28.175>things,

595
00:29:30.095 --> 00:29:33.515
<00:29:30.095>and <00:29:30.250>at <00:29:30.406>the <00:29:30.561>bottom <00:29:30.717>of <00:29:30.872>this <00:29:31.028>list, <00:29:31.183>you <00:29:31.339>find <00:29:31.495>serverless.

596
00:29:33.975 --> 00:29:35.835
<00:29:33.975>And <00:29:34.254>it's <00:29:34.534>interesting <00:29:34.814>because <00:29:35.094>the <00:29:35.375>state

597
00:29:35.835 --> 00:29:38.635
<00:29:35.835>of <00:29:35.990>web <00:29:36.146>assembly <00:29:36.301>serverless <00:29:36.457>last <00:29:36.612>year <00:29:36.768>was <00:29:36.923>not <00:29:37.079>so <00:29:37.235>mature.

598
00:29:38.855 --> 00:29:40.035
<00:29:38.855>Now <00:29:39.209>it's <00:29:39.563>more <00:29:39.917>mature.

599
00:29:40.055 --> 00:29:44.285
<00:29:40.055>So <00:29:40.210>I'm <00:29:40.366>expecting <00:29:40.521>to <00:29:40.677>see <00:29:40.832>the <00:29:40.988>serverless, <00:29:41.143>uh, <00:29:41.299>in, <00:29:41.455>in,

600
00:29:44.305 --> 00:29:48.285
<00:29:44.305>in <00:29:44.505>a <00:29:44.705>more, <00:29:44.905>in, <00:29:45.105>in <00:29:45.305>gaining <00:29:45.505>positions, <00:29:45.705>okay?

601
00:29:48.395 --> 00:29:52.005
<00:29:48.395>Next <00:29:48.595>years. <00:29:48.795>So, <00:29:48.995>uh, <00:29:49.195>this <00:29:49.395>is <00:29:49.595>to <00:29:49.795>summarize,

602
00:29:52.425 --> 00:29:55.565
<00:29:52.425>web <00:29:52.600>assembly <00:29:52.774>is <00:29:52.950>this <00:29:53.125>fast, <00:29:53.300>portable, <00:29:53.475>and <00:29:53.649>secure <00:29:53.825>runtime.

603
00:29:55.865 --> 00:29:58.525
<00:29:55.865>Uh, <00:29:56.040>it <00:29:56.215>can <00:29:56.390>be <00:29:56.565>used <00:29:56.740>as <00:29:56.915>a <00:29:57.090>container <00:29:57.265>replacement,

604
00:29:58.545 --> 00:30:01.245
<00:29:58.545>but <00:29:58.720>I <00:29:58.895>would <00:29:59.070>say <00:29:59.245>more <00:29:59.420>as <00:29:59.595>a <00:29:59.770>container, <00:29:59.945>um,

605
00:30:01.505 --> 00:30:03.085
<00:30:01.505>as <00:30:02.205>alongside <00:30:02.905>containers.

606
00:30:03.115 --> 00:30:05.805
<00:30:03.115>Okay? <00:30:03.290>Uh, <00:30:03.465>it <00:30:03.640>can <00:30:03.815>be <00:30:03.990>used <00:30:04.165>for <00:30:04.340>edge <00:30:04.515>computing.

607
00:30:05.805 --> 00:30:08.605
<00:30:05.805>Many <00:30:05.980>people, <00:30:06.155>many <00:30:06.330>companies <00:30:06.505>are <00:30:06.680>already <00:30:06.855>using <00:30:07.030>web <00:30:07.205>assembly

608
00:30:08.605 --> 00:30:10.605
<00:30:08.605>modules <00:30:08.955>in <00:30:09.305>edge, <00:30:09.655>uh, <00:30:10.005>context.

609
00:30:11.345 --> 00:30:13.165
<00:30:11.345>Uh, <00:30:11.695>it's <00:30:12.045>supported <00:30:12.395>by <00:30:12.745>value.

610
00:30:13.275 --> 00:30:17.005
<00:30:13.275>Many <00:30:13.415>different <00:30:13.555>projects <00:30:13.695>like, <00:30:13.835>uh, <00:30:13.975>uh, <00:30:14.115>you, <00:30:14.255>you, <00:30:14.395>you <00:30:14.535>have <00:30:14.675>ion

611
00:30:17.005 --> 00:30:19.445
<00:30:17.005>and <00:30:17.238>cloud <00:30:17.471>flaring <00:30:17.705>cloud <00:30:17.938>for <00:30:18.171>serverless <00:30:18.405>workloads,

612
00:30:19.585 --> 00:30:22.325
<00:30:19.585>but <00:30:19.818>also <00:30:20.051>you <00:30:20.285>have <00:30:20.518>many, <00:30:20.751>uh, <00:30:20.985>organization

613
00:30:22.425 --> 00:30:26.845
<00:30:22.425>and <00:30:22.600>nonprofit <00:30:22.774>alliances, <00:30:22.950>uh, <00:30:23.125>to, <00:30:23.300>uh, <00:30:23.475>discuss <00:30:23.649>the <00:30:23.825>future,

614
00:30:27.145 --> 00:30:29.645
<00:30:27.145>the, <00:30:27.320>the <00:30:27.495>present <00:30:27.670>and <00:30:27.845>the <00:30:28.020>future <00:30:28.195>of <00:30:28.370>the <00:30:28.545>standards

615
00:30:29.705 --> 00:30:30.965
<00:30:29.705>and <00:30:29.988>many <00:30:30.272>things <00:30:30.555>around <00:30:30.839>it.

616
00:30:31.225 --> 00:30:32.565
<00:30:31.225>So <00:30:31.828>thank <00:30:32.431>you.

617
00:30:33.115 --> 00:30:37.285
<00:30:33.115>Here <00:30:33.242>you <00:30:33.369>see <00:30:33.496>the <00:30:33.624>QR <00:30:33.751>partial <00:30:33.878>a <00:30:34.005>part <00:30:34.133>of <00:30:34.260>the <00:30:34.387>QR <00:30:34.515>code,

618
00:30:37.625 --> 00:30:38.685
<00:30:37.625>uh, <00:30:37.943>with <00:30:38.261>the <00:30:38.579>slides.

619
00:30:38.985 --> 00:30:41.485
<00:30:38.985>So <00:30:39.218>I'm <00:30:39.451>sharing <00:30:39.685>the <00:30:39.918>entire <00:30:40.151>slides <00:30:40.385>here.

620
00:30:41.825 --> 00:30:45.005
<00:30:41.825>Uh, <00:30:42.000>again, <00:30:42.175>I'm <00:30:42.350>eddo, <00:30:42.525>you <00:30:42.700>can <00:30:42.875>find <00:30:43.050>me <00:30:43.225>online

621
00:30:45.035 --> 00:30:48.805
<00:30:45.035>with <00:30:45.210>this <00:30:45.385>handle <00:30:45.560>everywhere, <00:30:45.735>uh, <00:30:45.910>Italian <00:30:46.085>content <00:30:46.260>for <00:30:46.435>now,

622
00:30:48.985 --> 00:30:51.005
<00:30:48.985>but <00:30:49.218>I'm <00:30:49.451>a <00:30:49.685>stellar <00:30:49.918>speaker <00:30:50.151>in <00:30:50.385>Italian,

623
00:30:51.105 --> 00:30:52.965
<00:30:51.105>so <00:30:51.455>maybe <00:30:51.805>you <00:30:52.155>can, <00:30:52.505>okay.

624
00:30:53.135 --> 00:30:53.565
<00:30:53.135>Thank <00:30:53.522>you.