WEBVTT

1
00:00:02.480 --> 00:00:03.840
<00:00:02.480>Thank <00:00:02.888>you. <00:00:03.296>Okay, <00:00:03.703>so

2
00:00:05.840 --> 00:00:09.450
<00:00:05.840>this <00:00:05.956>is <00:00:06.073>the <00:00:06.189>title <00:00:06.306>of <00:00:06.423>the <00:00:06.540>talk, <00:00:06.656>how <00:00:06.773>to <00:00:06.890>Create <00:00:07.006>RX <00:00:07.123>JS <00:00:07.240>Operators,

3
00:00:10.110 --> 00:00:12.170
<00:00:10.110>as <00:00:10.459>I <00:00:10.809>explained <00:00:11.160>just <00:00:11.510>now.

4
00:00:12.790 --> 00:00:17.610
<00:00:12.790>So <00:00:12.930>I'm <00:00:13.069>going <00:00:13.209>to <00:00:13.350>do <00:00:13.489>it <00:00:13.629>in <00:00:13.770>three <00:00:13.909>parts. <00:00:14.049>Rx, <00:00:14.190>uh,

5
00:00:18.990 --> 00:00:23.490
<00:00:18.990>in <00:00:19.097>general, <00:00:19.205>R <00:00:19.313>X <00:00:19.420>J <00:00:19.528>S, <00:00:19.636>how <00:00:19.743>that <00:00:19.851>happened, <00:00:19.959>and <00:00:20.066>R <00:00:20.174>X <00:00:20.282>J <00:00:20.389>X,

6
00:00:24.110 --> 00:00:27.530
<00:00:24.110>and <00:00:24.217>the <00:00:24.325>fourth <00:00:24.433>part <00:00:24.540>is <00:00:24.648>R <00:00:24.756>F <00:00:24.863>JS <00:00:24.971>X. <00:00:25.079>So, <00:00:25.186>so, <00:00:25.294>no, <00:00:25.402>I'm <00:00:25.509>joking.

7
00:00:27.640 --> 00:00:30.690
<00:00:27.640>This <00:00:27.815>is <00:00:27.990>not <00:00:28.165>the <00:00:28.340>second, <00:00:28.515>uh, <00:00:28.690>the <00:00:28.865>fourth <00:00:29.040>part.

8
00:00:31.070 --> 00:00:36.010
<00:00:31.070>So <00:00:31.210>that's <00:00:31.350>my <00:00:31.490>bio. <00:00:31.630>Basically, <00:00:31.770>I'm <00:00:31.910>a <00:00:32.049>software <00:00:32.189>engineer <00:00:32.330>at <00:00:32.470>Yodel,

9
00:00:36.020 --> 00:00:40.290
<00:00:36.020>which <00:00:36.195>is <00:00:36.370>a <00:00:36.545>German <00:00:36.720>company <00:00:36.895>that <00:00:37.070>that <00:00:37.245>is <00:00:37.420>create,

10
00:00:40.510 --> 00:00:43.570
<00:00:40.510>so <00:00:40.710>it's <00:00:40.910>a <00:00:41.110>social <00:00:41.309>media <00:00:41.510>application <00:00:41.710>like <00:00:41.910>Twitter,

11
00:00:43.870 --> 00:00:48.330
<00:00:43.870>but <00:00:43.977>it's <00:00:44.085>anonymous <00:00:44.193>and <00:00:44.300>local, <00:00:44.408>so <00:00:44.516>you <00:00:44.623>can <00:00:44.731>see <00:00:44.839>it <00:00:44.946>both <00:00:45.054>from <00:00:45.162>your <00:00:45.269>surroundings.

12
00:00:48.390 --> 00:00:50.130
<00:00:48.390>And <00:00:48.740>I'm <00:00:49.090>also <00:00:49.440>Docker <00:00:49.790>captain,

13
00:00:50.560 --> 00:00:55.090
<00:00:50.560>meaning <00:00:50.715>that <00:00:50.871>I <00:00:51.026>create <00:00:51.182>content <00:00:51.337>on <00:00:51.493>Docker <00:00:51.648>and <00:00:51.804>on, <00:00:51.960>uh,

14
00:00:55.320 --> 00:01:00.090
<00:00:55.320>tech <00:00:55.460>as <00:00:55.600>it <00:00:55.740>in <00:00:55.880>general. <00:00:56.020>I'm <00:00:56.160>based <00:00:56.300>in <00:00:56.440>Fryberg, <00:00:56.580>Germany. <00:00:56.720>Uh,

15
00:01:00.610 --> 00:01:05.450
<00:01:00.610>it's <00:01:00.737>in <00:01:00.864>the <00:01:00.991>southwest <00:01:01.119>of <00:01:01.246>Germany, <00:01:01.373>the <00:01:01.500>Sanya <00:01:01.628>city <00:01:01.755>in <00:01:01.882>Germany, <00:01:02.010>basically.

16
00:01:06.070 --> 00:01:11.070
<00:01:06.070>And <00:01:06.210>those <00:01:06.350>are <00:01:06.490>my <00:01:06.630>links. <00:01:06.770>Uh, <00:01:06.910>if <00:01:07.050>you <00:01:07.190>want <00:01:07.330>to, <00:01:07.470>uh,

17
00:01:11.540 --> 00:01:16.500
<00:01:11.539>connect <00:01:11.656>to <00:01:11.773>me <00:01:11.889>the <00:01:12.006>reach <00:01:12.123>out, <00:01:12.240>ask <00:01:12.356>questions <00:01:12.473>or <00:01:12.589>anything. <00:01:12.706>And <00:01:12.823>yeah, <00:01:12.940>so

18
00:01:18.460 --> 00:01:23.280
<00:01:18.460>just <00:01:18.635>jump <00:01:18.810>right <00:01:18.985>into <00:01:19.160>it. <00:01:19.335>So, <00:01:19.510>reactive <00:01:19.685>X, <00:01:19.860>uh,

19
00:01:23.680 --> 00:01:28.240
<00:01:23.680>a <00:01:23.807>brief, <00:01:23.934>his <00:01:24.061>a <00:01:24.189>brief <00:01:24.316>history. <00:01:24.443>So <00:01:24.570>how <00:01:24.698>did <00:01:24.825>Reactive <00:01:24.952>X <00:01:25.080>happen?

20
00:01:28.240 --> 00:01:32.800
<00:01:28.240>Reactive <00:01:28.473>X <00:01:28.706>is <00:01:28.940>reactive <00:01:29.173>extensions <00:01:29.406>for <00:01:29.640>different

21
00:01:32.800 --> 00:01:37.560
<00:01:32.800>programming <00:01:32.940>languages <00:01:33.080>that <00:01:33.220>now <00:01:33.360>come <00:01:33.500>in <00:01:33.640>all <00:01:33.780>different <00:01:33.920>shapes <00:01:34.060>and <00:01:34.200>sizes.

22
00:01:38.420 --> 00:01:39.170
Uh,

23
00:01:39.170 --> 00:01:43.680
<00:01:39.170>these <00:01:39.370>all <00:01:39.570>started <00:01:39.770>as <00:01:39.970>legends <00:01:40.170>say <00:01:40.370>that <00:01:40.570>in

24
00:01:43.680 --> 00:01:45.280
<00:01:43.680>2007, <00:01:45.080>uh,

25
00:01:46.100 --> 00:01:49.720
<00:01:46.100>the <00:01:46.274>chief <00:01:46.449>architect <00:01:46.625>wrote <00:01:46.800>an <00:01:46.975>email <00:01:47.149>to <00:01:47.324>everyone. <00:01:47.500>Uh,

26
00:01:50.070 --> 00:01:53.480
<00:01:50.070>that <00:01:50.419>complexity <00:01:50.770>kills <00:01:51.119>basically. <00:01:51.470>Uh,

27
00:01:54.300 --> 00:01:58.490
<00:01:54.300>if <00:01:54.500>you <00:01:54.700>have <00:01:54.899>done <00:01:55.100>any <00:01:55.300>concurrent <00:01:55.500>programming <00:01:55.700>or

28
00:01:58.910 --> 00:02:00.770
<00:01:58.910>multi-threading, <00:01:59.610>uh, <00:02:00.310>in,

29
00:02:00.830 --> 00:02:04.460
<00:02:00.830>in <00:02:01.030>late <00:02:01.230>nineties <00:02:01.429>or <00:02:01.630>early <00:02:01.830>two <00:02:02.030>thousands, <00:02:02.230>uh,

30
00:02:05.990 --> 00:02:08.650
<00:02:05.990>you <00:02:06.145>know, <00:02:06.301>that <00:02:06.456>it's, <00:02:06.612>it's <00:02:06.767>really <00:02:06.923>hard <00:02:07.078>to <00:02:07.234>do <00:02:07.390>that.

31
00:02:08.800 --> 00:02:12.610
<00:02:08.800>It's <00:02:08.955>really <00:02:09.111>painful <00:02:09.266>that <00:02:09.422>you <00:02:09.577>have <00:02:09.733>to <00:02:09.888>do <00:02:10.044>many <00:02:10.200>things,

32
00:02:12.640 --> 00:02:14.490
<00:02:12.640>many <00:02:13.106>low-level <00:02:13.573>things <00:02:14.040>manually.

33
00:02:14.590 --> 00:02:18.720
<00:02:14.590>And <00:02:14.790>that <00:02:14.990>was <00:02:15.190>basically <00:02:15.390>the <00:02:15.590>main <00:02:15.790>reason. <00:02:15.990>Uh,

34
00:02:19.580 --> 00:02:21.360
<00:02:19.579>it <00:02:19.859>was <00:02:20.140>super <00:02:20.420>complex. <00:02:20.700>And, <00:02:20.980>uh,

35
00:02:23.040 --> 00:02:27.370
<00:02:23.040>this <00:02:23.167>person <00:02:23.294>there <00:02:23.421>was <00:02:23.549>working, <00:02:23.676>uh, <00:02:23.803>at, <00:02:23.930>uh, <00:02:24.058>Microsoft <00:02:24.185>at <00:02:24.312>the <00:02:24.440>time,

36
00:02:28.270 --> 00:02:32.610
<00:02:28.270>uh, <00:02:28.470>Eric <00:02:28.670>Meyer, <00:02:28.870>uh, <00:02:29.070>Dutch <00:02:29.270>guy. <00:02:29.470>And <00:02:29.670>he,

37
00:02:33.180 --> 00:02:37.970
<00:02:33.180>after <00:02:33.335>receiving <00:02:33.491>this <00:02:33.646>email, <00:02:33.802>he <00:02:33.957>started, <00:02:34.113>uh, <00:02:34.268>trying <00:02:34.424>to, <00:02:34.580>uh,

38
00:02:37.970 --> 00:02:41.530
<00:02:37.970>build <00:02:38.125>a <00:02:38.281>new <00:02:38.436>thing <00:02:38.592>to <00:02:38.747>address <00:02:38.903>this <00:02:39.058>issue <00:02:39.214>of, <00:02:39.370>uh,

39
00:02:41.530 --> 00:02:46.330
<00:02:41.530>dealing <00:02:41.705>with <00:02:41.880>concurrent <00:02:42.055>programming. <00:02:42.230>So <00:02:42.405>he <00:02:42.580>created <00:02:42.755>ReactiveX, <00:02:42.930>uh,

40
00:02:46.540 --> 00:02:51.210
<00:02:46.540>first <00:02:46.695>he, <00:02:46.851>he <00:02:47.006>created <00:02:47.162>rx.net <00:02:47.317>because <00:02:47.473>it <00:02:47.628>was <00:02:47.784>Microsoft <00:02:47.940>and,

41
00:02:51.350 --> 00:02:55.700
<00:02:51.350>uh, <00:02:51.700>also <00:02:52.049>RX <00:02:52.400>js, <00:02:52.750>uh,

42
00:02:56.230 --> 00:02:59.760
<00:02:56.230>later <00:02:56.463>in <00:02:56.696>2012, <00:02:56.929>Microsoft <00:02:57.163>Open <00:02:57.396>source <00:02:57.630>architects,

43
00:03:00.420 --> 00:03:02.520
<00:03:00.420>so <00:03:00.700>to, <00:03:00.980>to <00:03:01.260>have <00:03:01.540>it, <00:03:01.820>uh,

44
00:03:03.060 --> 00:03:08.000
<00:03:03.060>to <00:03:03.235>get <00:03:03.410>contributions <00:03:03.585>from <00:03:03.760>the <00:03:03.935>community. <00:03:04.110>And <00:03:04.285>next <00:03:04.460>year,

45
00:03:08.020 --> 00:03:09.560
<00:03:08.020>2013, <00:03:09.406>uh,

46
00:03:09.560 --> 00:03:13.920
<00:03:09.560>Eric <00:03:09.687>Meyer <00:03:09.814>moved <00:03:09.941>to <00:03:10.069>Netflix <00:03:10.196>and <00:03:10.323>started <00:03:10.450>Eric's <00:03:10.578>Java <00:03:10.705>there <00:03:10.832>because <00:03:10.960>they're,

47
00:03:13.920 --> 00:03:16.440
<00:03:13.920>they <00:03:14.119>were <00:03:14.320>using <00:03:14.519>Java, <00:03:14.720>uh, <00:03:14.920>at, <00:03:15.119>at <00:03:15.320>Netflix.

48
00:03:17.420 --> 00:03:21.600
<00:03:17.420>So <00:03:17.595>this <00:03:17.770>is <00:03:17.945>how <00:03:18.120>this <00:03:18.295>whole, <00:03:18.470>uh, <00:03:18.645>thing <00:03:18.820>boomed.

49
00:03:22.740 --> 00:03:27.660
<00:03:22.740>I <00:03:22.895>arrived <00:03:23.051>at <00:03:23.206>Amsterdam <00:03:23.362>in <00:03:23.517>2018. <00:03:23.673>I <00:03:23.828>was <00:03:23.984>working <00:03:24.140>at,

50
00:03:27.680 --> 00:03:30.180
<00:03:27.680>at <00:03:27.880>a <00:03:28.080>company <00:03:28.280>called <00:03:28.480>Picnic <00:03:28.680>at <00:03:28.880>the <00:03:29.080>time.

51
00:03:31.950 --> 00:03:36.330
<00:03:31.950>And <00:03:32.125>reactive, <00:03:32.299>uh, <00:03:32.475>programming <00:03:32.649>was <00:03:32.825>a <00:03:33.000>huge <00:03:33.174>hype <00:03:33.350>there.

52
00:03:36.510 --> 00:03:40.450
<00:03:36.510>So <00:03:36.665>it <00:03:36.821>was <00:03:36.976>basically <00:03:37.132>like <00:03:37.287>what <00:03:37.443>AI <00:03:37.598>is <00:03:37.754>now, <00:03:37.910>or,

53
00:03:40.510 --> 00:03:45.450
<00:03:40.510>or <00:03:40.665>like <00:03:40.821>cryptocurrency. <00:03:40.976>And <00:03:41.132>everybody <00:03:41.287>was <00:03:41.443>talking <00:03:41.598>about <00:03:41.754>reactive <00:03:41.910>programming,

54
00:03:45.870 --> 00:03:49.820
<00:03:45.870>and <00:03:46.070>it <00:03:46.270>was <00:03:46.470>so <00:03:46.670>hyped. <00:03:46.870>We <00:03:47.070>had, <00:03:47.270>uh,

55
00:03:49.890 --> 00:03:54.700
<00:03:49.890>different <00:03:50.089>implementations <00:03:50.290>of <00:03:50.489>reactive <00:03:50.690>programming <00:03:50.890>in, <00:03:51.089>in <00:03:51.290>Java.

56
00:03:54.760 --> 00:03:59.260
<00:03:54.760>So <00:03:54.915>we <00:03:55.071>had, <00:03:55.226>okay, <00:03:55.382>so <00:03:55.537>I, <00:03:55.693>I <00:03:55.848>arrived <00:03:56.004>at <00:03:56.160>Holland,

57
00:03:59.600 --> 00:04:03.780
<00:03:59.600>uh, <00:03:59.739>that, <00:03:59.880>that's <00:04:00.019>how <00:04:00.160>it <00:04:00.299>looked <00:04:00.440>like. <00:04:00.579>And <00:04:00.720>yeah, <00:04:00.859>so <00:04:01.000>we,

58
00:04:03.800 --> 00:04:07.220
<00:04:03.800>we <00:04:03.940>are <00:04:04.080>having <00:04:04.220>a <00:04:04.360>lunch <00:04:04.500>here <00:04:04.640>so <00:04:04.780>that <00:04:04.920>you <00:04:05.060>are, <00:04:05.200>uh,

59
00:04:09.010 --> 00:04:11.110
<00:04:09.010>not <00:04:09.185>bored <00:04:09.359>with <00:04:09.535>the <00:04:09.709>coats <00:04:09.885>and <00:04:10.060>stuff. <00:04:10.234>So, <00:04:10.410>uh,

60
00:04:11.930 --> 00:04:16.060
<00:04:11.930>it <00:04:12.085>was <00:04:12.241>so <00:04:12.396>hyped. <00:04:12.552>There <00:04:12.707>was <00:04:12.863>a <00:04:13.018>lot <00:04:13.174>of, <00:04:13.330>uh,

61
00:04:16.730 --> 00:04:18.940
<00:04:16.730>different <00:04:17.010>implementations <00:04:17.290>of <00:04:17.570>the <00:04:17.850>same <00:04:18.130>thing.

62
00:04:19.000 --> 00:04:22.940
<00:04:19.000>So <00:04:19.140>there <00:04:19.279>were <00:04:19.420>four <00:04:19.560>implementations <00:04:19.700>at <00:04:19.839>the <00:04:19.980>time <00:04:20.120>that <00:04:20.260>I <00:04:20.399>knew.

63
00:04:23.070 --> 00:04:26.900
<00:04:23.070>These <00:04:23.245>are <00:04:23.420>three <00:04:23.594>of <00:04:23.770>them. <00:04:23.945>Uh, <00:04:24.120>rx, <00:04:24.295>Java, <00:04:24.469>uh,

64
00:04:27.240 --> 00:04:28.100
<00:04:27.240>was <00:04:27.498>one <00:04:27.756>of <00:04:28.014>them.

65
00:04:28.170 --> 00:04:32.700
<00:04:28.170>Reactor <00:04:28.403>was <00:04:28.636>the <00:04:28.870>implementation <00:04:29.103>created <00:04:29.336>by <00:04:29.570>the

66
00:04:32.880 --> 00:04:36.740
<00:04:32.880>outers, <00:04:33.035>uh, <00:04:33.191>the, <00:04:33.346>the <00:04:33.502>creators <00:04:33.657>of <00:04:33.813>a <00:04:33.968>spring, <00:04:34.124>uh, <00:04:34.280>framework,

67
00:04:37.150 --> 00:04:40.960
<00:04:37.150>which <00:04:37.305>looked <00:04:37.461>exactly <00:04:37.616>like <00:04:37.772>Eric <00:04:37.927>Java <00:04:38.083>to <00:04:38.238>a <00:04:38.394>good <00:04:38.549>degree.

68
00:04:41.460 --> 00:04:44.640
<00:04:41.460>We <00:04:41.693>had <00:04:41.926>ACA <00:04:42.159>streams, <00:04:42.393>uh, <00:04:42.626>Java <00:04:42.859>itself,

69
00:04:44.780 --> 00:04:49.240
<00:04:44.780>CRE <00:04:44.919>added <00:04:45.059>streams <00:04:45.200>to <00:04:45.340>make <00:04:45.479>this <00:04:45.619>whole <00:04:45.760>thing <00:04:45.900>a <00:04:46.039>bit <00:04:46.179>easier.

70
00:04:50.220 --> 00:04:54.850
<00:04:50.220>And <00:04:50.420>that <00:04:50.620>was <00:04:50.820>how <00:04:51.020>the <00:04:51.220>scene <00:04:51.420>looked <00:04:51.620>like,

71
00:04:55.310 --> 00:04:59.170
<00:04:55.310>uh, <00:04:55.510>uh, <00:04:55.710>from <00:04:55.910>a <00:04:56.110>Java <00:04:56.310>backend <00:04:56.510>engineer's <00:04:56.710>perspective.

72
00:05:00.520 --> 00:05:02.860
<00:05:00.520>And <00:05:00.986>one <00:05:01.453>other <00:05:01.919>point.

73
00:05:02.960 --> 00:05:07.740
<00:05:02.960>So <00:05:03.115>people <00:05:03.271>used <00:05:03.426>to <00:05:03.582>call <00:05:03.737>this <00:05:03.893>whole <00:05:04.048>paradigm <00:05:04.204>reactive <00:05:04.359>programming,

74
00:05:07.740 --> 00:05:12.590
<00:05:07.740>but <00:05:07.880>also <00:05:08.020>sometimes <00:05:08.160>functional <00:05:08.300>reactive <00:05:08.440>programming, <00:05:08.580>which <00:05:08.720>is <00:05:08.860>another <00:05:09.000>thing. <00:05:09.140>And,

75
00:05:12.710 --> 00:05:16.310
<00:05:12.710>and <00:05:12.909>that's <00:05:13.109>basically <00:05:13.310>what <00:05:13.510>signals, <00:05:13.710>uh, <00:05:13.909>are <00:05:14.109>addressing.

76
00:05:16.970 --> 00:05:21.550
<00:05:16.970>And <00:05:17.063>we <00:05:17.156>are <00:05:17.250>going <00:05:17.343>to, <00:05:17.436>uh, <00:05:17.530>have <00:05:17.623>another <00:05:17.716>talk <00:05:17.810>about <00:05:17.903>that, <00:05:17.996>I <00:05:18.090>guess. <00:05:18.183>Uh, <00:05:18.276>next, <00:05:18.370>uh,

77
00:05:21.550 --> 00:05:26.470
<00:05:21.550>yeah, <00:05:21.677>so <00:05:21.804>just <00:05:21.931>as <00:05:22.059>a <00:05:22.186>side <00:05:22.313>note, <00:05:22.440>uh, <00:05:22.568>although <00:05:22.695>directive <00:05:22.822>programming <00:05:22.950>rx,

78
00:05:26.730 --> 00:05:31.570
<00:05:26.730>uh, <00:05:26.870>is <00:05:27.010>using <00:05:27.150>a <00:05:27.290>lot <00:05:27.430>of <00:05:27.570>components <00:05:27.710>from <00:05:27.850>function <00:05:27.990>programming <00:05:28.130>that's,

79
00:05:31.910 --> 00:05:33.730
<00:05:31.910>uh, <00:05:32.260>not <00:05:32.610>functional <00:05:32.960>directive <00:05:33.310>programming,

80
00:05:33.840 --> 00:05:38.350
<00:05:33.840>that <00:05:34.040>that's <00:05:34.240>something <00:05:34.440>that <00:05:34.640>is <00:05:34.840>basically, <00:05:35.040>uh, <00:05:35.240>for,

81
00:05:39.090 --> 00:05:43.980
<00:05:39.090>uh, <00:05:39.245>UI <00:05:39.401>and, <00:05:39.556>and <00:05:39.712>doesn't <00:05:39.867>really, <00:05:40.023>uh, <00:05:40.178>help <00:05:40.334>back <00:05:40.490>in,

82
00:05:43.980 --> 00:05:47.430
<00:05:43.980>in, <00:05:44.260>uh, <00:05:44.540>programming. <00:05:44.820>In <00:05:45.100>the <00:05:45.380>meantime,

83
00:05:48.100 --> 00:05:50.630
<00:05:48.100>Eric <00:05:48.380>J <00:05:48.660>was <00:05:48.940>also <00:05:49.220>evolving. <00:05:49.500>And

84
00:05:53.320 --> 00:05:57.200
<00:05:53.320>in <00:05:53.599>2017, <00:05:53.880>a <00:05:54.159>very <00:05:54.440>nice, <00:05:54.719>uh,

85
00:05:58.890 --> 00:06:03.850
<00:05:58.890>decision <00:05:59.030>was <00:05:59.169>made <00:05:59.310>in, <00:05:59.450>uh, <00:05:59.590>respect <00:05:59.729>to <00:05:59.870>the <00:06:00.010>RX <00:06:00.150>J <00:06:00.289>s's,

86
00:06:03.950 --> 00:06:07.770
<00:06:03.950>uh, <00:06:04.105>a <00:06:04.261>p <00:06:04.416>i, <00:06:04.572>and <00:06:04.727>they <00:06:04.883>introduced <00:06:05.038>the <00:06:05.194>pipe, <00:06:05.349>uh,

87
00:06:09.050 --> 00:06:13.850
<00:06:09.050>function, <00:06:09.177>the <00:06:09.304>pipe <00:06:09.431>method <00:06:09.559>of <00:06:09.686>the <00:06:09.813>observable. <00:06:09.940>So <00:06:10.068>if <00:06:10.195>you <00:06:10.322>can, <00:06:10.450>uh,

88
00:06:14.030 --> 00:06:18.290
<00:06:14.030>if <00:06:14.169>you <00:06:14.309>look <00:06:14.450>at <00:06:14.590>RX <00:06:14.729>JS <00:06:14.869>five, <00:06:15.010>uh, <00:06:15.150>all <00:06:15.289>these <00:06:15.429>functions,

89
00:06:18.290 --> 00:06:20.410
<00:06:18.290>all <00:06:18.570>these <00:06:18.850>operators <00:06:19.130>map <00:06:19.410>produce, <00:06:19.690>uh,

90
00:06:20.470 --> 00:06:23.930
<00:06:20.470>and <00:06:20.750>all <00:06:21.030>others <00:06:21.310>are <00:06:21.590>member, <00:06:21.870>uh,

91
00:06:24.330 --> 00:06:28.090
<00:06:24.330>functions <00:06:24.563>of <00:06:24.796>the <00:06:25.030>observable, <00:06:25.263>uh, <00:06:25.496>object. <00:06:25.729>So,

92
00:06:29.620 --> 00:06:31.440
<00:06:29.620>at <00:06:29.853>the <00:06:30.086>beginning <00:06:30.320>of <00:06:30.553>the <00:06:30.786>object, <00:06:31.020>uh,

93
00:06:31.440 --> 00:06:35.840
<00:06:31.440>the <00:06:31.567>observable <00:06:31.694>object <00:06:31.821>was <00:06:31.949>huge <00:06:32.076>as <00:06:32.203>it <00:06:32.330>is <00:06:32.458>in <00:06:32.585>RX <00:06:32.712>Javas <00:06:32.840>now,

94
00:06:36.420 --> 00:06:39.480
<00:06:36.420>and <00:06:36.770>later <00:06:37.120>in, <00:06:37.470>uh, <00:06:37.820>2017,

95
00:06:39.590 --> 00:06:44.280
<00:06:39.590>they <00:06:39.940>started <00:06:40.290>to <00:06:40.640>basically <00:06:40.990>refactor

96
00:06:44.310 --> 00:06:49.200
<00:06:44.310>that <00:06:44.485>and <00:06:44.660>removed <00:06:44.835>all <00:06:45.010>these <00:06:45.185>operators <00:06:45.360>from <00:06:45.535>the, <00:06:45.710>uh,

97
00:06:49.980 --> 00:06:52.760
<00:06:49.980>object <00:06:50.330>itself. <00:06:50.680>So <00:06:51.030>since, <00:06:51.380>uh,

98
00:06:53.560 --> 00:06:58.120
<00:06:53.560>j <00:06:53.715>s <00:06:53.871>5.5 <00:06:54.026>MAP <00:06:54.182>reduce <00:06:54.337>and <00:06:54.493>all <00:06:54.648>these <00:06:54.804>operator <00:06:54.960>functions

99
00:06:58.820 --> 00:07:02.240
<00:06:58.820>became <00:06:59.053>independent <00:06:59.286>functions, <00:06:59.520>and <00:06:59.753>they <00:06:59.986>also, <00:07:00.219>uh,

100
00:07:02.450 --> 00:07:07.000
<00:07:02.450>lived <00:07:02.566>in <00:07:02.683>different <00:07:02.800>parts <00:07:02.916>of <00:07:03.033>the, <00:07:03.150>uh, <00:07:03.266>repository. <00:07:03.383>And <00:07:03.500>the <00:07:03.616>only <00:07:03.733>thing <00:07:03.849>the,

101
00:07:07.660 --> 00:07:10.620
<00:07:07.660>uh, <00:07:08.360>observables, <00:07:09.060>uh,

102
00:07:10.620 --> 00:07:15.500
<00:07:10.620>object <00:07:10.760>had <00:07:10.900>was <00:07:11.040>this <00:07:11.180>pipe <00:07:11.320>functions <00:07:11.460>that <00:07:11.600>you <00:07:11.740>could <00:07:11.880>use <00:07:12.020>to

103
00:07:16.240 --> 00:07:20.000
<00:07:16.240>you, <00:07:16.440>uh, <00:07:16.640>pass <00:07:16.840>along <00:07:17.040>these, <00:07:17.240>uh, <00:07:17.440>other <00:07:17.640>functions,

104
00:07:20.290 --> 00:07:25.280
<00:07:20.290>other <00:07:20.417>operator <00:07:20.544>functions. <00:07:20.671>It <00:07:20.799>made, <00:07:20.926>this, <00:07:21.053>made <00:07:21.180>it <00:07:21.308>a <00:07:21.435>bit <00:07:21.562>more <00:07:21.690>verbal,

105
00:07:25.500 --> 00:07:29.080
<00:07:25.500>but <00:07:25.675>it, <00:07:25.850>uh, <00:07:26.025>had <00:07:26.200>a <00:07:26.375>lot <00:07:26.550>of <00:07:26.725>different, <00:07:26.900>uh,

106
00:07:30.230 --> 00:07:31.063
advantages.

107
00:07:32.380 --> 00:07:37.200
<00:07:32.380>So <00:07:32.580>I <00:07:32.780>left <00:07:32.980>Holland <00:07:33.180>and <00:07:33.380>came <00:07:33.580>to <00:07:33.780>Freberg

108
00:07:37.340 --> 00:07:42.240
<00:07:37.340>and <00:07:37.467>started <00:07:37.594>working <00:07:37.721>as <00:07:37.849>a <00:07:37.976>backend <00:07:38.103>engineer <00:07:38.230>doing <00:07:38.358>no <00:07:38.485>JS <00:07:38.612>for <00:07:38.740>the

109
00:07:42.240 --> 00:07:47.120
<00:07:42.240>most <00:07:42.367>time, <00:07:42.494>uh, <00:07:42.621>time. <00:07:42.749>And <00:07:42.876>we <00:07:43.003>were <00:07:43.130>doing <00:07:43.258>no <00:07:43.385>JS <00:07:43.512>plus <00:07:43.640>TypeScript,

110
00:07:47.380 --> 00:07:50.030
<00:07:47.380>and <00:07:47.846>I <00:07:48.313>was, <00:07:48.780>uh,

111
00:07:51.450 --> 00:07:53.290
<00:07:51.450>wrapping <00:07:51.729>everything <00:07:52.010>in <00:07:52.289>R <00:07:52.570>js, <00:07:52.849>so,

112
00:07:53.290 --> 00:07:57.150
<00:07:53.290>which <00:07:53.465>is <00:07:53.640>not <00:07:53.815>very <00:07:53.990>common <00:07:54.165>in <00:07:54.340>node <00:07:54.515>JS <00:07:54.690>four.

113
00:07:57.210 --> 00:08:02.070
<00:07:57.210>So <00:07:57.365>I <00:07:57.521>expected <00:07:57.676>the <00:07:57.832>same <00:07:57.987>hype <00:07:58.143>that <00:07:58.298>happened <00:07:58.454>in <00:07:58.609>the

114
00:08:02.260 --> 00:08:06.590
<00:08:02.260>Java <00:08:02.400>bubble <00:08:02.539>to <00:08:02.680>be <00:08:02.820>also <00:08:02.960>dominant <00:08:03.099>in <00:08:03.240>nodes <00:08:03.380>bubble, <00:08:03.520>but, <00:08:03.659>uh,

115
00:08:08.260 --> 00:08:11.000
<00:08:08.260>in, <00:08:08.493>in <00:08:08.726>no <00:08:08.960>js <00:08:09.193>JavaScript <00:08:09.426>word, <00:08:09.659>uh,

116
00:08:11.700 --> 00:08:15.680
<00:08:11.700>RX <00:08:11.840>jss <00:08:11.979>was <00:08:12.120>mostly <00:08:12.260>used <00:08:12.400>in <00:08:12.539>angular <00:08:12.680>and <00:08:12.820>not <00:08:12.960>in <00:08:13.099>backend.

117
00:08:16.500 --> 00:08:19.750
<00:08:16.500>And <00:08:16.850>because <00:08:17.200>we, <00:08:17.550>uh, <00:08:17.900>in,

118
00:08:19.750 --> 00:08:24.030
<00:08:19.750>in <00:08:19.890>this <00:08:20.030>company <00:08:20.170>had <00:08:20.310>angular <00:08:20.450>as <00:08:20.590>frontend <00:08:20.730>and <00:08:20.870>no <00:08:21.010>JSS <00:08:21.150>backend,

119
00:08:24.110 --> 00:08:26.790
<00:08:24.110>I <00:08:24.343>tried <00:08:24.576>to <00:08:24.810>be <00:08:25.043>as <00:08:25.276>much, <00:08:25.510>uh,

120
00:08:26.840 --> 00:08:31.590
<00:08:26.840>consistent <00:08:26.995>between <00:08:27.151>two <00:08:27.306>projects <00:08:27.462>and <00:08:27.617>made <00:08:27.773>this <00:08:27.928>whole <00:08:28.084>backend <00:08:28.239>project

121
00:08:31.780 --> 00:08:36.630
<00:08:31.780>also <00:08:31.935>RJ <00:08:32.091>space. <00:08:32.246>So <00:08:32.402>all <00:08:32.557>the <00:08:32.713>functions <00:08:32.868>were <00:08:33.024>returning <00:08:33.179>observables.

122
00:08:36.930 --> 00:08:40.920
<00:08:36.929>And <00:08:37.209>this, <00:08:37.489>uh, <00:08:37.770>made <00:08:38.049>this <00:08:38.329>whole,

123
00:08:41.970 --> 00:08:46.830
<00:08:41.970>uh, <00:08:42.170>code <00:08:42.370>basically, <00:08:42.570>uh, <00:08:42.770>a <00:08:42.970>lot <00:08:43.170>of <00:08:43.370>pipes.

124
00:08:46.830 --> 00:08:51.440
<00:08:46.830>So, <00:08:47.063>uh, <00:08:47.296>also <00:08:47.530>it <00:08:47.763>is, <00:08:47.996>it's, <00:08:48.230>uh,

125
00:08:53.840 --> 00:08:55.640
<00:08:53.840>also <00:08:54.190>a <00:08:54.540>bit <00:08:54.890>of, <00:08:55.240>uh,

126
00:08:58.550 --> 00:09:01.170
<00:08:58.550>fun <00:08:58.724>part. <00:08:58.900>So <00:08:59.074>there <00:08:59.250>are <00:08:59.425>two <00:08:59.599>types <00:08:59.775>of <00:08:59.949>people,

127
00:09:02.080 --> 00:09:07.010
<00:09:02.080>ones <00:09:02.207>who <00:09:02.334>wrote <00:09:02.461>pipe <00:09:02.589>in <00:09:02.716>front <00:09:02.843>of <00:09:02.970>each, <00:09:03.098>uh, <00:09:03.225>operator <00:09:03.352>function, <00:09:03.480>and,

128
00:09:07.070 --> 00:09:11.290
<00:09:07.070>and <00:09:07.210>the <00:09:07.350>ones <00:09:07.490>who <00:09:07.630>created <00:09:07.770>one <00:09:07.910>pipe <00:09:08.050>for <00:09:08.190>everything. <00:09:08.330>And, <00:09:08.470>uh,

129
00:09:12.330 --> 00:09:16.770
<00:09:12.330>i, <00:09:12.446>if <00:09:12.563>you, <00:09:12.680>which, <00:09:12.796>which <00:09:12.913>type <00:09:13.030>are <00:09:13.146>you, <00:09:13.263>you <00:09:13.380>can <00:09:13.496>write <00:09:13.613>down <00:09:13.730>in,

130
00:09:17.150 --> 00:09:18.610
<00:09:17.150>in <00:09:17.412>common <00:09:17.675>flow. <00:09:17.938>But, <00:09:18.201>uh, <00:09:18.464>yeah.

131
00:09:18.610 --> 00:09:23.170
<00:09:18.610>So <00:09:18.710>I <00:09:18.810>used <00:09:18.910>to <00:09:19.010>be <00:09:19.110>type <00:09:19.210>two <00:09:19.310>UN <00:09:19.410>until <00:09:19.510>I <00:09:19.610>had <00:09:19.710>a <00:09:19.810>pipe <00:09:19.910>that <00:09:20.010>was

132
00:09:23.710 --> 00:09:28.130
<00:09:23.710>10 <00:09:23.837>operators <00:09:23.964>long, <00:09:24.091>and <00:09:24.219>the <00:09:24.346>pipe <00:09:24.473>function <00:09:24.600>here <00:09:24.728>didn't <00:09:24.855>support <00:09:24.982>that <00:09:25.110>anymore.

133
00:09:28.190 --> 00:09:31.770
<00:09:28.190>And <00:09:28.330>so <00:09:28.470>I <00:09:28.610>had <00:09:28.750>to <00:09:28.890>turn <00:09:29.030>back <00:09:29.170>to <00:09:29.310>type <00:09:29.450>one. <00:09:29.590>Uh,

134
00:09:33.790 --> 00:09:34.623
<00:09:33.790>not <00:09:34.164>very <00:09:34.539>important,

135
00:09:34.790 --> 00:09:39.530
<00:09:34.790>but <00:09:34.945>the <00:09:35.101>most <00:09:35.256>important <00:09:35.412>thing <00:09:35.567>was <00:09:35.723>that <00:09:35.878>we <00:09:36.034>had <00:09:36.189>pipelines

136
00:09:39.530 --> 00:09:42.210
<00:09:39.530>that <00:09:39.880>were <00:09:40.230>10 <00:09:40.579>operators <00:09:40.930>long.

137
00:09:42.390 --> 00:09:46.610
<00:09:42.390>And <00:09:42.623>this <00:09:42.856>whole <00:09:43.090>code <00:09:43.323>became <00:09:43.556>basically <00:09:43.790>huge

138
00:09:47.090 --> 00:09:51.140
<00:09:47.090>pipelines <00:09:47.323>and, <00:09:47.556>uh, <00:09:47.790>especially, <00:09:48.023>uh, <00:09:48.256>because <00:09:48.490>it,

139
00:09:51.170 --> 00:09:55.990
<00:09:51.170>it's <00:09:51.297>backend <00:09:51.424>code, <00:09:51.551>and, <00:09:51.679>uh, <00:09:51.806>we <00:09:51.933>didn't <00:09:52.060>have <00:09:52.188>any <00:09:52.315>states <00:09:52.442>in <00:09:52.569>there.

140
00:09:56.090 --> 00:10:00.300
<00:09:56.090>So <00:09:56.290>everything <00:09:56.490>was, <00:09:56.690>uh, <00:09:56.890>basically <00:09:57.090>piped <00:09:57.290>together <00:09:57.490>to,

141
00:10:00.360 --> 00:10:01.580
<00:10:00.360>to <00:10:00.579>get <00:10:00.799>to <00:10:01.018>the <00:10:01.238>end <00:10:01.458>result.

142
00:10:02.690 --> 00:10:07.460
<00:10:02.690>And <00:10:02.845>we <00:10:03.001>basically <00:10:03.156>became <00:10:03.312>plumbers <00:10:03.467>fixing <00:10:03.623>pipes <00:10:03.778>the <00:10:03.934>whole <00:10:04.090>time.

143
00:10:08.870 --> 00:10:12.690
<00:10:08.870>And <00:10:09.045>these <00:10:09.220>pipelines <00:10:09.395>were <00:10:09.570>really <00:10:09.745>hard <00:10:09.920>to <00:10:10.095>read <00:10:10.270>because,

144
00:10:13.990 --> 00:10:18.420
<00:10:13.990>uh, <00:10:14.223>this <00:10:14.456>is <00:10:14.690>something <00:10:14.923>that <00:10:15.156>has, <00:10:15.390>uh,

145
00:10:19.440 --> 00:10:22.540
<00:10:19.440>has <00:10:19.640>been <00:10:19.840>addressed <00:10:20.040>in <00:10:20.240>normal <00:10:20.440>way <00:10:20.640>of <00:10:20.840>programming.

146
00:10:22.600 --> 00:10:25.980
<00:10:22.600>If <00:10:22.775>you <00:10:22.950>have <00:10:23.125>something <00:10:23.300>that <00:10:23.475>is <00:10:23.650>not <00:10:23.825>really <00:10:24.000>readable,

147
00:10:25.980 --> 00:10:29.620
<00:10:25.980>you <00:10:26.087>have <00:10:26.195>to <00:10:26.303>introduce <00:10:26.410>a <00:10:26.518>function <00:10:26.626>and <00:10:26.733>put <00:10:26.841>that <00:10:26.949>part <00:10:27.056>of <00:10:27.164>the <00:10:27.272>code <00:10:27.380>in,

148
00:10:30.490 --> 00:10:32.870
<00:10:30.490>in <00:10:30.690>that <00:10:30.890>function, <00:10:31.090>and <00:10:31.290>then <00:10:31.490>reuse <00:10:31.690>that <00:10:31.890>function.

149
00:10:33.090 --> 00:10:36.600
<00:10:33.090>And <00:10:33.265>this <00:10:33.440>was <00:10:33.615>not <00:10:33.790>really <00:10:33.965>the <00:10:34.140>case <00:10:34.315>here, <00:10:34.490>because

150
00:10:38.100 --> 00:10:42.110
<00:10:38.100>this <00:10:38.300>style <00:10:38.500>of <00:10:38.700>coding <00:10:38.900>was <00:10:39.100>not <00:10:39.300>as <00:10:39.500>popular.

151
00:10:42.410 --> 00:10:46.530
<00:10:42.410>So <00:10:42.565>this, <00:10:42.721>uh, <00:10:42.876>was <00:10:43.032>how <00:10:43.187>our <00:10:43.343>codes <00:10:43.498>would <00:10:43.654>look <00:10:43.810>like.

152
00:10:46.710 --> 00:10:50.130
<00:10:46.710>We <00:10:46.865>have <00:10:47.021>this <00:10:47.176>code <00:10:47.332>that <00:10:47.487>is, <00:10:47.643>uh, <00:10:47.798>a <00:10:47.954>test <00:10:48.110>case,

153
00:10:50.350 --> 00:10:54.570
<00:10:50.350>and <00:10:50.466>we <00:10:50.583>get <00:10:50.700>all <00:10:50.816>the <00:10:50.933>users, <00:10:51.050>and <00:10:51.166>then <00:10:51.283>we <00:10:51.400>have <00:10:51.516>this <00:10:51.633>reduced <00:10:51.750>part,

154
00:10:54.980 --> 00:10:58.010
<00:10:54.980>which <00:10:55.213>is <00:10:55.446>not <00:10:55.680>really <00:10:55.913>visible <00:10:56.146>what's <00:10:56.380>doing,

155
00:10:58.750 --> 00:11:02.770
<00:10:58.750>and <00:10:58.866>then <00:10:58.983>we <00:10:59.100>run <00:10:59.216>this <00:10:59.333>test <00:10:59.450>against <00:10:59.566>it <00:10:59.683>in <00:10:59.800>the <00:10:59.916>next <00:11:00.033>line. <00:11:00.150>And

156
00:11:04.800 --> 00:11:08.700
<00:11:04.800>to <00:11:04.974>deal <00:11:05.150>with <00:11:05.324>these <00:11:05.500>kinds <00:11:05.675>of <00:11:05.849>codes, <00:11:06.025>we <00:11:06.199>started,

157
00:11:10.010 --> 00:11:14.260
<00:11:10.010>okay, <00:11:10.150>first <00:11:10.290>of <00:11:10.430>all, <00:11:10.569>halfway <00:11:10.710>through <00:11:10.850>so <00:11:10.990>that <00:11:11.130>it'll <00:11:11.270>get, <00:11:11.410>uh,

158
00:11:16.570 --> 00:11:21.420
<00:11:16.570>more <00:11:16.725>interesting, <00:11:16.881>uh, <00:11:17.036>in <00:11:17.192>a <00:11:17.347>bit. <00:11:17.503>We <00:11:17.658>have <00:11:17.814>started <00:11:17.970>using,

159
00:11:22.160 --> 00:11:26.340
<00:11:22.160>uh, <00:11:22.393>introducing <00:11:22.626>new <00:11:22.860>functions, <00:11:23.093>uh, <00:11:23.326>and <00:11:23.560>then

160
00:11:28.030 --> 00:11:31.570
<00:11:28.030>making <00:11:28.137>the <00:11:28.245>code <00:11:28.353>more <00:11:28.460>dry. <00:11:28.568>So <00:11:28.676>this <00:11:28.783>part <00:11:28.891>of <00:11:28.999>the <00:11:29.106>code <00:11:29.214>that <00:11:29.322>was, <00:11:29.430>uh,

161
00:11:32.280 --> 00:11:34.690
<00:11:32.280>very <00:11:32.746>ugly <00:11:33.213>reduce, <00:11:33.680>uh,

162
00:11:34.910 --> 00:11:39.690
<00:11:34.910>we <00:11:35.050>introduced <00:11:35.189>a <00:11:35.329>function <00:11:35.469>called <00:11:35.610>accumulate <00:11:35.750>as <00:11:35.890>Aries. <00:11:36.030>So <00:11:36.170>now <00:11:36.310>I,

163
00:11:40.270 --> 00:11:41.690
<00:11:40.270>if <00:11:40.589>I <00:11:40.909>read <00:11:41.228>this <00:11:41.548>code,

164
00:11:42.250 --> 00:11:46.610
<00:11:42.250>I <00:11:42.390>don't <00:11:42.530>know <00:11:42.670>what <00:11:42.810>is <00:11:42.950>the <00:11:43.090>implementation <00:11:43.230>below <00:11:43.370>accumulate <00:11:43.510>as <00:11:43.650>error,

165
00:11:47.030 --> 00:11:50.890
<00:11:47.030>but <00:11:47.157>if <00:11:47.284>I <00:11:47.411>read <00:11:47.539>the <00:11:47.666>code, <00:11:47.793>uh, <00:11:47.920>down <00:11:48.048>there, <00:11:48.175>I <00:11:48.302>know, <00:11:48.430>okay,

166
00:11:51.470 --> 00:11:55.980
<00:11:51.470>it <00:11:51.586>gives <00:11:51.703>all <00:11:51.820>these <00:11:51.936>users <00:11:52.053>then <00:11:52.170>accumulate <00:11:52.286>because <00:11:52.403>it's <00:11:52.520>a <00:11:52.636>stream <00:11:52.753>of <00:11:52.870>users,

167
00:11:56.090 --> 00:12:00.100
<00:11:56.090>then <00:11:56.190>it <00:11:56.290>accumulates <00:11:56.390>all <00:11:56.490>of <00:11:56.590>them <00:11:56.690>into <00:11:56.790>one <00:11:56.890>area, <00:11:56.990>and <00:11:57.090>then <00:11:57.190>in <00:11:57.290>the <00:11:57.390>next <00:11:57.490>step,

168
00:12:00.160 --> 00:12:04.380
<00:12:00.160>it <00:12:00.360>runs <00:12:00.560>the <00:12:00.760>test. <00:12:00.959>So <00:12:01.160>it <00:12:01.360>basically, <00:12:01.560>we,

169
00:12:04.400 --> 00:12:09.380
<00:12:04.400>we <00:12:04.633>started <00:12:04.866>to <00:12:05.100>apply <00:12:05.333>the <00:12:05.566>best <00:12:05.800>practices

170
00:12:09.400 --> 00:12:12.000
<00:12:09.400>of <00:12:09.750>code <00:12:10.100>that <00:12:10.449>was, <00:12:10.800>uh,

171
00:12:13.310 --> 00:12:16.100
<00:12:13.310>introduced <00:12:13.589>in <00:12:13.869>other <00:12:14.150>types <00:12:14.430>of, <00:12:14.709>uh,

172
00:12:16.130 --> 00:12:20.940
<00:12:16.130>programming <00:12:16.270>in <00:12:16.410>this <00:12:16.550>pipe <00:12:16.689>hill <00:12:16.830>that <00:12:16.970>we <00:12:17.110>had <00:12:17.250>in <00:12:17.390>here. <00:12:17.530>And

173
00:12:23.270 --> 00:12:27.680
<00:12:23.270>because <00:12:23.410>of <00:12:23.550>this <00:12:23.689>pipe, <00:12:23.829>uh, <00:12:23.970>function <00:12:24.110>of <00:12:24.250>R <00:12:24.390>X <00:12:24.530>J <00:12:24.670>S,

174
00:12:27.740 --> 00:12:32.400
<00:12:27.740>we <00:12:27.840>could <00:12:27.940>do <00:12:28.040>that. <00:12:28.140>We <00:12:28.240>couldn't <00:12:28.340>do <00:12:28.440>the <00:12:28.540>same <00:12:28.640>thing <00:12:28.740>in <00:12:28.840>Rx <00:12:28.940>Java, <00:12:29.040>for <00:12:29.140>example,

175
00:12:32.400 --> 00:12:36.600
<00:12:32.400>because <00:12:32.574>we <00:12:32.750>couldn't <00:12:32.925>create <00:12:33.100>a <00:12:33.275>custom <00:12:33.449>function <00:12:33.625>accumulator <00:12:33.800>every,

176
00:12:36.980 --> 00:12:41.840
<00:12:36.980>and <00:12:37.107>then <00:12:37.234>pass <00:12:37.361>it <00:12:37.489>along, <00:12:37.616>uh, <00:12:37.743>to <00:12:37.870>this <00:12:37.998>pipeline. <00:12:38.125>This <00:12:38.252>was, <00:12:38.380>uh,

177
00:12:41.960 --> 00:12:46.720
<00:12:41.960>a <00:12:42.310>very, <00:12:42.660>uh, <00:12:43.010>very, <00:12:43.360>uh,

178
00:12:47.590 --> 00:12:51.840
<00:12:47.590>intelligent, <00:12:47.717>a <00:12:47.844>very, <00:12:47.971>very <00:12:48.099>smart, <00:12:48.226>uh, <00:12:48.353>a <00:12:48.480>p <00:12:48.608>i <00:12:48.735>design <00:12:48.862>to <00:12:48.990>allow,

179
00:12:52.620 --> 00:12:56.720
<00:12:52.620>uh, <00:12:52.795>engineers <00:12:52.970>and <00:12:53.145>programmers <00:12:53.320>to <00:12:53.495>introduce <00:12:53.670>their <00:12:53.845>own, <00:12:54.020>uh,

180
00:12:57.840 --> 00:13:00.120
<00:12:57.840>operator <00:12:58.015>functions <00:12:58.190>and <00:12:58.365>then <00:12:58.540>use <00:12:58.715>them <00:12:58.890>into <00:12:59.065>the <00:12:59.240>pipeline

181
00:13:01.730 --> 00:13:05.880
<00:13:01.730>in <00:13:01.963>turn <00:13:02.196>that <00:13:02.430>had, <00:13:02.663>uh, <00:13:02.896>another, <00:13:03.130>uh,

182
00:13:06.270 --> 00:13:10.530
<00:13:06.270>side <00:13:06.736>effects. <00:13:07.203>So, <00:13:07.670>uh,

183
00:13:11.070 --> 00:13:14.370
<00:13:11.070>in <00:13:11.186>Angular, <00:13:11.303>for <00:13:11.420>example, <00:13:11.536>we <00:13:11.653>have <00:13:11.770>a <00:13:11.886>lot <00:13:12.003>of <00:13:12.120>states, <00:13:12.236>because <00:13:12.353>we <00:13:12.470>have

184
00:13:16.130 --> 00:13:20.110
<00:13:16.130>the, <00:13:16.305>this <00:13:16.480>webpage <00:13:16.655>that <00:13:16.830>is <00:13:17.005>on <00:13:17.180>a <00:13:17.355>web <00:13:17.530>browser,

185
00:13:20.370 --> 00:13:22.710
<00:13:20.370>and <00:13:20.603>we <00:13:20.836>have <00:13:21.070>a <00:13:21.303>lot <00:13:21.536>of, <00:13:21.770>uh,

186
00:13:23.670 --> 00:13:28.510
<00:13:23.670>variables <00:13:23.797>that <00:13:23.924>stores <00:13:24.051>the <00:13:24.179>stage <00:13:24.306>of <00:13:24.433>these <00:13:24.560>things <00:13:24.688>that <00:13:24.815>are <00:13:24.942>happening <00:13:25.069>on

187
00:13:28.570 --> 00:13:30.270
<00:13:28.570>the <00:13:28.850>screen. <00:13:29.130>We <00:13:29.410>have, <00:13:29.690>for <00:13:29.970>example,

188
00:13:30.730 --> 00:13:35.310
<00:13:30.730>the <00:13:30.930>variables <00:13:31.130>that <00:13:31.330>is <00:13:31.530>store <00:13:31.730>the <00:13:31.930>values <00:13:32.130>of,

189
00:13:35.850 --> 00:13:40.230
<00:13:35.850>uh, <00:13:36.025>different <00:13:36.200>parts <00:13:36.375>of <00:13:36.550>the <00:13:36.725>ui, <00:13:36.900>the, <00:13:37.075>the <00:13:37.250>forms,

190
00:13:40.690 --> 00:13:45.630
<00:13:40.690>uh, <00:13:40.830>field <00:13:40.970>and <00:13:41.110>stuff <00:13:41.250>like <00:13:41.390>that <00:13:41.530>in <00:13:41.670>backend <00:13:41.810>engineer <00:13:41.950>backend <00:13:42.090>code.

191
00:13:46.140 --> 00:13:47.750
<00:13:46.140>It's <00:13:46.420>usually <00:13:46.699>not <00:13:46.980>the <00:13:47.260>case. <00:13:47.540>We,

192
00:13:48.250 --> 00:13:52.730
<00:13:48.250>our <00:13:48.390>backend <00:13:48.530>code <00:13:48.670>didn't <00:13:48.810>have <00:13:48.950>any <00:13:49.090>states <00:13:49.230>at <00:13:49.370>all <00:13:49.510>because, <00:13:49.650>yeah,

193
00:13:52.790 --> 00:13:56.290
<00:13:52.790>so <00:13:53.069>we, <00:13:53.349>we <00:13:53.630>deploy <00:13:53.910>usually, <00:13:54.189>uh,

194
00:13:57.560 --> 00:13:59.540
<00:13:57.560>in <00:13:58.026>docker <00:13:58.493>containers, <00:13:58.959>uh,

195
00:13:59.640 --> 00:14:03.630
<00:13:59.640>and <00:13:59.780>we <00:13:59.920>want <00:14:00.060>to <00:14:00.199>be <00:14:00.340>able <00:14:00.480>to <00:14:00.620>kill <00:14:00.760>these <00:14:00.900>containers, <00:14:01.040>uh,

196
00:14:03.890 --> 00:14:07.550
<00:14:03.890>at <00:14:04.017>V <00:14:04.144>because, <00:14:04.271>uh, <00:14:04.399>that <00:14:04.526>makes <00:14:04.653>the <00:14:04.780>whole <00:14:04.908>thing <00:14:05.035>a <00:14:05.162>lot <00:14:05.290>easier.

197
00:14:07.610 --> 00:14:11.070
<00:14:07.610>So <00:14:07.765>we <00:14:07.921>didn't <00:14:08.076>have <00:14:08.232>really <00:14:08.387>almost <00:14:08.543>any <00:14:08.698>estates <00:14:08.854>at <00:14:09.010>all.

198
00:14:11.130 --> 00:14:13.030
<00:14:11.130>So <00:14:11.596>because <00:14:12.063>of <00:14:12.530>that,

199
00:14:13.250 --> 00:14:17.750
<00:14:13.250>it <00:14:13.390>made <00:14:13.530>this <00:14:13.670>whole <00:14:13.810>paradigm <00:14:13.950>a <00:14:14.090>bit <00:14:14.230>harder <00:14:14.370>because <00:14:14.510>through <00:14:14.650>these

200
00:14:17.990 --> 00:14:22.250
<00:14:17.990>pipelines, <00:14:18.145>I <00:14:18.301>had <00:14:18.456>to, <00:14:18.612>we <00:14:18.767>had <00:14:18.923>to <00:14:19.078>store <00:14:19.234>previous <00:14:19.390>the,

201
00:14:22.250 --> 00:14:24.730
<00:14:22.250>the <00:14:22.450>results <00:14:22.650>of <00:14:22.850>the <00:14:23.050>previous <00:14:23.250>steps. <00:14:23.450>And, <00:14:23.650>uh,

202
00:14:25.860 --> 00:14:27.710
<00:14:25.860>that <00:14:26.035>was <00:14:26.210>another <00:14:26.385>thing <00:14:26.560>we <00:14:26.735>had <00:14:26.910>to <00:14:27.085>deal <00:14:27.260>with.

203
00:14:28.410 --> 00:14:33.170
<00:14:28.410>So <00:14:28.584>I <00:14:28.760>finally <00:14:28.935>wrote <00:14:29.110>it, <00:14:29.285>blog <00:14:29.459>posts <00:14:29.635>on <00:14:29.810>Medium,

204
00:14:34.330 --> 00:14:39.110
<00:14:34.330>how <00:14:34.470>to <00:14:34.610>keep <00:14:34.750>original <00:14:34.890>value <00:14:35.030>when <00:14:35.170>transforming <00:14:35.310>exchange. <00:14:35.450>So <00:14:35.590>this <00:14:35.730>is

205
00:14:40.700 --> 00:14:45.190
<00:14:40.700>the <00:14:40.980>deep <00:14:41.260>problem. <00:14:41.540>Uh, <00:14:41.820>we <00:14:42.100>have

206
00:14:47.250 --> 00:14:50.990
<00:14:47.250>all <00:14:47.350>the <00:14:47.450>users, <00:14:47.550>we, <00:14:47.650>we <00:14:47.750>get <00:14:47.850>all <00:14:47.950>this <00:14:48.050>user <00:14:48.150>from <00:14:48.250>the <00:14:48.350>repository, <00:14:48.450>and <00:14:48.550>then <00:14:48.650>we,

207
00:14:51.120 --> 00:14:54.240
<00:14:51.120>we <00:14:51.275>want <00:14:51.431>to <00:14:51.586>get <00:14:51.742>posts <00:14:51.897>for <00:14:52.053>each <00:14:52.208>of <00:14:52.364>these <00:14:52.520>users.

208
00:14:54.460 --> 00:14:58.960
<00:14:54.460>But <00:14:54.553>then <00:14:54.646>when <00:14:54.740>we <00:14:54.833>do <00:14:54.926>a <00:14:55.020>flat <00:14:55.113>map <00:14:55.206>here, <00:14:55.300>then <00:14:55.393>we <00:14:55.486>lose <00:14:55.580>access <00:14:55.673>to <00:14:55.766>these <00:14:55.860>users.

209
00:15:00.060 --> 00:15:03.360
<00:15:00.060>And <00:15:00.293>to <00:15:00.526>solve <00:15:00.760>that, <00:15:00.993>we <00:15:01.226>started <00:15:01.459>introducing

210
00:15:05.270 --> 00:15:08.930
<00:15:05.270>things <00:15:05.503>using <00:15:05.736>taps, <00:15:05.970>uh, <00:15:06.203>in, <00:15:06.436>in <00:15:06.670>TypeScript.

211
00:15:09.390 --> 00:15:13.290
<00:15:09.390>So <00:15:09.670>JavaScript <00:15:09.949>doesn't <00:15:10.230>have <00:15:10.510>taps, <00:15:10.790>uh,

212
00:15:13.800 --> 00:15:18.410
<00:15:13.800>like <00:15:13.955>Python <00:15:14.111>does, <00:15:14.266>or <00:15:14.422>like <00:15:14.577>Sala, <00:15:14.733>for <00:15:14.888>example. <00:15:15.044>But, <00:15:15.199>uh,

213
00:15:18.880 --> 00:15:23.560
<00:15:18.880>because <00:15:19.055>in <00:15:19.230>TypeScript <00:15:19.405>you <00:15:19.580>can <00:15:19.755>have <00:15:19.930>a <00:15:20.105>specific <00:15:20.280>types

214
00:15:24.420 --> 00:15:25.080
<00:15:24.420>on <00:15:25.014>Aries,

215
00:15:25.080 --> 00:15:29.920
<00:15:25.080>you <00:15:25.187>can <00:15:25.295>have <00:15:25.403>a <00:15:25.510>type <00:15:25.618>that <00:15:25.726>enforces <00:15:25.833>you <00:15:25.941>to <00:15:26.049>have <00:15:26.156>an <00:15:26.264>array <00:15:26.372>bit <00:15:26.480>exactly

216
00:15:30.300 --> 00:15:35.260
<00:15:30.300>two <00:15:30.455>members <00:15:30.611>and <00:15:30.766>exactly <00:15:30.922>this <00:15:31.077>type <00:15:31.233>for <00:15:31.388>the <00:15:31.544>first <00:15:31.699>member

217
00:15:35.280 --> 00:15:36.500
<00:15:35.280>and <00:15:35.463>this <00:15:35.646>type <00:15:35.829>for <00:15:36.012>the <00:15:36.194>second <00:15:36.378>member.

218
00:15:36.560 --> 00:15:40.620
<00:15:36.560>So <00:15:36.715>you <00:15:36.871>can <00:15:37.026>really <00:15:37.182>introduce <00:15:37.337>couples <00:15:37.493>using <00:15:37.648>Aries, <00:15:37.804>uh, <00:15:37.959>in,

219
00:15:40.680 --> 00:15:44.910
<00:15:40.680>in <00:15:40.913>TypeScript. <00:15:41.146>And <00:15:41.380>we <00:15:41.613>leverage <00:15:41.846>this, <00:15:42.079>uh,

220
00:15:47.130 --> 00:15:50.020
<00:15:47.130>attribute <00:15:47.410>of <00:15:47.689>TypeScript <00:15:47.970>together <00:15:48.250>with, <00:15:48.530>uh,

221
00:15:50.750 --> 00:15:55.580
<00:15:50.750>JavaScript <00:15:50.866>and <00:15:50.983>R <00:15:51.100>j <00:15:51.216>s <00:15:51.333>to <00:15:51.450>create <00:15:51.566>couples <00:15:51.683>and <00:15:51.800>create <00:15:51.916>operators <00:15:52.033>that <00:15:52.150>deal

222
00:15:55.850 --> 00:16:00.270
<00:15:55.850>with <00:15:56.130>couples <00:15:56.410>to <00:15:56.690>basically <00:15:56.970>keep <00:15:57.250>the

223
00:16:01.390 --> 00:16:03.930
<00:16:01.390>values, <00:16:01.740>uh, <00:16:02.090>in <00:16:02.439>the <00:16:02.790>pipeline.

224
00:16:03.990 --> 00:16:08.010
<00:16:03.990>So <00:16:04.165>this <00:16:04.340>is <00:16:04.515>one <00:16:04.690>operator <00:16:04.865>that's <00:16:05.040>that <00:16:05.215>we <00:16:05.390>created.

225
00:16:09.170 --> 00:16:11.900
<00:16:09.170>It's <00:16:09.449>called <00:16:09.729>Flat <00:16:10.010>Zap. <00:16:10.290>So <00:16:10.569>basically

226
00:16:13.600 --> 00:16:15.930
<00:16:13.600>when <00:16:13.833>you <00:16:14.066>transform <00:16:14.300>user <00:16:14.533>to <00:16:14.766>something <00:16:15.000>else,

227
00:16:16.430 --> 00:16:21.050
<00:16:16.430>it <00:16:16.604>keeps <00:16:16.780>the <00:16:16.954>value <00:16:17.130>and <00:16:17.305>basically <00:16:17.479>zips <00:16:17.655>the <00:16:17.829>results

228
00:16:21.240 --> 00:16:25.290
<00:16:21.240>into <00:16:21.367>the <00:16:21.494>input <00:16:21.621>in <00:16:21.749>the <00:16:21.876>next <00:16:22.003>stage. <00:16:22.130>So <00:16:22.258>in <00:16:22.385>the <00:16:22.512>next <00:16:22.640>stage,

229
00:16:25.290 --> 00:16:29.320
<00:16:25.290>you <00:16:25.464>can <00:16:25.640>see <00:16:25.814>that <00:16:25.990>we <00:16:26.165>have <00:16:26.339>user <00:16:26.515>and <00:16:26.689>post,

230
00:16:29.380 --> 00:16:33.920
<00:16:29.380>and <00:16:29.480>then <00:16:29.580>you <00:16:29.680>can <00:16:29.780>do <00:16:29.880>something <00:16:29.980>with <00:16:30.080>both <00:16:30.180>because <00:16:30.280>you <00:16:30.380>haven't <00:16:30.480>lost <00:16:30.580>your <00:16:30.680>access <00:16:30.780>to

231
00:16:33.920 --> 00:16:38.880
<00:16:33.920>it. <00:16:34.027>I <00:16:34.135>have <00:16:34.243>also <00:16:34.350>created <00:16:34.458>this <00:16:34.566>very <00:16:34.673>nice <00:16:34.781>marble <00:16:34.889>diagram <00:16:34.996>for <00:16:35.104>flat <00:16:35.212>zip <00:16:35.319>map.

232
00:16:39.500 --> 00:16:43.490
<00:16:39.500>So <00:16:39.655>if <00:16:39.811>you <00:16:39.966>are <00:16:40.122>familiar <00:16:40.277>with, <00:16:40.433>uh, <00:16:40.588>rx, <00:16:40.744>uh, <00:16:40.900>and,

233
00:16:43.510 --> 00:16:44.530
<00:16:43.510>and <00:16:43.816>maybe <00:16:44.122>it <00:16:44.428>makes,

234
00:16:45.670 --> 00:16:49.760
<00:16:45.670>it <00:16:45.844>might <00:16:46.020>help <00:16:46.194>you <00:16:46.370>understand <00:16:46.545>what <00:16:46.719>this <00:16:46.895>operator <00:16:47.069>does.

235
00:16:50.230 --> 00:16:51.240
<00:16:50.230>Basically <00:16:51.139>it

236
00:16:52.940 --> 00:16:56.550
<00:16:52.940>when <00:16:53.115>you <00:16:53.290>flood <00:16:53.465>map <00:16:53.640>two <00:16:53.815>things <00:16:53.990>together, <00:16:54.165>it <00:16:54.340>basically

237
00:16:58.070 --> 00:17:01.730
<00:16:58.070>is <00:16:58.210>a <00:16:58.350>Cartesian <00:16:58.490>product <00:16:58.630>of <00:16:58.770>the <00:16:58.910>values, <00:16:59.050>uh, <00:16:59.190>in <00:16:59.330>the, <00:16:59.470>and

238
00:17:04.090 --> 00:17:08.950
<00:17:04.089>so <00:17:04.217>we <00:17:04.344>introduce <00:17:04.471>a <00:17:04.599>lot <00:17:04.726>of <00:17:04.853>these <00:17:04.980>operators <00:17:05.108>like <00:17:05.235>flat <00:17:05.362>zip <00:17:05.490>map,

239
00:17:09.930 --> 00:17:13.180
<00:17:09.930>and <00:17:10.280>because <00:17:10.630>I <00:17:10.980>thought, <00:17:11.330>okay,

240
00:17:13.180 --> 00:17:15.620
<00:17:13.180>they <00:17:13.530>are <00:17:13.880>useful <00:17:14.230>for <00:17:14.580>me,

241
00:17:15.810 --> 00:17:18.540
<00:17:15.810>they <00:17:15.984>might <00:17:16.159>be <00:17:16.335>useful <00:17:16.510>for <00:17:16.685>other <00:17:16.859>people <00:17:17.034>as <00:17:17.210>well.

242
00:17:19.420 --> 00:17:23.660
<00:17:19.420>I <00:17:19.547>started <00:17:19.674>collecting <00:17:19.801>them <00:17:19.929>into <00:17:20.056>a <00:17:20.183>an <00:17:20.310>M <00:17:20.438>P <00:17:20.565>M <00:17:20.692>package <00:17:20.820>and

243
00:17:24.920 --> 00:17:28.570
<00:17:24.920>published <00:17:25.075>it <00:17:25.231>online <00:17:25.386>and, <00:17:25.542>and <00:17:25.697>called <00:17:25.853>it <00:17:26.008>RX <00:17:26.164>JS <00:17:26.320>X,

244
00:17:28.660 --> 00:17:31.330
<00:17:28.660>which <00:17:28.940>is <00:17:29.220>extensions <00:17:29.500>for <00:17:29.780>RX <00:17:30.060>js,

245
00:17:32.100 --> 00:17:36.290
<00:17:32.100>which <00:17:32.240>is <00:17:32.379>also <00:17:32.520>funny <00:17:32.659>because <00:17:32.800>RX <00:17:32.939>js <00:17:33.080>itself <00:17:33.219>is <00:17:33.360>extensions <00:17:33.500>for

246
00:17:37.350 --> 00:17:41.610
<00:17:37.350>js. <00:17:37.524>Anyways, <00:17:37.699>uh, <00:17:37.875>I <00:17:38.050>wrote <00:17:38.225>this <00:17:38.399>blog <00:17:38.574>post, <00:17:38.750>uh,

247
00:17:41.970 --> 00:17:43.690
<00:17:41.970>I <00:17:42.250>think <00:17:42.530>three <00:17:42.810>years <00:17:43.090>ago <00:17:43.370>already,

248
00:17:45.340 --> 00:17:48.060
<00:17:45.340>13 <00:17:45.480>handy <00:17:45.620>aerospace <00:17:45.760>operators. <00:17:45.899>You <00:17:46.040>can <00:17:46.179>take <00:17:46.320>a <00:17:46.459>look <00:17:46.600>into <00:17:46.740>it.

249
00:17:50.280 --> 00:17:54.980
<00:17:50.280>And <00:17:50.435>there, <00:17:50.591>uh, <00:17:50.746>I <00:17:50.902>introduced <00:17:51.057>things <00:17:51.213>like <00:17:51.368>zip <00:17:51.524>map, <00:17:51.680>map,

250
00:17:54.980 --> 00:17:58.820
<00:17:54.980>former, <00:17:55.155>uh, <00:17:55.330>project <00:17:55.505>to <00:17:55.680>list <00:17:55.855>map, <00:17:56.030>stuff <00:17:56.205>like <00:17:56.380>that.

251
00:17:59.480 --> 00:18:02.960
<00:17:59.480>So <00:17:59.680>how <00:17:59.880>does <00:18:00.080>this <00:18:00.280>whole <00:18:00.480>thing <00:18:00.680>work? <00:18:00.880>So

252
00:18:05.050 --> 00:18:07.760
<00:18:05.050>creating, <00:18:05.516>uh, <00:18:05.983>so <00:18:06.450>we,

253
00:18:07.780 --> 00:18:11.920
<00:18:07.780>we <00:18:07.955>now <00:18:08.129>saw <00:18:08.305>how <00:18:08.480>it <00:18:08.655>might <00:18:08.830>help <00:18:09.004>people <00:18:09.180>to

254
00:18:13.210 --> 00:18:17.480
<00:18:13.210>write <00:18:13.350>better <00:18:13.490>code, <00:18:13.630>but <00:18:13.770>how <00:18:13.910>did <00:18:14.050>we <00:18:14.190>actually <00:18:14.330>write <00:18:14.470>these <00:18:14.610>operators?

255
00:18:17.510 --> 00:18:22.340
<00:18:17.510>This <00:18:17.685>is <00:18:17.860>maybe <00:18:18.035>best <00:18:18.210>shown <00:18:18.385>by <00:18:18.560>a <00:18:18.735>few <00:18:18.910>examples.

256
00:18:22.360 --> 00:18:25.120
<00:18:22.360>So <00:18:22.593>this <00:18:22.826>is <00:18:23.060>list <00:18:23.293>map, <00:18:23.526>which <00:18:23.760>basically

257
00:18:27.160 --> 00:18:32.120
<00:18:27.160>does <00:18:27.315>a <00:18:27.471>map <00:18:27.626>on <00:18:27.782>all <00:18:27.937>the <00:18:28.093>members <00:18:28.248>of <00:18:28.404>a <00:18:28.560>list.

258
00:18:32.180 --> 00:18:36.960
<00:18:32.180>So, <00:18:32.320>uh, <00:18:32.460>in <00:18:32.600>JavaScript <00:18:32.740>you <00:18:32.880>have <00:18:33.020>it <00:18:33.160>map <00:18:33.300>for <00:18:33.440>the <00:18:33.580>areas,

259
00:18:38.740 --> 00:18:43.490
<00:18:38.740>but <00:18:38.880>we <00:18:39.020>created <00:18:39.160>list <00:18:39.300>map <00:18:39.440>so <00:18:39.580>that <00:18:39.720>you <00:18:39.860>can <00:18:40.000>actually <00:18:40.140>do

260
00:18:43.520 --> 00:18:46.710
<00:18:43.520>both <00:18:43.720>in <00:18:43.920>one <00:18:44.120>goal. <00:18:44.320>So <00:18:44.520>you <00:18:44.720>have, <00:18:44.920>uh,

261
00:18:49.860 --> 00:18:50.693
<00:18:49.860>and, <00:18:50.609>uh,

262
00:18:51.290 --> 00:18:55.430
<00:18:51.290>observable <00:18:51.523>that <00:18:51.756>has <00:18:51.990>lists <00:18:52.223>areas <00:18:52.456>as <00:18:52.690>members,

263
00:18:55.970 --> 00:19:00.260
<00:18:55.970>and <00:18:56.125>you <00:18:56.281>want <00:18:56.436>to <00:18:56.592>apply <00:18:56.747>something <00:18:56.903>on <00:18:57.058>the <00:18:57.214>values, <00:18:57.370>uh,

264
00:19:00.440 --> 00:19:04.860
<00:19:00.440>on <00:19:00.540>the <00:19:00.640>members <00:19:00.740>of <00:19:00.840>each <00:19:00.940>of <00:19:01.040>these <00:19:01.140>lists. <00:19:01.240>So <00:19:01.340>as <00:19:01.440>you <00:19:01.540>can <00:19:01.640>see <00:19:01.740>in <00:19:01.840>the

265
00:19:06.630 --> 00:19:09.060
<00:19:06.630>upper, <00:19:06.910>uh, <00:19:07.190>part <00:19:07.470>of <00:19:07.750>this <00:19:08.030>diagram,

266
00:19:09.280 --> 00:19:13.230
<00:19:09.280>you <00:19:09.480>have <00:19:09.680>lists <00:19:09.879>of <00:19:10.080>values <00:19:10.280>as <00:19:10.480>input <00:19:10.680>values,

267
00:19:13.770 --> 00:19:17.430
<00:19:13.770>and <00:19:13.897>then <00:19:14.024>you <00:19:14.151>do <00:19:14.279>something <00:19:14.406>and <00:19:14.533>it <00:19:14.660>goes <00:19:14.788>to <00:19:14.915>each <00:19:15.042>of <00:19:15.170>these

268
00:19:18.380 --> 00:19:22.870
<00:19:18.380>members, <00:19:18.613>uh, <00:19:18.846>I <00:19:19.080>members <00:19:19.313>and <00:19:19.546>transforms <00:19:19.780>those.

269
00:19:23.730 --> 00:19:26.570
<00:19:23.730>And <00:19:23.870>this <00:19:24.010>is <00:19:24.150>how <00:19:24.290>it <00:19:24.430>looks <00:19:24.570>like, <00:19:24.710>uh, <00:19:24.850>first <00:19:24.990>of <00:19:25.130>all,

270
00:19:26.570 --> 00:19:30.690
<00:19:26.570>if <00:19:26.697>you <00:19:26.824>want <00:19:26.951>to <00:19:27.079>create <00:19:27.206>a <00:19:27.333>operator <00:19:27.460>for <00:19:27.588>R <00:19:27.715>X <00:19:27.842>J <00:19:27.970>S,

271
00:19:31.830 --> 00:19:33.530
<00:19:31.830>you <00:19:32.179>need <00:19:32.530>this <00:19:32.879>project, <00:19:33.230>uh,

272
00:19:34.130 --> 00:19:39.090
<00:19:34.130>function <00:19:34.237>as <00:19:34.345>an <00:19:34.453>input <00:19:34.560>function <00:19:34.668>that <00:19:34.776>gets <00:19:34.883>T <00:19:34.991>and <00:19:35.099>returns <00:19:35.206>R <00:19:35.314>and <00:19:35.422>this <00:19:35.530>list

273
00:19:39.150 --> 00:19:44.130
<00:19:39.150>map <00:19:39.250>gets, <00:19:39.350>uh, <00:19:39.450>it's, <00:19:39.550>it's <00:19:39.650>a <00:19:39.750>generic, <00:19:39.850>uh, <00:19:39.950>definition. <00:19:40.050>It <00:19:40.150>gets <00:19:40.250>T <00:19:40.350>and <00:19:40.450>r, <00:19:40.550>uh,

274
00:19:44.630 --> 00:19:48.930
<00:19:44.630>so <00:19:44.757>that <00:19:44.884>you <00:19:45.011>can <00:19:45.139>have <00:19:45.266>control <00:19:45.393>over, <00:19:45.520>uh, <00:19:45.648>different <00:19:45.775>types <00:19:45.902>of <00:19:46.030>input.

275
00:19:49.710 --> 00:19:50.543
<00:19:49.710>And <00:19:50.084>then <00:19:50.459>the

276
00:19:53.840 --> 00:19:58.480
<00:19:53.840>function <00:19:53.980>returns <00:19:54.120>operator <00:19:54.260>function <00:19:54.399>area <00:19:54.540>of <00:19:54.679>T <00:19:54.820>to <00:19:54.959>area <00:19:55.100>of <00:19:55.240>R.

277
00:19:58.580 --> 00:20:01.260
<00:19:58.580>So <00:19:59.046>basically <00:19:59.513>you <00:19:59.980>have

278
00:20:03.330 --> 00:20:07.860
<00:20:03.330>a <00:20:03.470>list <00:20:03.610>of <00:20:03.750>numbers, <00:20:03.889>for <00:20:04.030>example, <00:20:04.169>and <00:20:04.310>you <00:20:04.449>want <00:20:04.590>to, <00:20:04.730>uh,

279
00:20:08.090 --> 00:20:11.700
<00:20:08.090>turn <00:20:08.290>them <00:20:08.490>into <00:20:08.689>a <00:20:08.889>list <00:20:09.090>of, <00:20:09.290>uh, <00:20:09.490>strings.

280
00:20:12.240 --> 00:20:16.940
<00:20:12.240>So <00:20:12.327>the <00:20:12.415>thing <00:20:12.502>you <00:20:12.590>have <00:20:12.677>to <00:20:12.765>do <00:20:12.852>is <00:20:12.940>to <00:20:13.027>write <00:20:13.115>a <00:20:13.202>function <00:20:13.290>here <00:20:13.377>that <00:20:13.465>turns <00:20:13.552>number <00:20:13.640>into

281
00:20:16.940 --> 00:20:20.100
<00:20:16.940>string, <00:20:17.173>and <00:20:17.406>the <00:20:17.640>implementation <00:20:17.873>here <00:20:18.106>is <00:20:18.340>easy.

282
00:20:20.480 --> 00:20:24.460
<00:20:20.480>You <00:20:20.713>have <00:20:20.946>a <00:20:21.180>map, <00:20:21.413>and <00:20:21.646>then <00:20:21.880>it,

283
00:20:24.640 --> 00:20:27.100
<00:20:24.640>the <00:20:24.780>elements <00:20:24.920>are <00:20:25.060>list, <00:20:25.200>and <00:20:25.340>then <00:20:25.480>you <00:20:25.620>do <00:20:25.760>a <00:20:25.900>list <00:20:26.040>map,

284
00:20:27.160 --> 00:20:31.760
<00:20:27.160>and <00:20:27.276>then <00:20:27.393>you <00:20:27.510>apply <00:20:27.626>this <00:20:27.743>project <00:20:27.860>function <00:20:27.976>that <00:20:28.093>you <00:20:28.210>got <00:20:28.326>from <00:20:28.443>the <00:20:28.560>input.

285
00:20:32.910 --> 00:20:33.840
<00:20:32.910>This <00:20:33.328>is, <00:20:33.746>uh,

286
00:20:35.740 --> 00:20:40.200
<00:20:35.740>the <00:20:35.895>first <00:20:36.051>and <00:20:36.206>easy <00:20:36.362>example <00:20:36.517>on <00:20:36.673>how <00:20:36.828>to <00:20:36.984>create, <00:20:37.140>uh,

287
00:20:40.500 --> 00:20:41.260
<00:20:40.500>an <00:20:41.184>operator.

288
00:20:41.260 --> 00:20:46.130
<00:20:41.260>The <00:20:41.415>most <00:20:41.571>important <00:20:41.726>part <00:20:41.882>is <00:20:42.037>that <00:20:42.193>the <00:20:42.348>output <00:20:42.504>type <00:20:42.660>is,

289
00:20:46.630 --> 00:20:51.160
<00:20:46.630>uh, <00:20:46.757>operator <00:20:46.884>function <00:20:47.011>and, <00:20:47.139>and <00:20:47.266>the <00:20:47.393>input <00:20:47.520>type <00:20:47.648>and <00:20:47.775>the <00:20:47.902>output <00:20:48.030>type.

290
00:20:52.560 --> 00:20:56.220
<00:20:52.560>So <00:20:52.735>it's <00:20:52.909>this <00:20:53.085>type <00:20:53.260>is <00:20:53.435>for <00:20:53.610>the <00:20:53.784>observable <00:20:53.960>type.

291
00:20:58.530 --> 00:21:02.330
<00:20:58.530>We <00:20:58.730>also <00:20:58.930>had <00:20:59.129>zip <00:20:59.330>map <00:20:59.530>that <00:20:59.730>would <00:20:59.930>basically

292
00:21:04.110 --> 00:21:06.170
<00:21:04.110>get <00:21:04.343>the <00:21:04.576>result <00:21:04.810>of <00:21:05.043>the <00:21:05.276>function <00:21:05.510>and,

293
00:21:06.270 --> 00:21:10.730
<00:21:06.270>and <00:21:06.425>put <00:21:06.581>it <00:21:06.736>side <00:21:06.892>by <00:21:07.047>side <00:21:07.203>the <00:21:07.358>input, <00:21:07.514>so <00:21:07.670>that,

294
00:21:10.960 --> 00:21:14.930
<00:21:10.960>that <00:21:11.115>we <00:21:11.271>have <00:21:11.426>both <00:21:11.582>of <00:21:11.737>them. <00:21:11.893>In <00:21:12.048>the <00:21:12.204>result, <00:21:12.360>we'll,

295
00:21:14.930 --> 00:21:17.250
<00:21:14.930>we <00:21:15.163>again <00:21:15.396>have <00:21:15.630>t <00:21:15.863>n <00:21:16.096>r, <00:21:16.330>uh,

296
00:21:17.550 --> 00:21:22.270
<00:21:17.550>the <00:21:17.690>project <00:21:17.830>gets <00:21:17.970>T <00:21:18.110>and <00:21:18.250>returns <00:21:18.389>R <00:21:18.530>but <00:21:18.669>the <00:21:18.810>operator <00:21:18.950>function

297
00:21:22.540 --> 00:21:25.590
<00:21:22.540>here <00:21:22.773>have <00:21:23.006>t <00:21:23.240>as <00:21:23.473>the <00:21:23.706>input <00:21:23.940>type,

298
00:21:26.130 --> 00:21:30.410
<00:21:26.130>but <00:21:26.257>the <00:21:26.384>topple <00:21:26.511>of <00:21:26.639>T <00:21:26.766>n <00:21:26.893>R <00:21:27.020>as <00:21:27.148>the <00:21:27.275>output <00:21:27.402>type <00:21:27.530>type,

299
00:21:30.640 --> 00:21:34.090
<00:21:30.640>because <00:21:30.795>we <00:21:30.951>are <00:21:31.106>zipping <00:21:31.262>basically <00:21:31.417>the <00:21:31.573>output <00:21:31.728>into <00:21:31.884>the <00:21:32.040>input.

300
00:21:34.630 --> 00:21:38.010
<00:21:34.630>And <00:21:34.785>this <00:21:34.941>is <00:21:35.096>how <00:21:35.252>it <00:21:35.407>looks <00:21:35.563>like <00:21:35.718>the <00:21:35.874>implementation. <00:21:36.030>You,

301
00:21:38.030 --> 00:21:42.010
<00:21:38.030>you <00:21:38.170>have <00:21:38.310>a <00:21:38.450>map <00:21:38.590>and <00:21:38.730>then <00:21:38.870>you <00:21:39.010>put <00:21:39.149>value <00:21:39.290>alongside <00:21:39.430>project.

302
00:21:43.470 --> 00:21:48.090
<00:21:43.470>Uh, <00:21:43.610>this <00:21:43.750>only <00:21:43.890>works <00:21:44.030>if <00:21:44.170>this <00:21:44.310>function <00:21:44.450>doesn't <00:21:44.590>return <00:21:44.730>un <00:21:44.870>observable.

303
00:21:48.310 --> 00:21:53.090
<00:21:48.310>It <00:21:48.465>is <00:21:48.621>like <00:21:48.776>the <00:21:48.932>function <00:21:49.087>is <00:21:49.243>a <00:21:49.398>regular, <00:21:49.554>uh, <00:21:49.710>function.

304
00:21:55.480 --> 00:21:57.140
<00:21:55.480>And <00:21:55.760>then <00:21:56.040>we <00:21:56.320>have <00:21:56.600>flag <00:21:56.880>map,

305
00:21:57.270 --> 00:22:02.200
<00:21:57.270>which <00:21:57.410>is <00:21:57.550>for <00:21:57.690>the <00:21:57.830>cases <00:21:57.970>that <00:21:58.110>your <00:21:58.250>function <00:21:58.389>returns <00:21:58.530>un <00:21:58.670>observable,

306
00:22:02.270 --> 00:22:07.120
<00:22:02.270>it's <00:22:02.377>going <00:22:02.485>to <00:22:02.593>be <00:22:02.700>a <00:22:02.808>bit <00:22:02.916>more <00:22:03.023>complicated <00:22:03.131>because <00:22:03.239>we <00:22:03.346>have <00:22:03.454>to <00:22:03.562>deal <00:22:03.670>with

307
00:22:07.980 --> 00:22:09.190
<00:22:07.980>more <00:22:08.524>advanced <00:22:09.069>typing.

308
00:22:10.330 --> 00:22:15.270
<00:22:10.330>But <00:22:10.446>basically <00:22:10.563>we <00:22:10.679>have <00:22:10.796>a <00:22:10.913>project <00:22:11.030>function <00:22:11.146>that <00:22:11.263>gets <00:22:11.379>a <00:22:11.496>t <00:22:11.613>and <00:22:11.730>returns

309
00:22:15.290 --> 00:22:17.590
<00:22:15.290>an <00:22:15.570>O <00:22:15.850>for <00:22:16.129>the <00:22:16.409>verbal <00:22:16.690>type.

310
00:22:18.090 --> 00:22:21.470
<00:22:18.090>And <00:22:18.323>this <00:22:18.556>o <00:22:18.790>type <00:22:19.023>extends <00:22:19.256>observable <00:22:19.490>input.

311
00:22:22.960 --> 00:22:26.030
<00:22:22.960>We'll <00:22:23.100>get <00:22:23.240>to <00:22:23.380>this <00:22:23.520>also <00:22:23.660>in <00:22:23.800>the <00:22:23.940>next <00:22:24.080>example <00:22:24.220>as <00:22:24.360>well.

312
00:22:26.810 --> 00:22:30.340
<00:22:26.810>But <00:22:27.159>then <00:22:27.510>the <00:22:27.860>output <00:22:28.210>is

313
00:22:31.990 --> 00:22:36.350
<00:22:31.990>t <00:22:32.190>again, <00:22:32.390>it's <00:22:32.590>here <00:22:32.790>because <00:22:32.990>it's <00:22:33.190>a <00:22:33.390>zip,

314
00:22:36.970 --> 00:22:40.970
<00:22:36.970>uh, <00:22:37.250>operator. <00:22:37.530>And <00:22:37.810>then <00:22:38.090>here <00:22:38.370>it,

315
00:22:40.970 --> 00:22:44.770
<00:22:40.970>because <00:22:41.125>we <00:22:41.281>are <00:22:41.436>doing <00:22:41.592>it <00:22:41.747>flat <00:22:41.903>map, <00:22:42.058>we <00:22:42.214>get <00:22:42.370>the,

316
00:22:45.590 --> 00:22:49.590
<00:22:45.590>so <00:22:45.730>if, <00:22:45.870>if, <00:22:46.010>for <00:22:46.149>example, <00:22:46.290>we <00:22:46.429>have <00:22:46.570>observable <00:22:46.709>of <00:22:46.850>a <00:22:46.990>string,

317
00:22:50.170 --> 00:22:54.470
<00:22:50.170>we <00:22:50.270>want <00:22:50.370>to <00:22:50.470>have <00:22:50.570>a <00:22:50.670>string <00:22:50.770>in <00:22:50.870>here <00:22:50.970>because <00:22:51.070>we <00:22:51.170>have <00:22:51.270>done <00:22:51.370>this <00:22:51.470>flatten, <00:22:51.570>uh,

318
00:22:55.470 --> 00:22:58.910
<00:22:55.470>operator <00:22:55.610>on <00:22:55.750>it, <00:22:55.890>and <00:22:56.030>then <00:22:56.170>it's <00:22:56.310>observed <00:22:56.450>value <00:22:56.590>of <00:22:56.730>o, <00:22:56.870>uh,

319
00:22:59.400 --> 00:23:03.870
<00:22:59.400>which <00:22:59.516>then <00:22:59.633>makes <00:22:59.750>it <00:22:59.866>the <00:22:59.983>type <00:23:00.100>itself, <00:23:00.216>not <00:23:00.333>the <00:23:00.450>observable <00:23:00.566>of <00:23:00.683>the <00:23:00.800>type.

320
00:23:04.370 --> 00:23:09.310
<00:23:04.370>And <00:23:04.497>then <00:23:04.624>the <00:23:04.751>implementation <00:23:04.879>is <00:23:05.006>a <00:23:05.133>bit <00:23:05.260>more <00:23:05.388>tricky <00:23:05.515>because <00:23:05.642>we <00:23:05.770>have

321
00:23:09.310 --> 00:23:10.310
<00:23:09.310>flat <00:23:09.610>map <00:23:09.909>in <00:23:10.210>front,

322
00:23:11.340 --> 00:23:15.940
<00:23:11.340>and <00:23:11.540>you <00:23:11.740>zip <00:23:11.939>the <00:23:12.139>value <00:23:12.340>first <00:23:12.540>turned <00:23:12.740>into

323
00:23:15.940 --> 00:23:18.300
<00:23:15.940>observable <00:23:16.095>because <00:23:16.251>we <00:23:16.406>want <00:23:16.562>to <00:23:16.717>do <00:23:16.873>it <00:23:17.028>zip <00:23:17.184>on <00:23:17.340>it.

324
00:23:18.640 --> 00:23:22.820
<00:23:18.640>And <00:23:18.795>then <00:23:18.951>the <00:23:19.106>project <00:23:19.262>of <00:23:19.417>value, <00:23:19.573>which <00:23:19.728>is <00:23:19.884>also <00:23:20.040>observable.

325
00:23:23.440 --> 00:23:28.160
<00:23:23.440>Uh, <00:23:23.720>in <00:23:24.000>this <00:23:24.280>example, <00:23:24.560>we <00:23:24.840>have

326
00:23:29.760 --> 00:23:33.920
<00:23:29.760>observed <00:23:29.900>value <00:23:30.040>of <00:23:30.180>and <00:23:30.320>observable <00:23:30.460>input. <00:23:30.600>So <00:23:30.740>if <00:23:30.879>you <00:23:31.020>have <00:23:31.160>to,

327
00:23:34.060 --> 00:23:38.840
<00:23:34.060>if <00:23:34.167>you <00:23:34.275>want <00:23:34.383>to <00:23:34.490>deal <00:23:34.598>with <00:23:34.706>types <00:23:34.813>that <00:23:34.921>return <00:23:35.029>observable <00:23:35.136>in, <00:23:35.244>in <00:23:35.352>their, <00:23:35.460>uh,

328
00:23:38.840 --> 00:23:43.200
<00:23:38.840>project <00:23:39.040>function, <00:23:39.240>uh, <00:23:39.439>then <00:23:39.639>this <00:23:39.840>is <00:23:40.040>how <00:23:40.240>to,

329
00:23:43.340 --> 00:23:44.173
<00:23:43.340>to <00:23:43.714>deal <00:23:44.089>with.

330
00:23:46.140 --> 00:23:50.410
<00:23:46.140>And <00:23:46.295>the <00:23:46.451>next <00:23:46.606>one <00:23:46.762>is <00:23:46.917>really <00:23:47.073>pure <00:23:47.228>madness, <00:23:47.384>but <00:23:47.540>I'm,

331
00:23:50.470 --> 00:23:55.060
<00:23:50.470>I'm <00:23:50.610>pulling <00:23:50.750>there <00:23:50.890>so <00:23:51.030>that, <00:23:51.170>uh, <00:23:51.310>you <00:23:51.450>know <00:23:51.590>how <00:23:51.730>typing <00:23:51.870>for,

332
00:23:55.080 --> 00:23:57.950
<00:23:55.080>for <00:23:55.360>more <00:23:55.639>complex <00:23:55.919>things <00:23:56.199>are <00:23:56.480>happening.

333
00:23:59.410 --> 00:24:02.660
<00:23:59.410>This <00:23:59.585>is <00:23:59.760>called <00:23:59.935>flat <00:24:00.110>list. <00:24:00.285>Flat <00:24:00.460>map. <00:24:00.635>Flat <00:24:00.810>map.

334
00:24:04.030 --> 00:24:08.800
<00:24:04.030>This <00:24:04.205>is <00:24:04.379>basically <00:24:04.555>if <00:24:04.730>you <00:24:04.905>have <00:24:05.080>an <00:24:05.254>observable <00:24:05.430>of

335
00:24:09.600 --> 00:24:13.080
<00:24:09.600>Aries <00:24:09.833>of <00:24:10.066>lists <00:24:10.300>and <00:24:10.533>you <00:24:10.766>want <00:24:11.000>to

336
00:24:14.730 --> 00:24:18.200
<00:24:14.730>apply <00:24:14.885>a <00:24:15.041>function <00:24:15.196>on <00:24:15.352>all <00:24:15.507>the <00:24:15.663>members <00:24:15.818>of <00:24:15.974>this <00:24:16.130>list,

337
00:24:18.780 --> 00:24:21.320
<00:24:18.780>but <00:24:19.129>this <00:24:19.480>function <00:24:19.830>returns <00:24:20.180>observable,

338
00:24:21.980 --> 00:24:25.480
<00:24:21.980>and <00:24:22.107>you <00:24:22.234>want <00:24:22.361>to <00:24:22.489>also <00:24:22.616>flatten <00:24:22.743>that <00:24:22.870>so <00:24:22.998>that <00:24:23.125>you <00:24:23.252>have <00:24:23.380>it,

339
00:24:26.180 --> 00:24:30.160
<00:24:26.180>at <00:24:26.320>least <00:24:26.460>at <00:24:26.600>the <00:24:26.740>end, <00:24:26.880>not <00:24:27.020>at <00:24:27.160>at <00:24:27.300>least <00:24:27.440>top <00:24:27.580>observable.

340
00:24:32.180 --> 00:24:34.760
<00:24:32.180>So <00:24:32.380>the <00:24:32.580>typing <00:24:32.780>is <00:24:32.980>a <00:24:33.180>bit <00:24:33.380>more <00:24:33.580>complicated.

341
00:24:35.420 --> 00:24:40.260
<00:24:35.420>You <00:24:35.547>have <00:24:35.674>T <00:24:35.801>and <00:24:35.929>r <00:24:36.056>and <00:24:36.183>o <00:24:36.310>and <00:24:36.438>O <00:24:36.565>extends <00:24:36.692>observable <00:24:36.820>input

342
00:24:40.280 --> 00:24:42.870
<00:24:40.280>of <00:24:40.746>A <00:24:41.213>of <00:24:41.680>R.

343
00:24:42.970 --> 00:24:46.770
<00:24:42.970>So <00:24:43.250>R <00:24:43.530>is <00:24:43.810>the <00:24:44.090>output, <00:24:44.370>uh,

344
00:24:47.190 --> 00:24:50.760
<00:24:47.190>of <00:24:47.540>this <00:24:47.890>function. <00:24:48.240>Your, <00:24:48.590>uh,

345
00:24:50.760 --> 00:24:54.920
<00:24:50.760>project <00:24:50.915>turns <00:24:51.071>T <00:24:51.226>into <00:24:51.382>o <00:24:51.537>and <00:24:51.693>O <00:24:51.848>is <00:24:52.004>observable <00:24:52.160>of,

346
00:24:56.400 --> 00:25:00.350
<00:24:56.400>uh, <00:24:56.680>area <00:24:56.960>of <00:24:57.240>R <00:24:57.520>basically. <00:24:57.800>And

347
00:25:05.030 --> 00:25:05.890
<00:25:05.030>the, <00:25:05.417>the <00:25:05.804>function,

348
00:25:06.350 --> 00:25:09.810
<00:25:06.350>the <00:25:06.449>operator <00:25:06.550>function <00:25:06.649>gets <00:25:06.750>set <00:25:06.850>an <00:25:06.949>area <00:25:07.050>of <00:25:07.149>t <00:25:07.250>and <00:25:07.350>returns <00:25:07.449>on <00:25:07.550>area <00:25:07.649>of <00:25:07.750>R.

349
00:25:10.910 --> 00:25:15.290
<00:25:10.910>And <00:25:11.050>the <00:25:11.190>implementation <00:25:11.330>is <00:25:11.470>not <00:25:11.610>really <00:25:11.750>important. <00:25:11.890>It's <00:25:12.030>too <00:25:12.170>complicated, <00:25:12.310>but,

350
00:25:16.280 --> 00:25:18.260
<00:25:16.280>uh, <00:25:16.980>two <00:25:17.680>things.

351
00:25:18.320 --> 00:25:21.920
<00:25:18.320>One <00:25:18.520>is <00:25:18.720>that <00:25:18.919>you <00:25:19.120>can <00:25:19.320>put <00:25:19.520>the, <00:25:19.720>uh,

352
00:25:23.140 --> 00:25:28.120
<00:25:23.140>non-op <00:25:23.280>type <00:25:23.420>in <00:25:23.560>front <00:25:23.700>of <00:25:23.840>the <00:25:23.980>observable <00:25:24.120>input <00:25:24.260>type <00:25:24.400>here <00:25:24.540>so

353
00:25:28.120 --> 00:25:32.540
<00:25:28.120>that <00:25:28.320>you <00:25:28.520>can <00:25:28.719>use <00:25:28.919>it <00:25:29.120>later. <00:25:29.320>And <00:25:29.520>here,

354
00:25:32.920 --> 00:25:33.820
<00:25:32.920>uh, <00:25:33.730>the,

355
00:25:33.960 --> 00:25:38.700
<00:25:33.960>the <00:25:34.115>operator <00:25:34.271>function <00:25:34.426>basically <00:25:34.582>only <00:25:34.737>caress <00:25:34.893>about <00:25:35.048>what <00:25:35.204>do <00:25:35.360>you

356
00:25:39.080 --> 00:25:43.620
<00:25:39.080>get <00:25:39.173>as <00:25:39.266>an <00:25:39.360>input <00:25:39.453>and <00:25:39.546>what <00:25:39.639>do <00:25:39.733>you <00:25:39.826>get <00:25:39.919>as, <00:25:40.013>as <00:25:40.106>an <00:25:40.199>output. <00:25:40.293>This <00:25:40.386>is, <00:25:40.480>uh,

357
00:25:43.770 --> 00:25:48.340
<00:25:43.770>basically <00:25:44.003>how <00:25:44.236>it <00:25:44.470>looks <00:25:44.703>like <00:25:44.936>We <00:25:45.170>have,

358
00:25:50.020 --> 00:25:52.080
<00:25:50.020>uh, <00:25:50.486>this <00:25:50.953>GitHub <00:25:51.420>repo

359
00:25:55.070 --> 00:25:57.730
<00:25:55.070>RX <00:25:55.270>J <00:25:55.470>S <00:25:55.669>X, <00:25:55.870>RJs <00:25:56.070>X <00:25:56.270>I <00:25:56.470>can

360
00:26:00.020 --> 00:26:04.350
<00:26:00.020>show <00:26:00.195>you. <00:26:00.370>We <00:26:00.545>have <00:26:00.720>all <00:26:00.895>these, <00:26:01.070>uh, <00:26:01.245>operators <00:26:01.420>here.

361
00:26:06.630 --> 00:26:11.620
<00:26:06.630>Uh, <00:26:06.757>these <00:26:06.884>are <00:26:07.011>the <00:26:07.139>dogs. <00:26:07.266>Uh, <00:26:07.393>yeah, <00:26:07.520>so <00:26:07.648>the <00:26:07.775>dogs <00:26:07.902>also <00:26:08.030>have,

362
00:26:11.960 --> 00:26:15.690
<00:26:11.960>uh, <00:26:12.310>all <00:26:12.660>the <00:26:13.010>marble <00:26:13.360>diagrams,

363
00:26:15.910 --> 00:26:20.010
<00:26:15.910>all <00:26:16.037>the <00:26:16.164>examples <00:26:16.291>and <00:26:16.419>how <00:26:16.546>they <00:26:16.673>work. <00:26:16.800>And <00:26:16.928>in <00:26:17.055>the <00:26:17.182>source <00:26:17.310>section,

364
00:26:22.490 --> 00:26:25.850
<00:26:22.490>we <00:26:22.665>have <00:26:22.840>these <00:26:23.015>operators <00:26:23.190>and <00:26:23.365>each <00:26:23.540>of <00:26:23.715>them <00:26:23.890>have

365
00:26:27.810 --> 00:26:30.640
<00:26:27.810>tests, <00:26:28.043>and <00:26:28.276>then <00:26:28.510>we <00:26:28.743>have <00:26:28.976>the <00:26:29.210>implementation.

366
00:26:30.640 --> 00:26:35.040
<00:26:30.640>So <00:26:30.840>you <00:26:31.040>can <00:26:31.240>look <00:26:31.440>into <00:26:31.640>different <00:26:31.840>operators <00:26:32.040>and,

367
00:26:35.060 --> 00:26:39.200
<00:26:35.060>and <00:26:35.200>see <00:26:35.340>how <00:26:35.480>typing <00:26:35.620>works, <00:26:35.760>how <00:26:35.899>the <00:26:36.040>implementation <00:26:36.179>works <00:26:36.320>for, <00:26:36.460>for,

368
00:26:39.300 --> 00:26:42.560
<00:26:39.300>to <00:26:39.500>get <00:26:39.700>more <00:26:39.899>examples, <00:26:40.100>uh, <00:26:40.300>in <00:26:40.500>disregard, <00:26:40.700>uh,

369
00:26:43.580 --> 00:26:46.240
<00:26:43.580>the <00:26:43.735>N <00:26:43.891>P <00:26:44.046>M <00:26:44.202>package <00:26:44.357>is <00:26:44.513>called <00:26:44.668>RX <00:26:44.824>js, <00:26:44.980>uh,

370
00:26:46.960 --> 00:26:51.800
<00:26:46.960>x <00:26:47.100>slash <00:26:47.240>RX <00:26:47.380>Js <00:26:47.520>x <00:26:47.660>I <00:26:47.800>wanted <00:26:47.940>to <00:26:48.080>name <00:26:48.220>it <00:26:48.360>RX

371
00:26:51.820 --> 00:26:54.390
<00:26:51.820>JS <00:26:52.100>X <00:26:52.379>without <00:26:52.659>this <00:26:52.939>first <00:26:53.220>part,

372
00:26:54.450 --> 00:26:59.230
<00:26:54.450>but <00:26:54.557>N <00:26:54.665>P <00:26:54.773>M <00:26:54.880>didn't <00:26:54.988>allow <00:26:55.096>me <00:26:55.203>because <00:26:55.311>it's <00:26:55.419>too <00:26:55.526>similar <00:26:55.634>to <00:26:55.742>RX <00:26:55.850>jss.

373
00:26:59.810 --> 00:27:04.570
<00:26:59.810>And <00:27:00.010>then <00:27:00.210>as <00:27:00.409>Octoberfest <00:27:00.610>is <00:27:00.810>coming <00:27:01.010>up, <00:27:01.210>uh,

374
00:27:04.870 --> 00:27:09.090
<00:27:04.870>in <00:27:05.025>10 <00:27:05.181>days, <00:27:05.336>you <00:27:05.492>can <00:27:05.647>actually <00:27:05.803>go <00:27:05.958>to <00:27:06.114>this, <00:27:06.270>uh,

375
00:27:09.830 --> 00:27:14.220
<00:27:09.830>GitHub <00:27:10.030>repo <00:27:10.230>and <00:27:10.429>contribute <00:27:10.629>if <00:27:10.830>you <00:27:11.030>want, <00:27:11.230>uh,

376
00:27:14.220 --> 00:27:19.020
<00:27:14.220>to <00:27:14.375>add <00:27:14.531>new, <00:27:14.686>uh, <00:27:14.842>operators. <00:27:14.997>If <00:27:15.153>you <00:27:15.308>have <00:27:15.464>an <00:27:15.620>idea,

377
00:27:19.040 --> 00:27:23.820
<00:27:19.040>if <00:27:19.180>you <00:27:19.320>want <00:27:19.460>new <00:27:19.600>operators <00:27:19.740>to <00:27:19.879>be <00:27:20.020>added <00:27:20.159>to <00:27:20.300>this, <00:27:20.440>uh,

378
00:27:23.820 --> 00:27:27.060
<00:27:23.820>library, <00:27:23.975>you, <00:27:24.131>you <00:27:24.286>are, <00:27:24.442>uh, <00:27:24.597>you <00:27:24.753>free <00:27:24.908>to <00:27:25.064>do <00:27:25.220>that.

379
00:27:27.160 --> 00:27:30.780
<00:27:27.160>You <00:27:27.315>can <00:27:27.471>contribute <00:27:27.626>at <00:27:27.782>more <00:27:27.937>operators. <00:27:28.093>If <00:27:28.248>you <00:27:28.404>have <00:27:28.560>ideas,

380
00:27:30.920 --> 00:27:34.460
<00:27:30.920>you <00:27:31.027>can <00:27:31.135>just <00:27:31.243>put <00:27:31.350>the <00:27:31.458>ideas <00:27:31.566>here. <00:27:31.673>Someone <00:27:31.781>else <00:27:31.889>will <00:27:31.996>pick <00:27:32.104>it <00:27:32.212>up <00:27:32.320>and,

381
00:27:34.460 --> 00:27:39.260
<00:27:34.460>and <00:27:34.615>implement <00:27:34.771>it. <00:27:34.926>And <00:27:35.082>if <00:27:35.237>you <00:27:35.393>want <00:27:35.548>the <00:27:35.704>technical <00:27:35.860>part,

382
00:27:39.480 --> 00:27:43.020
<00:27:39.480>the <00:27:39.635>technical <00:27:39.791>challenge, <00:27:39.946>there <00:27:40.102>are <00:27:40.257>also <00:27:40.413>some <00:27:40.568>ideas <00:27:40.724>already <00:27:40.880>here,

383
00:27:43.560 --> 00:27:48.230
<00:27:43.560>and <00:27:43.667>you <00:27:43.775>can <00:27:43.883>pick <00:27:43.990>them <00:27:44.098>up <00:27:44.206>and, <00:27:44.313>and, <00:27:44.421>uh, <00:27:44.529>fix <00:27:44.636>them <00:27:44.744>for <00:27:44.852>October <00:27:44.960>1st,

384
00:27:48.250 --> 00:27:50.590
<00:27:48.250>for <00:27:48.716>example. <00:27:49.183>And <00:27:49.650>yeah,

385
00:27:50.610 --> 00:27:54.590
<00:27:50.610>so <00:27:50.750>also <00:27:50.889>if <00:27:51.030>you <00:27:51.169>want <00:27:51.310>to <00:27:51.449>learn <00:27:51.590>more <00:27:51.729>about <00:27:51.870>these <00:27:52.010>operators,

386
00:27:54.690 --> 00:27:57.710
<00:27:54.690>how <00:27:55.040>useful <00:27:55.390>they <00:27:55.740>are, <00:27:56.090>uh,

387
00:27:57.710 --> 00:28:01.390
<00:27:57.710>there <00:27:57.865>is <00:27:58.021>the <00:27:58.176>link <00:27:58.332>to <00:27:58.487>this <00:27:58.643>medium <00:27:58.798>article <00:27:58.954>down <00:27:59.110>here.

388
00:28:02.710 --> 00:28:07.290
<00:28:02.710>You <00:28:02.803>can <00:28:02.896>take <00:28:02.990>a <00:28:03.083>look <00:28:03.176>into <00:28:03.270>it <00:28:03.363>and, <00:28:03.456>and <00:28:03.550>maybe <00:28:03.643>it's <00:28:03.736>useful <00:28:03.830>for <00:28:03.923>you <00:28:04.016>as <00:28:04.110>well.

389
00:28:08.170 --> 00:28:09.910
<00:28:08.170>Uh, <00:28:09.570>and

390
00:28:12.930 --> 00:28:17.450
<00:28:12.930>that's, <00:28:14.330>yeah.

391
00:28:17.870 --> 00:28:18.703
Uh,

392
00:28:22.230 --> 00:28:23.063
<00:28:22.230>And <00:28:22.479>that <00:28:22.729>is <00:28:22.979>a

393
00:28:24.670 --> 00:28:29.340
<00:28:24.670>photo <00:28:24.825>of <00:28:24.981>me <00:28:25.136>with <00:28:25.292>my <00:28:25.447>colleagues <00:28:25.603>at <00:28:25.758>Yodel, <00:28:25.914>basically <00:28:26.070>to

394
00:28:31.120 --> 00:28:35.610
<00:28:31.120>wrap <00:28:31.275>it <00:28:31.431>up, <00:28:31.586>uh, <00:28:31.742>and <00:28:31.897>conclusion, <00:28:32.053>uh, <00:28:32.208>make <00:28:32.364>pipes <00:28:32.520>dry.

395
00:28:35.790 --> 00:28:40.360
<00:28:35.790>So <00:28:36.023>we <00:28:36.256>have <00:28:36.490>dry <00:28:36.723>principles <00:28:36.956>in <00:28:37.190>normal,

396
00:28:40.700 --> 00:28:42.640
<00:28:40.700>uh, <00:28:41.166>paradigm <00:28:41.633>of <00:28:42.100>coating,

397
00:28:42.980 --> 00:28:47.560
<00:28:42.980>but <00:28:43.120>we <00:28:43.260>don't <00:28:43.400>have <00:28:43.540>the <00:28:43.680>same <00:28:43.820>thing <00:28:43.960>for <00:28:44.100>pipelines <00:28:44.240>of <00:28:44.380>like

398
00:28:48.140 --> 00:28:49.600
<00:28:48.140>10, <00:28:49.454>uh,

399
00:28:52.970 --> 00:28:56.460
<00:28:52.970>just <00:28:53.145>and <00:28:53.320>pipes <00:28:53.495>together <00:28:53.670>and, <00:28:53.845>and <00:28:54.020>very <00:28:54.195>huge <00:28:54.370>pipelines.

400
00:28:57.790 --> 00:29:01.060
<00:28:57.790>These, <00:28:57.990>uh, <00:28:58.190>operators <00:28:58.389>make, <00:28:58.590>make <00:28:58.790>pipelines <00:28:58.990>more <00:28:59.190>dry.

401
00:29:02.120 --> 00:29:06.930
<00:29:02.120>And <00:29:02.294>typo <00:29:02.469>scripts <00:29:02.645>is <00:29:02.820>very <00:29:02.995>helpful <00:29:03.169>here <00:29:03.344>because <00:29:03.520>we

402
00:29:06.930 --> 00:29:11.170
<00:29:06.930>couldn't <00:29:07.130>have <00:29:07.330>done <00:29:07.530>it <00:29:07.730>without <00:29:07.930>the <00:29:08.130>very, <00:29:08.330>uh,

403
00:29:12.730 --> 00:29:15.940
<00:29:12.730>complex <00:29:12.905>typing <00:29:13.080>that <00:29:13.255>is <00:29:13.430>provided <00:29:13.605>by <00:29:13.780>T <00:29:13.955>Script. <00:29:14.130>Uh,

404
00:29:16.610 --> 00:29:19.020
<00:29:16.610>most <00:29:16.765>of <00:29:16.921>the <00:29:17.076>time <00:29:17.232>when <00:29:17.387>I <00:29:17.543>was <00:29:17.698>introducing <00:29:17.854>these, <00:29:18.010>uh,

405
00:29:21.520 --> 00:29:26.240
<00:29:21.520>operators, <00:29:21.636>I <00:29:21.753>would <00:29:21.870>first <00:29:21.986>go <00:29:22.103>there <00:29:22.220>and <00:29:22.336>set <00:29:22.453>the <00:29:22.570>types <00:29:22.686>correct, <00:29:22.803>and <00:29:22.920>I,

406
00:29:26.320 --> 00:29:29.200
<00:29:26.320>I <00:29:26.460>would, <00:29:26.600>I <00:29:26.740>would <00:29:26.879>make <00:29:27.020>sure <00:29:27.159>that <00:29:27.300>these <00:29:27.439>types <00:29:27.580>are <00:29:27.720>correct.

407
00:29:29.380 --> 00:29:34.080
<00:29:29.380>And <00:29:29.520>then <00:29:29.660>the <00:29:29.800>implementation <00:29:29.940>was <00:29:30.080>kind <00:29:30.220>of <00:29:30.360>obvious <00:29:30.500>from <00:29:30.640>there <00:29:30.780>on,

408
00:29:34.080 --> 00:29:38.000
<00:29:34.080>because <00:29:34.207>then <00:29:34.334>if, <00:29:34.461>if <00:29:34.589>I <00:29:34.716>had <00:29:34.843>the <00:29:34.970>wrong <00:29:35.098>implementation <00:29:35.225>for <00:29:35.352>this <00:29:35.480>function,

409
00:29:38.110 --> 00:29:42.560
<00:29:38.110>then <00:29:38.209>the <00:29:38.310>types <00:29:38.409>wouldn't <00:29:38.510>match. <00:29:38.610>And <00:29:38.709>then <00:29:38.810>I, <00:29:38.909>then <00:29:39.010>I <00:29:39.110>would <00:29:39.209>say, <00:29:39.310>okay, <00:29:39.409>this <00:29:39.510>is,

410
00:29:42.810 --> 00:29:46.440
<00:29:42.810>there <00:29:42.937>is <00:29:43.064>something <00:29:43.191>wrong <00:29:43.319>with <00:29:43.446>it. <00:29:43.573>And <00:29:43.700>then <00:29:43.828>I <00:29:43.955>would <00:29:44.082>get <00:29:44.210>the,

411
00:29:46.500 --> 00:29:50.640
<00:29:46.500>the <00:29:46.627>correct <00:29:46.754>implementation <00:29:46.881>based <00:29:47.009>on <00:29:47.136>the <00:29:47.263>types <00:29:47.390>that <00:29:47.518>I <00:29:47.645>had. <00:29:47.772>So <00:29:47.900>that,

412
00:29:50.640 --> 00:29:55.410
<00:29:50.640>that's <00:29:50.795>really <00:29:50.951>helpful <00:29:51.106>here. <00:29:51.262>And <00:29:51.417>yeah, <00:29:51.573>basically <00:29:51.728>that <00:29:51.884>was <00:29:52.040>it.

413
00:29:55.430 --> 00:29:59.140
<00:29:55.430>Thanks <00:29:55.630>a <00:29:55.830>lot. <00:29:56.030>Do <00:29:56.230>you <00:29:56.430>have <00:29:56.630>any <00:29:56.830>questions?

414
00:30:05.710 --> 00:30:07.660
<00:30:05.710>Hello. <00:30:06.060>Thank <00:30:06.410>you, <00:30:06.760>Mohamed. <00:30:07.110>Ali,

415
00:30:07.760 --> 00:30:11.980
<00:30:07.760>it <00:30:07.860>was <00:30:07.960>super <00:30:08.060>good <00:30:08.160>to <00:30:08.260>listen <00:30:08.360>to <00:30:08.460>all <00:30:08.560>your <00:30:08.660>insights <00:30:08.760>and <00:30:08.860>I <00:30:08.960>loved <00:30:09.060>your <00:30:09.160>slides.

416
00:30:12.940 --> 00:30:13.773
<00:30:12.940>Thank <00:30:13.689>you.

417
00:30:14.450 --> 00:30:15.040
<00:30:14.450>Yeah. <00:30:14.981>Uh,

418
00:30:15.040 --> 00:30:18.780
<00:30:15.040>we <00:30:15.139>were <00:30:15.240>collecting <00:30:15.340>all <00:30:15.440>the <00:30:15.540>questions <00:30:15.639>that <00:30:15.740>were <00:30:15.840>placed <00:30:15.940>in <00:30:16.040>the <00:30:16.139>q <00:30:16.240>and <00:30:16.340>a <00:30:16.440>chat.

419
00:30:19.240 --> 00:30:21.020
<00:30:19.240>And <00:30:19.520>also, <00:30:19.800>I <00:30:20.080>want <00:30:20.360>to <00:30:20.640>remember,

420
00:30:21.220 --> 00:30:25.260
<00:30:21.220>'cause <00:30:21.320>there's <00:30:21.420>one <00:30:21.520>asking <00:30:21.620>if <00:30:21.720>all <00:30:21.820>these <00:30:21.920>sessions <00:30:22.020>are <00:30:22.120>recorded, <00:30:22.220>so <00:30:22.320>I <00:30:22.420>want <00:30:22.520>to, <00:30:22.620>uh,

421
00:30:25.480 --> 00:30:27.340
<00:30:25.480>remind <00:30:25.760>everyone <00:30:26.040>that <00:30:26.320>yes, <00:30:26.600>they <00:30:26.880>are,

422
00:30:27.610 --> 00:30:31.220
<00:30:27.610>they <00:30:27.737>will <00:30:27.864>be <00:30:27.991>uploaded <00:30:28.119>to <00:30:28.246>our <00:30:28.373>watch <00:30:28.500>section <00:30:28.628>after <00:30:28.755>a <00:30:28.882>few <00:30:29.010>days,

423
00:30:31.560 --> 00:30:35.180
<00:30:31.560>but <00:30:31.676>also <00:30:31.793>everyone <00:30:31.909>that <00:30:32.026>is <00:30:32.143>subscribed <00:30:32.260>to <00:30:32.376>the <00:30:32.493>event <00:30:32.610>will <00:30:32.726>receive <00:30:32.843>a <00:30:32.960>recap

424
00:30:35.180 --> 00:30:37.780
<00:30:35.180>newsletter <00:30:35.380>on <00:30:35.580>Friday <00:30:35.780>with <00:30:35.980>the <00:30:36.180>recording <00:30:36.380>as <00:30:36.580>well.

425
00:30:37.920 --> 00:30:41.660
<00:30:37.920>So <00:30:38.036>no <00:30:38.153>matter <00:30:38.270>how <00:30:38.386>many <00:30:38.503>times <00:30:38.620>you <00:30:38.736>want <00:30:38.853>to <00:30:38.970>rewatch <00:30:39.086>this, <00:30:39.203>you <00:30:39.320>can.

426
00:30:43.480 --> 00:30:47.700
<00:30:43.480>All <00:30:43.607>right, <00:30:43.734>so <00:30:43.861>before <00:30:43.989>jumping <00:30:44.116>into <00:30:44.243>the <00:30:44.370>technical <00:30:44.498>questions, <00:30:44.625>I, <00:30:44.752>because <00:30:44.880>I,

427
00:30:47.780 --> 00:30:50.060
<00:30:47.780>I <00:30:47.955>saw <00:30:48.129>that <00:30:48.305>you <00:30:48.480>changed <00:30:48.655>locations <00:30:48.830>so <00:30:49.004>many <00:30:49.180>times,

428
00:30:50.160 --> 00:30:54.020
<00:30:50.160>and <00:30:50.253>I'm <00:30:50.346>always <00:30:50.440>curious <00:30:50.533>to <00:30:50.626>see <00:30:50.720>how <00:30:50.813>the <00:30:50.906>experience <00:30:51.000>of <00:30:51.093>someone <00:30:51.186>that <00:30:51.280>has <00:30:51.373>lived <00:30:51.466>in <00:30:51.560>so

429
00:30:54.020 --> 00:30:57.100
<00:30:54.020>many <00:30:54.160>places, <00:30:54.300>I <00:30:54.440>guess, <00:30:54.580>connected <00:30:54.720>to <00:30:54.860>work <00:30:55.000>as <00:30:55.139>well, <00:30:55.280>has <00:30:55.420>been.

430
00:30:57.280 --> 00:31:00.220
<00:30:57.280>So <00:30:57.435>how <00:30:57.591>has <00:30:57.746>the <00:30:57.902>developer <00:30:58.057>life <00:30:58.213>treated <00:30:58.368>you <00:30:58.524>so <00:30:58.680>far?

431
00:31:00.880 --> 00:31:05.260
<00:31:00.880>Uh, <00:31:00.987>so, <00:31:01.095>so <00:31:01.203>it's <00:31:01.310>basically, <00:31:01.418>it's <00:31:01.526>also <00:31:01.633>fun <00:31:01.741>fact, <00:31:01.849>my <00:31:01.956>last <00:31:02.064>name <00:31:02.172>means <00:31:02.280>nomad,

432
00:31:05.470 --> 00:31:10.220
<00:31:05.470>which <00:31:05.577>now <00:31:05.685>makes <00:31:05.793>sense <00:31:05.900>because <00:31:06.008>I, <00:31:06.116>I <00:31:06.223>have <00:31:06.331>changed <00:31:06.439>my, <00:31:06.546>uh, <00:31:06.654>location <00:31:06.762>so <00:31:06.870>often.

433
00:31:10.760 --> 00:31:14.100
<00:31:10.760>And, <00:31:10.935>uh, <00:31:11.110>yeah, <00:31:11.285>so <00:31:11.460>it's <00:31:11.635>really <00:31:11.810>interesting <00:31:11.985>because <00:31:12.160>then,

434
00:31:14.800 --> 00:31:15.940
<00:31:14.800>for <00:31:15.142>me <00:31:15.484>at <00:31:15.826>least,

435
00:31:15.940 --> 00:31:20.740
<00:31:15.940>because <00:31:16.140>you <00:31:16.340>learn <00:31:16.540>many <00:31:16.740>different <00:31:16.940>parts <00:31:17.140>of <00:31:17.340>different

436
00:31:20.740 --> 00:31:24.940
<00:31:20.740>cultures, <00:31:20.867>and <00:31:20.994>then <00:31:21.121>you <00:31:21.249>can <00:31:21.376>at <00:31:21.503>the <00:31:21.630>end <00:31:21.758>mix <00:31:21.885>them <00:31:22.012>up <00:31:22.140>and,

437
00:31:24.940 --> 00:31:29.500
<00:31:24.940>and <00:31:25.067>have <00:31:25.194>your <00:31:25.321>own <00:31:25.449>like, <00:31:25.576>mix <00:31:25.703>of, <00:31:25.830>of <00:31:25.958>these <00:31:26.085>cultures. <00:31:26.212>And <00:31:26.340>you,

438
00:31:29.760 --> 00:31:33.500
<00:31:29.760>you <00:31:29.860>can <00:31:29.960>pick <00:31:30.060>the <00:31:30.160>deep <00:31:30.260>parts <00:31:30.360>that <00:31:30.460>you <00:31:30.560>like <00:31:30.660>and <00:31:30.760>then <00:31:30.860>you <00:31:30.960>carry <00:31:31.060>on, <00:31:31.160>uh,

439
00:31:33.530 --> 00:31:35.300
<00:31:33.530>with <00:31:33.996>yourself. <00:31:34.463>And <00:31:34.930>also,

440
00:31:35.490 --> 00:31:39.420
<00:31:35.490>it's <00:31:35.606>a <00:31:35.723>very <00:31:35.840>great <00:31:35.956>opportunity <00:31:36.073>to <00:31:36.190>learn <00:31:36.306>different <00:31:36.423>languages. <00:31:36.540>I, <00:31:36.656>I <00:31:36.773>would <00:31:36.890>say,

441
00:31:39.420 --> 00:31:43.860
<00:31:39.420>because <00:31:39.536>for <00:31:39.653>example, <00:31:39.770>I <00:31:39.886>was <00:31:40.003>in <00:31:40.120>Holland <00:31:40.236>for <00:31:40.353>one <00:31:40.470>year, <00:31:40.586>and <00:31:40.703>yeah, <00:31:40.820>I,

442
00:31:43.940 --> 00:31:47.460
<00:31:43.940>I <00:31:44.080>know <00:31:44.220>a <00:31:44.360>bit <00:31:44.500>of <00:31:44.640>Dutch, <00:31:44.780>so <00:31:44.920>sometimes <00:31:45.060>it <00:31:45.200>helps <00:31:45.340>it,

443
00:31:47.570 --> 00:31:49.740
<00:31:47.570>it's <00:31:47.745>when <00:31:47.919>there <00:31:48.095>is <00:31:48.270>a <00:31:48.445>Dutch <00:31:48.620>text <00:31:48.794>or <00:31:48.970>something,

444
00:31:49.740 --> 00:31:54.300
<00:31:49.740>then <00:31:49.840>I <00:31:49.940>can <00:31:50.040>probably <00:31:50.140>read <00:31:50.240>it <00:31:50.340>or <00:31:50.440>something <00:31:50.540>or <00:31:50.640>connect <00:31:50.740>with <00:31:50.840>the <00:31:50.940>Dutch <00:31:51.040>people <00:31:51.140>here.

445
00:31:55.410 --> 00:31:55.880
Yeah,

446
00:31:55.880 --> 00:32:00.180
<00:31:55.880>that's <00:31:55.987>great <00:31:56.095>to <00:31:56.203>build <00:31:56.310>an <00:31:56.418>international <00:31:56.526>community <00:31:56.633>and <00:31:56.741>also <00:31:56.849>to <00:31:56.956>be <00:31:57.064>integrated <00:31:57.172>in <00:31:57.280>a

447
00:32:00.180 --> 00:32:04.500
<00:32:00.180>multicultural <00:32:00.307>team <00:32:00.434>that <00:32:00.561>nowadays, <00:32:00.689>hopefully <00:32:00.816>we'll <00:32:00.943>get <00:32:01.070>more <00:32:01.198>and <00:32:01.325>more, <00:32:01.452>uh, <00:32:01.580>it,

448
00:32:04.600 --> 00:32:08.620
<00:32:04.600>it <00:32:04.699>seems <00:32:04.800>a <00:32:04.899>bit <00:32:05.000>more <00:32:05.100>smoother <00:32:05.199>to <00:32:05.300>know <00:32:05.399>all <00:32:05.500>the <00:32:05.600>cultures <00:32:05.699>rather <00:32:05.800>than <00:32:05.899>that <00:32:06.000>just

449
00:32:08.620 --> 00:32:10.140
<00:32:08.620>working <00:32:08.815>in <00:32:09.010>the <00:32:09.206>same <00:32:09.401>location <00:32:09.597>all <00:32:09.792>the <00:32:09.988>time.

450
00:32:10.970 --> 00:32:15.300
<00:32:10.970>True. <00:32:11.125>It's, <00:32:11.281>it's <00:32:11.436>really, <00:32:11.592>uh, <00:32:11.747>also <00:32:11.903>interesting <00:32:12.058>to <00:32:12.214>see, <00:32:12.370>okay,

451
00:32:15.360 --> 00:32:17.900
<00:32:15.360>how <00:32:15.593>different, <00:32:15.826>but <00:32:16.060>at <00:32:16.293>the <00:32:16.526>same <00:32:16.760>time,

452
00:32:18.090 --> 00:32:21.940
<00:32:18.090>similar <00:32:18.245>people <00:32:18.401>are <00:32:18.556>like <00:32:18.712>that. <00:32:18.867>I <00:32:19.023>would, <00:32:19.178>I <00:32:19.334>would, <00:32:19.490>uh,

453
00:32:23.120 --> 00:32:27.580
<00:32:23.120>expect <00:32:23.219>that, <00:32:23.320>like <00:32:23.419>for <00:32:23.520>example, <00:32:23.620>in <00:32:23.719>a <00:32:23.820>country, <00:32:23.919>on <00:32:24.020>the <00:32:24.120>other <00:32:24.219>side <00:32:24.320>of <00:32:24.419>the <00:32:24.520>planet,

454
00:32:27.580 --> 00:32:29.980
<00:32:27.580>people <00:32:27.860>would <00:32:28.139>be <00:32:28.419>a <00:32:28.699>lot <00:32:28.980>different,

455
00:32:30.080 --> 00:32:33.620
<00:32:30.080>but <00:32:30.207>also <00:32:30.334>they <00:32:30.461>are <00:32:30.589>super <00:32:30.716>similar <00:32:30.843>in <00:32:30.970>some <00:32:31.098>aspects. <00:32:31.225>And <00:32:31.352>yeah, <00:32:31.480>these,

456
00:32:33.620 --> 00:32:35.540
<00:32:33.620>these <00:32:33.969>differences <00:32:34.320>are <00:32:34.669>really <00:32:35.020>interesting.

457
00:32:36.560 --> 00:32:39.640
<00:32:36.560>Yep. <00:32:36.735>All <00:32:36.909>right. <00:32:37.085>Let's <00:32:37.260>jump <00:32:37.435>into <00:32:37.610>the <00:32:37.784>technical <00:32:37.960>ones.

458
00:32:39.690 --> 00:32:42.720
<00:32:39.690>Let's <00:32:39.806>see <00:32:39.923>what <00:32:40.040>we <00:32:40.156>can <00:32:40.273>do <00:32:40.390>for <00:32:40.506>the <00:32:40.623>audience <00:32:40.740>today. <00:32:40.856>Uh, <00:32:40.973>one <00:32:41.090>is,

459
00:32:42.780 --> 00:32:46.640
<00:32:42.780>do <00:32:42.920>you <00:32:43.060>have <00:32:43.200>examples <00:32:43.340>of <00:32:43.480>unique <00:32:43.620>tests <00:32:43.760>on <00:32:43.899>your <00:32:44.040>custom <00:32:44.180>operators?

460
00:32:47.060 --> 00:32:49.800
<00:32:47.060>Yes, <00:32:47.235>yes. <00:32:47.409>I <00:32:47.585>can <00:32:47.760>actually <00:32:47.935>open <00:32:48.110>one <00:32:48.284>of <00:32:48.460>the,

461
00:32:52.630 --> 00:32:56.140
<00:32:52.630>let's <00:32:52.830>do <00:32:53.030>one <00:32:53.230>of <00:32:53.430>the <00:32:53.630>easiest <00:32:53.830>ones. <00:32:54.030>Uh,

462
00:32:59.590 --> 00:33:00.423
maybe

463
00:33:05.350 --> 00:33:07.720
<00:33:05.350>Zip <00:33:05.816>map, <00:33:06.283>uh, <00:33:06.750>rank

464
00:33:10.180 --> 00:33:11.950
<00:33:10.180>five. <00:33:10.530>Okay. <00:33:10.880>So <00:33:11.230>this <00:33:11.580>is

465
00:33:14.680 --> 00:33:18.600
<00:33:14.680>actually <00:33:14.835>also <00:33:14.991>written <00:33:15.146>in <00:33:15.302>karma, <00:33:15.457>I <00:33:15.613>guess. <00:33:15.768>So <00:33:15.924>the <00:33:16.080>same,

466
00:33:19.780 --> 00:33:24.680
<00:33:19.780>uh, <00:33:19.955>testing, <00:33:20.129>uh, <00:33:20.305>environment <00:33:20.480>as <00:33:20.655>in <00:33:20.830>angular. <00:33:21.004>And <00:33:21.180>yeah,

467
00:33:24.680 --> 00:33:25.513
basically

468
00:33:27.090 --> 00:33:31.220
<00:33:27.090>this <00:33:27.206>is <00:33:27.323>that <00:33:27.439>I <00:33:27.556>have <00:33:27.673>an <00:33:27.790>observer <00:33:27.906>that <00:33:28.023>has <00:33:28.139>a <00:33:28.256>two <00:33:28.373>in <00:33:28.490>it,

469
00:33:31.240 --> 00:33:35.140
<00:33:31.240>and <00:33:31.367>then <00:33:31.494>I <00:33:31.621>do <00:33:31.749>a <00:33:31.876>zip <00:33:32.003>map <00:33:32.130>to <00:33:32.258>turn <00:33:32.385>it <00:33:32.512>into <00:33:32.640>a,

470
00:33:35.530 --> 00:33:36.420
<00:33:35.530>into <00:33:35.930>an <00:33:36.331>string.

471
00:33:37.160 --> 00:33:40.740
<00:33:37.160>And <00:33:37.287>then <00:33:37.414>here <00:33:37.541>I <00:33:37.669>test <00:33:37.796>if <00:33:37.923>the <00:33:38.050>first <00:33:38.178>part <00:33:38.305>is <00:33:38.432>a <00:33:38.560>two,

472
00:33:40.740 --> 00:33:44.980
<00:33:40.740>and <00:33:40.847>the <00:33:40.955>second <00:33:41.063>part <00:33:41.170>is <00:33:41.278>a <00:33:41.386>string <00:33:41.493>of <00:33:41.601>two, <00:33:41.709>and <00:33:41.816>that's <00:33:41.924>basically <00:33:42.032>the <00:33:42.140>test.

473
00:33:45.000 --> 00:33:49.380
<00:33:45.000>And <00:33:45.175>then <00:33:45.350>here <00:33:45.525>I <00:33:45.700>have <00:33:45.875>another <00:33:46.050>one <00:33:46.225>which <00:33:46.400>has

474
00:33:50.840 --> 00:33:54.900
<00:33:50.840>an <00:33:50.939>error <00:33:51.040>in <00:33:51.139>it. <00:33:51.240>So <00:33:51.340>I <00:33:51.439>test <00:33:51.540>how <00:33:51.639>the <00:33:51.740>error <00:33:51.840>handling <00:33:51.939>is, <00:33:52.040>is <00:33:52.139>working <00:33:52.240>here.

475
00:33:56.160 --> 00:33:57.500
<00:33:56.160>And <00:33:56.461>yeah, <00:33:56.763>so <00:33:57.064>it, <00:33:57.366>it,

476
00:33:58.170 --> 00:34:02.980
<00:33:58.170>it's <00:33:58.345>more <00:33:58.520>complicated <00:33:58.695>for <00:33:58.870>more <00:33:59.045>complicated <00:33:59.220>operators <00:33:59.395>like, <00:33:59.570>uh,

477
00:34:03.080 --> 00:34:05.220
<00:34:03.080>uh, <00:34:03.429>this <00:34:03.780>one. <00:34:04.129>But <00:34:04.480>yeah,

478
00:34:05.240 --> 00:34:10.060
<00:34:05.240>so <00:34:05.395>the <00:34:05.551>testing <00:34:05.706>is <00:34:05.862>basically <00:34:06.017>not <00:34:06.173>the, <00:34:06.328>the <00:34:06.484>most <00:34:06.640>part,

479
00:34:10.200 --> 00:34:13.740
<00:34:10.199>the <00:34:10.399>most <00:34:10.600>hard <00:34:10.799>part <00:34:11.000>of <00:34:11.199>it, <00:34:11.399>I <00:34:11.600>think.

480
00:34:13.860 --> 00:34:16.220
<00:34:13.860>I <00:34:14.035>don't <00:34:14.210>know <00:34:14.385>if <00:34:14.560>the <00:34:14.735>text <00:34:14.910>here <00:34:15.085>is <00:34:15.260>visible,

481
00:34:16.230 --> 00:34:19.660
<00:34:16.230>maybe <00:34:16.405>I <00:34:16.580>can <00:34:16.755>make <00:34:16.929>it <00:34:17.105>a <00:34:17.280>bit <00:34:17.455>more <00:34:17.630>large.

482
00:34:21.830 --> 00:34:22.690
<00:34:21.830>Mm-hmm. <00:34:22.604>Mm-hmm.

483
00:34:27.420 --> 00:34:29.630
<00:34:27.420>Okay. <00:34:27.653>Maybe <00:34:27.886>it's <00:34:28.120>better <00:34:28.353>now, <00:34:28.586>but <00:34:28.820>yeah.

484
00:34:29.630 --> 00:34:34.110
<00:34:29.630>So <00:34:29.737>all <00:34:29.845>of <00:34:29.953>the <00:34:30.060>test <00:34:30.168>cases <00:34:30.276>are <00:34:30.383>also <00:34:30.491>in <00:34:30.599>this <00:34:30.706>repository. <00:34:30.814>You <00:34:30.922>can, <00:34:31.030>uh,

485
00:34:34.220 --> 00:34:37.900
<00:34:34.219>take <00:34:34.419>a <00:34:34.620>look <00:34:34.819>at <00:34:35.020>all <00:34:35.219>of <00:34:35.419>them. <00:34:35.620>I,

486
00:34:38.020 --> 00:34:40.340
<00:34:38.020>I <00:34:38.253>hope <00:34:38.486>that <00:34:38.719>have <00:34:38.953>answered <00:34:39.186>the <00:34:39.420>question.

487
00:34:42.950 --> 00:34:46.630
<00:34:42.949>I <00:34:43.057>hope <00:34:43.165>so. <00:34:43.273>But <00:34:43.380>it's <00:34:43.488>a <00:34:43.596>good <00:34:43.703>moment <00:34:43.811>to <00:34:43.919>maybe, <00:34:44.026>uh, <00:34:44.134>remember <00:34:44.242>the <00:34:44.350>audience,

488
00:34:46.630 --> 00:34:50.270
<00:34:46.630>how <00:34:46.730>they <00:34:46.830>can <00:34:46.930>contact <00:34:47.030>you <00:34:47.130>in <00:34:47.230>case <00:34:47.330>they <00:34:47.430>have <00:34:47.530>not <00:34:47.630>solved <00:34:47.730>their <00:34:47.830>questions <00:34:47.930>after <00:34:48.030>this

489
00:34:50.350 --> 00:34:54.470
<00:34:50.350>q <00:34:50.443>and <00:34:50.536>a <00:34:50.630>session, <00:34:50.723>or, <00:34:50.816>uh, <00:34:50.909>they <00:34:51.003>want <00:34:51.096>to <00:34:51.190>deep <00:34:51.283>dive <00:34:51.376>into <00:34:51.469>any <00:34:51.563>of <00:34:51.656>the <00:34:51.750>topics,

490
00:34:54.730 --> 00:34:55.910
<00:34:54.730>so <00:34:54.942>maybe <00:34:55.154>you <00:34:55.367>can <00:34:55.579>tell <00:34:55.792>them.

491
00:34:56.460 --> 00:35:00.430
<00:34:56.460>Sure. <00:34:56.600>Uh, <00:34:56.740>so <00:34:56.880>I'm, <00:34:57.020>I'm, <00:34:57.160>I'm <00:34:57.300>active <00:34:57.440>on, <00:34:57.580>uh, <00:34:57.720>Twitter. <00:34:57.860>Uh,

492
00:35:00.730 --> 00:35:05.070
<00:35:00.730>my <00:35:00.837>Twitter <00:35:00.945>handle <00:35:01.053>was <00:35:01.160>there <00:35:01.268>in <00:35:01.376>the <00:35:01.483>beginning. <00:35:01.591>It's <00:35:01.699>basically <00:35:01.806>Mohammad <00:35:01.914>Ali <00:35:02.022>e <00:35:02.130>n,

493
00:35:05.070 --> 00:35:08.390
<00:35:05.070>because <00:35:05.186>that's <00:35:05.303>my <00:35:05.420>English <00:35:05.536>Twitter <00:35:05.653>account <00:35:05.770>I <00:35:05.886>have <00:35:06.003>in <00:35:06.120>other <00:35:06.236>languages <00:35:06.353>as <00:35:06.470>well,

494
00:35:08.410 --> 00:35:11.910
<00:35:08.410>but <00:35:08.537>it's <00:35:08.664>also <00:35:08.791>written <00:35:08.919>on <00:35:09.046>my <00:35:09.173>sleeve <00:35:09.300>here. <00:35:09.428>If <00:35:09.555>you <00:35:09.682>can <00:35:09.810>read,

495
00:35:12.650 --> 00:35:15.470
<00:35:12.650>That's <00:35:12.883>very <00:35:13.116>useful. <00:35:13.350>I'll <00:35:13.583>grab <00:35:13.816>that <00:35:14.050>idea.

496
00:35:15.470 --> 00:35:17.630
<00:35:15.470>So <00:35:15.819>especially <00:35:16.169>in <00:35:16.520>conferences. <00:35:16.870>Yeah.

497
00:35:18.020 --> 00:35:22.030
<00:35:18.020>Yeah. <00:35:18.220>Alright. <00:35:18.420>Uh, <00:35:18.620>another <00:35:18.820>one. <00:35:19.020>What <00:35:19.220>is, <00:35:19.420>uh,

498
00:35:22.050 --> 00:35:26.950
<00:35:22.050>the <00:35:22.190>key <00:35:22.330>difference <00:35:22.470>about <00:35:22.610>stating <00:35:22.750>multiple <00:35:22.890>pipe <00:35:23.030>statements <00:35:23.170>for <00:35:23.310>an <00:35:23.450>observable

499
00:35:27.010 --> 00:35:28.190
<00:35:27.010>rather <00:35:27.364>than <00:35:27.718>just <00:35:28.072>one?

500
00:35:29.640 --> 00:35:33.940
<00:35:29.640>It, <00:35:29.756>it's <00:35:29.873>not <00:35:29.990>different <00:35:30.106>at <00:35:30.223>all. <00:35:30.339>So <00:35:30.456>the <00:35:30.573>only <00:35:30.690>difference <00:35:30.806>is <00:35:30.923>the <00:35:31.040>syntax.

501
00:35:34.560 --> 00:35:39.360
<00:35:34.560>You <00:35:34.700>can <00:35:34.840>have, <00:35:34.980>uh, <00:35:35.120>one <00:35:35.259>pipe <00:35:35.400>with, <00:35:35.540>I <00:35:35.680>dunno, <00:35:35.820>five <00:35:35.960>different,

502
00:35:39.540 --> 00:35:44.320
<00:35:39.540>uh, <00:35:39.656>operators <00:35:39.773>in <00:35:39.890>inside <00:35:40.006>it. <00:35:40.123>And <00:35:40.240>you <00:35:40.356>can <00:35:40.473>do <00:35:40.590>them <00:35:40.706>one <00:35:40.823>by <00:35:40.940>one.

503
00:35:44.830 --> 00:35:47.320
<00:35:44.830>It's, <00:35:44.970>at <00:35:45.110>the <00:35:45.250>end <00:35:45.390>of <00:35:45.529>the <00:35:45.670>day <00:35:45.810>exactly <00:35:45.950>the <00:35:46.090>same <00:35:46.230>thing.

504
00:35:47.340 --> 00:35:50.280
<00:35:47.340>The <00:35:47.540>only <00:35:47.740>difference <00:35:47.940>is <00:35:48.140>that <00:35:48.340>this <00:35:48.540>pipe, <00:35:48.740>uh,

505
00:35:50.600 --> 00:35:54.000
<00:35:50.600>function <00:35:50.740>cannot <00:35:50.880>accept <00:35:51.020>more <00:35:51.160>than <00:35:51.299>eight <00:35:51.440>operators, <00:35:51.580>if <00:35:51.720>I'm <00:35:51.860>not <00:35:52.000>wrong.

506
00:35:54.140 --> 00:35:58.600
<00:35:54.140>So <00:35:54.247>if <00:35:54.355>you <00:35:54.463>have <00:35:54.570>a <00:35:54.678>very <00:35:54.786>long <00:35:54.893>pipeline, <00:35:55.001>you <00:35:55.109>cannot <00:35:55.216>do <00:35:55.324>it <00:35:55.432>in <00:35:55.540>bungo.

507
00:35:58.600 --> 00:36:02.120
<00:35:58.600>You <00:35:58.799>have <00:35:59.000>to <00:35:59.200>do <00:35:59.400>either <00:35:59.600>in <00:35:59.799>multiple, <00:36:00.000>uh,

508
00:36:02.550 --> 00:36:06.800
<00:36:02.550>like <00:36:02.666>in <00:36:02.783>two <00:36:02.900>or <00:36:03.016>like <00:36:03.133>do <00:36:03.250>one <00:36:03.366>pipe <00:36:03.483>in <00:36:03.600>front <00:36:03.716>of <00:36:03.833>each <00:36:03.950>operator.

509
00:36:07.110 --> 00:36:11.520
<00:36:07.110>Otherwise <00:36:07.237>there <00:36:07.364>the, <00:36:07.491>the, <00:36:07.619>there <00:36:07.746>is <00:36:07.873>no <00:36:08.000>difference <00:36:08.128>other <00:36:08.255>than <00:36:08.382>technical. <00:36:08.510>Yeah.

510
00:36:14.090 --> 00:36:16.830
<00:36:14.090>All <00:36:14.245>right. <00:36:14.401>Another <00:36:14.556>one <00:36:14.712>is, <00:36:14.867>uh, <00:36:15.023>can <00:36:15.178>you <00:36:15.334>briefly <00:36:15.490>explain,

511
00:36:17.220 --> 00:36:20.470
<00:36:17.220>explain <00:36:17.453>the <00:36:17.686>key <00:36:17.919>differences <00:36:18.153>between <00:36:18.386>rx, <00:36:18.620>uh,

512
00:36:20.560 --> 00:36:25.270
<00:36:20.560>JavaScript <00:36:20.676>and <00:36:20.793>R <00:36:20.910>for <00:36:21.026>Java <00:36:21.143>when <00:36:21.259>it <00:36:21.376>comes <00:36:21.493>to <00:36:21.610>implementing <00:36:21.726>an <00:36:21.843>extending <00:36:21.960>operator?

513
00:36:25.730 --> 00:36:26.563
Mm-hmm.

514
00:36:26.930 --> 00:36:27.763
Uh,

515
00:36:28.270 --> 00:36:33.270
<00:36:28.270>I <00:36:28.397>don't <00:36:28.524>think <00:36:28.651>you <00:36:28.779>can <00:36:28.906>do <00:36:29.033>this <00:36:29.160>thing <00:36:29.288>in <00:36:29.415>Java <00:36:29.542>because, <00:36:29.670>uh,

516
00:36:33.610 --> 00:36:36.470
<00:36:33.610>you <00:36:33.785>don't <00:36:33.960>have <00:36:34.135>access. <00:36:34.310>So <00:36:34.485>the <00:36:34.660>only <00:36:34.835>way <00:36:35.010>to

517
00:36:37.980 --> 00:36:40.110
<00:36:37.980>pipe <00:36:38.330>different <00:36:38.680>op <00:36:39.030>piped, <00:36:39.380>uh,

518
00:36:40.110 --> 00:36:44.550
<00:36:40.110>custom <00:36:40.237>operators <00:36:40.364>in <00:36:40.491>RX <00:36:40.619>Java <00:36:40.746>is <00:36:40.873>to <00:36:41.000>add <00:36:41.128>them <00:36:41.255>to <00:36:41.382>the, <00:36:41.510>uh,

519
00:36:45.890 --> 00:36:48.390
<00:36:45.890>object <00:36:46.123>of, <00:36:46.356>uh, <00:36:46.589>observable <00:36:46.823>or <00:36:47.056>flowable. <00:36:47.290>Uh,

520
00:36:49.090 --> 00:36:50.870
<00:36:49.090>but <00:36:49.290>because <00:36:49.490>you <00:36:49.690>don't <00:36:49.890>have <00:36:50.090>access <00:36:50.290>to <00:36:50.490>that,

521
00:36:51.370 --> 00:36:54.790
<00:36:51.370>you <00:36:51.486>either <00:36:51.603>have <00:36:51.720>to <00:36:51.836>go <00:36:51.953>there <00:36:52.069>and <00:36:52.186>contribute <00:36:52.303>to <00:36:52.420>the <00:36:52.536>open <00:36:52.653>source <00:36:52.770>project,

522
00:36:55.450 --> 00:36:57.350
<00:36:55.450>or <00:36:55.683>you <00:36:55.916>basically <00:36:56.149>cannot <00:36:56.383>do <00:36:56.616>that. <00:36:56.850>You,

523
00:36:57.450 --> 00:37:01.710
<00:36:57.450>the <00:36:57.566>thing <00:36:57.683>you <00:36:57.799>can <00:36:57.916>do <00:36:58.033>is <00:36:58.149>to <00:36:58.266>create <00:36:58.383>functions <00:36:58.500>that <00:36:58.616>would <00:36:58.733>get, <00:36:58.850>uh,

524
00:37:03.520 --> 00:37:06.220
<00:37:03.520>an <00:37:03.720>observable <00:37:03.920>type <00:37:04.120>and <00:37:04.320>then <00:37:04.520>return <00:37:04.720>another <00:37:04.920>thing,

525
00:37:06.220 --> 00:37:08.500
<00:37:06.220>but <00:37:06.359>then <00:37:06.500>you <00:37:06.640>cannot <00:37:06.779>pipe <00:37:06.919>them <00:37:07.060>like <00:37:07.200>you <00:37:07.339>can <00:37:07.480>do <00:37:07.620>here.

526
00:37:08.920 --> 00:37:13.020
<00:37:08.920>So <00:37:09.047>you <00:37:09.174>can <00:37:09.301>have <00:37:09.429>a <00:37:09.556>function <00:37:09.683>like, <00:37:09.810>I <00:37:09.938>dunno, <00:37:10.065>flat <00:37:10.192>zip <00:37:10.320>map.

527
00:37:13.040 --> 00:37:15.860
<00:37:13.040>And <00:37:13.240>then <00:37:13.440>inside <00:37:13.640>that <00:37:13.840>you <00:37:14.040>have <00:37:14.240>this <00:37:14.440>pipeline,

528
00:37:15.880 --> 00:37:18.540
<00:37:15.880>and <00:37:16.080>then <00:37:16.280>after <00:37:16.480>that <00:37:16.680>you <00:37:16.880>continue <00:37:17.080>your <00:37:17.280>pipeline.

529
00:37:18.600 --> 00:37:23.060
<00:37:18.600>So <00:37:18.727>it's <00:37:18.854>a <00:37:18.981>bit <00:37:19.109>harder <00:37:19.236>to <00:37:19.363>read <00:37:19.490>because <00:37:19.618>you <00:37:19.745>have <00:37:19.872>to <00:37:20.000>jump

530
00:37:23.410 --> 00:37:25.980
<00:37:23.410>here <00:37:23.565>and <00:37:23.721>there, <00:37:23.876>and <00:37:24.032>it's <00:37:24.187>not <00:37:24.343>a <00:37:24.498>very <00:37:24.654>clean <00:37:24.810>pipeline.

531
00:37:26.600 --> 00:37:31.300
<00:37:26.600>And <00:37:26.799>maybe <00:37:27.000>another <00:37:27.200>difference <00:37:27.400>is <00:37:27.600>that <00:37:27.799>in <00:37:28.000>Rx

532
00:37:31.490 --> 00:37:35.300
<00:37:31.490>Java, <00:37:31.629>we <00:37:31.770>have <00:37:31.910>some, <00:37:32.049>we <00:37:32.189>have <00:37:32.330>different <00:37:32.470>types <00:37:32.609>of <00:37:32.750>observables, <00:37:32.890>uh,

533
00:37:35.360 --> 00:37:37.660
<00:37:35.360>in <00:37:35.535>terms <00:37:35.710>of <00:37:35.885>the <00:37:36.060>number <00:37:36.235>of <00:37:36.410>elements <00:37:36.585>they <00:37:36.760>have,

534
00:37:37.840 --> 00:37:40.780
<00:37:37.840>and <00:37:38.015>we <00:37:38.190>don't <00:37:38.365>have <00:37:38.540>that <00:37:38.715>differentiation <00:37:38.890>in <00:37:39.065>RX <00:37:39.240>jss.

535
00:37:41.120 --> 00:37:45.620
<00:37:41.120>And <00:37:41.213>I <00:37:41.306>think <00:37:41.400>that <00:37:41.493>that's <00:37:41.586>a <00:37:41.680>very <00:37:41.773>good <00:37:41.866>thing <00:37:41.960>to <00:37:42.053>do <00:37:42.146>next, <00:37:42.240>uh, <00:37:42.333>because <00:37:42.426>for <00:37:42.520>example,

536
00:37:45.640 --> 00:37:49.740
<00:37:45.640>in <00:37:45.795>Rx <00:37:45.951>Java, <00:37:46.106>we <00:37:46.262>have <00:37:46.417>single, <00:37:46.573>which <00:37:46.728>is <00:37:46.884>an, <00:37:47.040>uh,

537
00:37:50.160 --> 00:37:52.100
<00:37:50.160>an <00:37:50.393>observable <00:37:50.626>that <00:37:50.859>has <00:37:51.093>exactly <00:37:51.326>one <00:37:51.560>element,

538
00:37:52.840 --> 00:37:56.340
<00:37:52.840>and <00:37:52.980>that's <00:37:53.120>really <00:37:53.260>helpful <00:37:53.400>because <00:37:53.540>then <00:37:53.680>you <00:37:53.820>know, <00:37:53.960>then <00:37:54.100>you <00:37:54.240>know,

539
00:37:56.370 --> 00:37:59.220
<00:37:56.370>there's <00:37:56.569>exactly <00:37:56.770>one <00:37:56.970>thing <00:37:57.170>in <00:37:57.370>here. <00:37:57.569>Then <00:37:57.770>you,

540
00:38:00.040 --> 00:38:02.260
<00:38:00.040>you <00:38:00.273>can <00:38:00.506>do <00:38:00.740>things <00:38:00.973>differently. <00:38:01.206>For <00:38:01.440>example,

541
00:38:02.360 --> 00:38:05.620
<00:38:02.360>in <00:38:02.535>the <00:38:02.710>latest <00:38:02.885>R <00:38:03.060>X <00:38:03.235>J <00:38:03.410>S <00:38:03.585>implementation, <00:38:03.760>uh,

542
00:38:06.530 --> 00:38:08.640
<00:38:06.530>these <00:38:06.996>two <00:38:07.463>promise, <00:38:07.930>uh,

543
00:38:09.380 --> 00:38:14.260
<00:38:09.380>member <00:38:09.496>function <00:38:09.613>is <00:38:09.730>removed <00:38:09.846>because <00:38:09.963>you <00:38:10.080>don't <00:38:10.196>know <00:38:10.313>if <00:38:10.430>you <00:38:10.546>have <00:38:10.663>one <00:38:10.780>or

544
00:38:14.290 --> 00:38:17.140
<00:38:14.290>many, <00:38:14.523>uh, <00:38:14.756>members, <00:38:14.990>uh, <00:38:15.223>on <00:38:15.456>your <00:38:15.690>observable.

545
00:38:17.930 --> 00:38:21.230
<00:38:17.930>But <00:38:18.037>if <00:38:18.145>you <00:38:18.253>know <00:38:18.360>that <00:38:18.468>it's <00:38:18.576>a <00:38:18.683>single <00:38:18.791>and <00:38:18.899>it <00:38:19.006>has <00:38:19.114>exactly <00:38:19.222>one <00:38:19.330>member,

546
00:38:21.230 --> 00:38:26.150
<00:38:21.230>then <00:38:21.346>you <00:38:21.463>can <00:38:21.580>return <00:38:21.696>these <00:38:21.813>two <00:38:21.930>promise <00:38:22.046>thing <00:38:22.163>there. <00:38:22.280>Or, <00:38:22.396>or <00:38:22.513>maybe <00:38:22.630>introduce,

547
00:38:26.330 --> 00:38:30.510
<00:38:26.330>uh, <00:38:26.470>other <00:38:26.610>operators <00:38:26.750>that <00:38:26.890>only <00:38:27.029>work <00:38:27.170>for <00:38:27.310>things <00:38:27.450>with <00:38:27.590>one, <00:38:27.730>uh,

548
00:38:30.650 --> 00:38:31.710
<00:38:30.650>member <00:38:31.127>only <00:38:31.604>field.

549
00:38:34.040 --> 00:38:35.010
<00:38:34.040>Okay. <00:38:34.476>One <00:38:34.913>more.

550
00:38:35.310 --> 00:38:40.200
<00:38:35.310>What <00:38:35.437>are <00:38:35.564>the <00:38:35.691>benefits <00:38:35.819>of <00:38:35.946>separating <00:38:36.073>operators <00:38:36.200>from <00:38:36.328>the <00:38:36.455>observable <00:38:36.582>object <00:38:36.710>in

551
00:38:40.500 --> 00:38:41.440
<00:38:40.500>RX <00:38:41.346>JavaScript?

552
00:38:44.560 --> 00:38:49.060
<00:38:44.560>Uh, <00:38:45.026>I, <00:38:45.493>okay. <00:38:45.960>Yeah.

553
00:38:49.080 --> 00:38:53.340
<00:38:49.080>So <00:38:49.196>the, <00:38:49.313>the <00:38:49.430>benefit <00:38:49.546>is <00:38:49.663>that <00:38:49.779>all <00:38:49.896>these <00:38:50.013>things <00:38:50.130>that <00:38:50.246>we <00:38:50.363>did <00:38:50.480>here,

554
00:38:54.050 --> 00:38:56.860
<00:38:54.050>like <00:38:54.250>all <00:38:54.450>these <00:38:54.650>operators <00:38:54.850>that <00:38:55.050>I <00:38:55.250>created, <00:38:55.450>uh,

555
00:38:57.140 --> 00:39:02.020
<00:38:57.140>wouldn't <00:38:57.295>have <00:38:57.451>been <00:38:57.606>possible <00:38:57.762>if <00:38:57.917>these <00:38:58.073>operators <00:38:58.228>were <00:38:58.384>a <00:38:58.540>part

556
00:39:02.020 --> 00:39:04.340
<00:39:02.020>of <00:39:02.486>the <00:39:02.953>object. <00:39:03.420>Uh,

557
00:39:04.810 --> 00:39:07.180
<00:39:04.810>because <00:39:05.160>these <00:39:05.509>are <00:39:05.860>separated <00:39:06.210>now,

558
00:39:07.860 --> 00:39:12.740
<00:39:07.860>everyone <00:39:07.987>can <00:39:08.114>introduce <00:39:08.241>their <00:39:08.369>own <00:39:08.496>operators <00:39:08.623>and <00:39:08.750>just <00:39:08.878>pass <00:39:09.005>them <00:39:09.132>along <00:39:09.260>in,

559
00:39:12.890 --> 00:39:15.220
<00:39:12.890>into <00:39:13.123>this <00:39:13.356>pipeline. <00:39:13.589>If <00:39:13.823>you <00:39:14.056>want <00:39:14.290>to,

560
00:39:16.000 --> 00:39:18.980
<00:39:16.000>if <00:39:16.140>all <00:39:16.280>these <00:39:16.420>things <00:39:16.560>were <00:39:16.700>a <00:39:16.840>part <00:39:16.980>of <00:39:17.120>the, <00:39:17.260>uh, <00:39:17.400>cluster,

561
00:39:19.680 --> 00:39:24.060
<00:39:19.680>either <00:39:19.819>you <00:39:19.960>had <00:39:20.100>to <00:39:20.240>like <00:39:20.379>do <00:39:20.520>this <00:39:20.660>JavaScript <00:39:20.799>hack <00:39:20.940>to <00:39:21.080>add

562
00:39:24.650 --> 00:39:29.460
<00:39:24.650>that <00:39:24.850>your <00:39:25.050>custom <00:39:25.250>functions <00:39:25.450>to <00:39:25.650>this, <00:39:25.850>uh, <00:39:26.050>class,

563
00:39:30.080 --> 00:39:35.060
<00:39:30.080>uh, <00:39:30.196>definition, <00:39:30.313>or <00:39:30.430>you <00:39:30.546>couldn't <00:39:30.663>do <00:39:30.779>that, <00:39:30.896>you <00:39:31.013>had <00:39:31.130>to <00:39:31.246>do <00:39:31.363>this, <00:39:31.480>uh,

564
00:39:35.690 --> 00:39:39.060
<00:39:35.690>Java <00:39:35.790>style <00:39:35.890>that <00:39:35.990>you <00:39:36.090>create <00:39:36.190>a <00:39:36.290>function <00:39:36.390>and <00:39:36.490>you <00:39:36.590>cannot <00:39:36.690>really <00:39:36.790>use <00:39:36.890>it <00:39:36.990>into <00:39:37.090>the

565
00:39:39.420 --> 00:39:40.253
pipeline.

566
00:39:40.990 --> 00:39:41.920
<00:39:40.990>Yeah. <00:39:41.827>Okay.

567
00:39:41.920 --> 00:39:46.760
<00:39:41.920>And <00:39:42.027>can <00:39:42.135>you <00:39:42.243>say <00:39:42.350>some <00:39:42.458>real <00:39:42.566>life <00:39:42.673>scenarios <00:39:42.781>where <00:39:42.889>making <00:39:42.996>your <00:39:43.104>own <00:39:43.212>rx, <00:39:43.320>uh,

568
00:39:46.760 --> 00:39:50.000
<00:39:46.760>JavaScript <00:39:46.915>operators <00:39:47.071>can <00:39:47.226>prove <00:39:47.382>to <00:39:47.537>be <00:39:47.693>very <00:39:47.848>practical <00:39:48.004>and <00:39:48.160>beneficial?

569
00:39:50.950 --> 00:39:54.640
<00:39:50.950>Yeah, <00:39:51.183>so, <00:39:51.416>uh, <00:39:51.649>one <00:39:51.883>example <00:39:52.116>is <00:39:52.350>that,

570
00:39:55.980 --> 00:40:00.880
<00:39:55.980>so <00:39:56.080>we, <00:39:56.180>we <00:39:56.280>had <00:39:56.380>a <00:39:56.480>few <00:39:56.580>examples <00:39:56.680>in <00:39:56.780>these <00:39:56.880>slides, <00:39:56.980>but <00:39:57.080>for <00:39:57.180>example, <00:39:57.280>we <00:39:57.380>get,

571
00:40:01.020 --> 00:40:04.000
<00:40:01.020>uh, <00:40:01.300>all <00:40:01.580>the <00:40:01.860>users <00:40:02.140>from <00:40:02.420>some,

572
00:40:04.110 --> 00:40:07.160
<00:40:04.110>some <00:40:04.265>function <00:40:04.421>and <00:40:04.576>we <00:40:04.732>want <00:40:04.887>to <00:40:05.043>get <00:40:05.198>all <00:40:05.354>the <00:40:05.510>posts,

573
00:40:08.060 --> 00:40:13.000
<00:40:08.060>and <00:40:08.160>then <00:40:08.259>in <00:40:08.360>the <00:40:08.460>next <00:40:08.560>stage <00:40:08.660>we <00:40:08.759>need <00:40:08.860>both <00:40:08.960>the <00:40:09.060>users <00:40:09.160>and <00:40:09.259>the <00:40:09.360>posts <00:40:09.460>because

574
00:40:13.110 --> 00:40:17.690
<00:40:13.110>this <00:40:13.285>function <00:40:13.460>wants <00:40:13.635>this <00:40:13.810>information. <00:40:13.985>And <00:40:14.160>if <00:40:14.335>you <00:40:14.510>don't,

575
00:40:17.790 --> 00:40:22.410
<00:40:17.790>so <00:40:17.945>you <00:40:18.101>can, <00:40:18.256>for <00:40:18.412>example, <00:40:18.567>using <00:40:18.723>these <00:40:18.878>operators <00:40:19.034>easily, <00:40:19.190>uh,

576
00:40:22.710 --> 00:40:27.010
<00:40:22.710>do <00:40:22.810>that, <00:40:22.910>you <00:40:23.010>can <00:40:23.110>basically <00:40:23.210>zip <00:40:23.310>them <00:40:23.410>together. <00:40:23.510>If <00:40:23.610>you <00:40:23.710>want <00:40:23.810>to <00:40:23.910>write <00:40:24.010>it <00:40:24.110>yourself,

577
00:40:27.010 --> 00:40:30.850
<00:40:27.010>then <00:40:27.165>your <00:40:27.321>code <00:40:27.476>is <00:40:27.632>not <00:40:27.787>that <00:40:27.943>readable. <00:40:28.098>So <00:40:28.254>in <00:40:28.410>general,

578
00:40:31.910 --> 00:40:36.090
<00:40:31.910>in <00:40:32.065>in <00:40:32.221>programming <00:40:32.376>then <00:40:32.532>you <00:40:32.687>have <00:40:32.843>a <00:40:32.998>very <00:40:33.154>low <00:40:33.310>detailed,

579
00:40:36.800 --> 00:40:37.810
<00:40:36.800>ugly <00:40:37.103>piece <00:40:37.406>of <00:40:37.709>code.

580
00:40:37.830 --> 00:40:42.290
<00:40:37.830>You <00:40:37.923>usually <00:40:38.016>put <00:40:38.110>it <00:40:38.203>into <00:40:38.296>a <00:40:38.390>function <00:40:38.483>and <00:40:38.576>name <00:40:38.670>it <00:40:38.763>properly <00:40:38.856>so <00:40:38.950>that <00:40:39.043>the <00:40:39.136>next <00:40:39.230>person

581
00:40:42.290 --> 00:40:45.570
<00:40:42.290>that <00:40:42.445>comes <00:40:42.601>and <00:40:42.756>reads <00:40:42.912>the <00:40:43.067>code <00:40:43.223>notes, <00:40:43.378>okay, <00:40:43.534>I <00:40:43.690>understand.

582
00:40:45.590 --> 00:40:50.210
<00:40:45.590>Now <00:40:45.717>this <00:40:45.844>part <00:40:45.971>does <00:40:46.099>this, <00:40:46.226>if <00:40:46.353>you <00:40:46.480>write <00:40:46.608>down <00:40:46.735>this <00:40:46.862>load, <00:40:46.990>uh,

583
00:40:50.300 --> 00:40:55.130
<00:40:50.300>level <00:40:50.427>code <00:40:50.554>inside <00:40:50.681>your <00:40:50.809>high <00:40:50.936>level <00:40:51.063>function, <00:40:51.190>then <00:40:51.318>it's <00:40:51.445>not <00:40:51.572>really <00:40:51.700>readable.

584
00:40:55.230 --> 00:40:59.630
<00:40:55.230>And <00:40:55.357>by <00:40:55.484>creating <00:40:55.611>your <00:40:55.739>own <00:40:55.866>operators, <00:40:55.993>you <00:40:56.120>can <00:40:56.248>basically <00:40:56.375>do <00:40:56.502>that. <00:40:56.630>Uh,

585
00:40:59.850 --> 00:41:04.710
<00:40:59.850>you <00:40:59.990>can <00:41:00.130>create <00:41:00.270>your <00:41:00.410>own <00:41:00.549>functions <00:41:00.690>and <00:41:00.830>use <00:41:00.970>them <00:41:01.110>alongside <00:41:01.250>the

586
00:41:05.000 --> 00:41:09.630
<00:41:05.000>usual, <00:41:05.155>uh, <00:41:05.311>operators <00:41:05.466>that <00:41:05.622>RX <00:41:05.777>js, <00:41:05.933>uh, <00:41:06.088>has, <00:41:06.244>like <00:41:06.400>in,

587
00:41:09.650 --> 00:41:10.483
<00:41:09.650>in <00:41:10.024>the <00:41:10.399>library.

588
00:41:11.950 --> 00:41:15.680
<00:41:11.950>Perfect. <00:41:12.066>And, <00:41:12.183>uh, <00:41:12.299>you <00:41:12.416>will <00:41:12.533>see <00:41:12.649>the <00:41:12.766>next <00:41:12.883>one <00:41:13.000>very <00:41:13.116>soon <00:41:13.233>on <00:41:13.350>screen.

589
00:41:16.300 --> 00:41:18.280
<00:41:16.300>You <00:41:16.766>mentioned <00:41:17.233>the <00:41:17.700>rx,

590
00:41:18.290 --> 00:41:21.920
<00:41:18.290>JavaScript <00:41:18.445>X <00:41:18.601>library <00:41:18.756>containing <00:41:18.912>operators <00:41:19.067>who <00:41:19.223>are <00:41:19.378>raised <00:41:19.534>and <00:41:19.690>tops.

591
00:41:22.330 --> 00:41:26.360
<00:41:22.330>Could <00:41:22.437>you <00:41:22.545>give <00:41:22.653>us <00:41:22.760>some <00:41:22.868>examples <00:41:22.976>of <00:41:23.083>the <00:41:23.191>types <00:41:23.299>of <00:41:23.406>operators <00:41:23.514>available <00:41:23.622>in <00:41:23.730>rx

592
00:41:26.360 --> 00:41:29.440
<00:41:26.360>JavaScript <00:41:26.535>X <00:41:26.710>and <00:41:26.885>how <00:41:27.060>they <00:41:27.235>can <00:41:27.410>simplify <00:41:27.585>common <00:41:27.760>tasks?

593
00:41:30.260 --> 00:41:35.080
<00:41:30.260>Yes, <00:41:30.460>uh, <00:41:30.660>okay. <00:41:30.860>One <00:41:31.060>example <00:41:31.260>is <00:41:31.460>that, <00:41:31.660>uh,

594
00:41:35.460 --> 00:41:36.293
<00:41:35.460>we <00:41:36.209>have,

595
00:41:36.410 --> 00:41:40.840
<00:41:36.410>maybe <00:41:36.565>I <00:41:36.721>can <00:41:36.876>get <00:41:37.032>some <00:41:37.187>examples <00:41:37.343>from <00:41:37.498>this <00:41:37.654>block <00:41:37.810>here.

596
00:41:41.220 --> 00:41:43.200
<00:41:41.220>So <00:41:41.500>for <00:41:41.779>example, <00:41:42.060>we <00:41:42.339>have, <00:41:42.620>uh,

597
00:41:49.630 --> 00:41:54.460
<00:41:49.630>We <00:41:49.830>have, <00:41:50.030>uh, <00:41:50.230>a <00:41:50.430>function <00:41:50.630>that <00:41:50.830>returns, <00:41:51.030>uh,

598
00:41:55.210 --> 00:41:58.340
<00:41:55.210>something, <00:41:55.410>but <00:41:55.610>the, <00:41:55.810>the, <00:41:56.010>the <00:41:56.210>return <00:41:56.410>function <00:41:56.610>is,

599
00:41:58.760 --> 00:42:01.540
<00:41:58.760>so <00:41:59.040>return <00:41:59.320>type <00:41:59.600>is <00:41:59.880>unobservable <00:42:00.160>itself,

600
00:42:01.880 --> 00:42:05.580
<00:42:01.880>and <00:42:02.020>we <00:42:02.160>need <00:42:02.300>both <00:42:02.440>of <00:42:02.580>these <00:42:02.720>values <00:42:02.860>in <00:42:03.000>inside <00:42:03.140>the <00:42:03.280>pipeline.

601
00:42:05.760 --> 00:42:10.270
<00:42:05.760>And <00:42:05.860>we <00:42:05.960>can <00:42:06.060>do <00:42:06.160>this <00:42:06.260>flat <00:42:06.360>zip <00:42:06.460>map <00:42:06.560>here <00:42:06.660>and <00:42:06.760>then <00:42:06.860>keep <00:42:06.960>both <00:42:07.060>of <00:42:07.160>these,

602
00:42:10.690 --> 00:42:13.030
<00:42:10.690>uh, <00:42:10.970>values <00:42:11.250>in <00:42:11.530>the <00:42:11.810>next <00:42:12.090>line.

603
00:42:13.030 --> 00:42:16.830
<00:42:13.030>And <00:42:13.157>then <00:42:13.284>we <00:42:13.411>have <00:42:13.539>something <00:42:13.666>else <00:42:13.793>that <00:42:13.920>is <00:42:14.048>called <00:42:14.175>project <00:42:14.302>two <00:42:14.430>former.

604
00:42:17.090 --> 00:42:18.910
<00:42:17.090>And <00:42:17.556>then <00:42:18.023>after <00:42:18.490>we,

605
00:42:19.170 --> 00:42:22.230
<00:42:19.170>we <00:42:19.277>are <00:42:19.385>finished <00:42:19.493>with <00:42:19.600>the <00:42:19.708>thing <00:42:19.816>that <00:42:19.923>we <00:42:20.031>wanted <00:42:20.139>to <00:42:20.246>do <00:42:20.354>with <00:42:20.462>both <00:42:20.570>values,

606
00:42:22.450 --> 00:42:26.910
<00:42:22.450>we <00:42:22.543>can <00:42:22.636>get <00:42:22.730>rid <00:42:22.823>of <00:42:22.916>one <00:42:23.009>of <00:42:23.103>them <00:42:23.196>and <00:42:23.290>then, <00:42:23.383>uh, <00:42:23.476>keep <00:42:23.569>only <00:42:23.663>one <00:42:23.756>of <00:42:23.850>these.

607
00:42:26.930 --> 00:42:30.710
<00:42:26.930>So <00:42:27.037>for <00:42:27.145>example, <00:42:27.253>project <00:42:27.360>two <00:42:27.468>former <00:42:27.576>is <00:42:27.683>then <00:42:27.791>you <00:42:27.899>have <00:42:28.006>a <00:42:28.114>couple <00:42:28.222>of <00:42:28.330>two,

608
00:42:30.710 --> 00:42:34.230
<00:42:30.710>and <00:42:30.885>then <00:42:31.060>you <00:42:31.235>want <00:42:31.410>to <00:42:31.585>keep <00:42:31.760>the <00:42:31.935>first, <00:42:32.110>uh,

609
00:42:34.660 --> 00:42:39.070
<00:42:34.660>part <00:42:34.787>of <00:42:34.914>it <00:42:35.041>only, <00:42:35.169>and <00:42:35.296>then <00:42:35.423>you, <00:42:35.550>it'll <00:42:35.678>remove <00:42:35.805>your, <00:42:35.932>uh, <00:42:36.060>second,

610
00:42:39.530 --> 00:42:43.640
<00:42:39.530>uh, <00:42:39.685>part <00:42:39.841>of <00:42:39.996>these <00:42:40.152>couples, <00:42:40.307>uh, <00:42:40.463>from <00:42:40.618>all <00:42:40.774>these <00:42:40.930>members.

611
00:42:44.060 --> 00:42:44.740
<00:42:44.060>Or <00:42:44.366>for <00:42:44.671>example,

612
00:42:44.740 --> 00:42:49.560
<00:42:44.740>you <00:42:44.856>have <00:42:44.973>a <00:42:45.089>list <00:42:45.206>of <00:42:45.323>things <00:42:45.439>and <00:42:45.556>you <00:42:45.673>want <00:42:45.790>to <00:42:45.906>apply <00:42:46.023>something <00:42:46.140>in

613
00:42:49.620 --> 00:42:52.760
<00:42:49.620>all <00:42:49.795>of <00:42:49.970>these. <00:42:50.145>It's <00:42:50.319>not <00:42:50.495>as <00:42:50.670>hard <00:42:50.845>to <00:42:51.020>implement.

614
00:42:53.940 --> 00:42:56.320
<00:42:53.940>But <00:42:54.173>for <00:42:54.406>example, <00:42:54.640>if <00:42:54.873>you <00:42:55.106>want <00:42:55.340>to

615
00:42:58.120 --> 00:43:02.470
<00:42:58.120>apply <00:42:58.236>something <00:42:58.353>that <00:42:58.470>returns <00:42:58.586>an <00:42:58.703>observable <00:42:58.819>on <00:42:58.936>all <00:42:59.053>these <00:42:59.170>members <00:42:59.286>of <00:42:59.403>this <00:42:59.520>list

616
00:43:02.500 --> 00:43:07.030
<00:43:02.500>that <00:43:02.616>are <00:43:02.733>also <00:43:02.850>wrapped <00:43:02.966>in <00:43:03.083>observables, <00:43:03.200>then <00:43:03.316>it, <00:43:03.433>it <00:43:03.550>makes <00:43:03.666>a <00:43:03.783>huge <00:43:03.900>code,

617
00:43:07.030 --> 00:43:08.590
<00:43:07.030>and <00:43:07.230>then <00:43:07.430>it's <00:43:07.630>a <00:43:07.830>very <00:43:08.030>low <00:43:08.230>level <00:43:08.430>code.

618
00:43:08.970 --> 00:43:12.950
<00:43:08.970>You <00:43:09.097>can <00:43:09.224>do <00:43:09.351>something <00:43:09.479>like <00:43:09.606>list <00:43:09.733>map <00:43:09.860>or <00:43:09.988>flat <00:43:10.115>list, <00:43:10.242>list <00:43:10.370>map,

619
00:43:12.950 --> 00:43:17.870
<00:43:12.950>and <00:43:13.077>then <00:43:13.204>it'll <00:43:13.331>transform <00:43:13.459>all <00:43:13.586>these <00:43:13.713>members <00:43:13.840>of <00:43:13.968>these, <00:43:14.095>uh, <00:43:14.222>list <00:43:14.350>members.

620
00:43:18.170 --> 00:43:22.590
<00:43:18.170>And <00:43:18.277>then <00:43:18.385>you <00:43:18.493>don't <00:43:18.600>have <00:43:18.708>to <00:43:18.816>deal <00:43:18.923>with <00:43:19.031>this, <00:43:19.139>uh, <00:43:19.246>low <00:43:19.354>level, <00:43:19.462>uh, <00:43:19.570>things.

621
00:43:25.830 --> 00:43:29.570
<00:43:25.830>Yes. <00:43:25.985>And, <00:43:26.141>and <00:43:26.296>yeah. <00:43:26.452>So <00:43:26.607>there <00:43:26.763>are <00:43:26.918>multiple <00:43:27.074>examples. <00:43:27.230>Uh,

622
00:43:30.960 --> 00:43:35.720
<00:43:30.960>I <00:43:31.067>can <00:43:31.175>give <00:43:31.283>more <00:43:31.390>examples, <00:43:31.498>but <00:43:31.606>yeah, <00:43:31.713>so, <00:43:31.821>and <00:43:31.929>another <00:43:32.036>thing <00:43:32.144>is <00:43:32.252>that, <00:43:32.360>uh,

623
00:43:36.880 --> 00:43:41.270
<00:43:36.880>maybe <00:43:37.007>that's, <00:43:37.134>that's <00:43:37.261>an <00:43:37.389>abuse, <00:43:37.516>but <00:43:37.643>we <00:43:37.770>have <00:43:37.898>this <00:43:38.025>tap <00:43:38.152>function, <00:43:38.280>uh,

624
00:43:41.410 --> 00:43:44.550
<00:43:41.410>on <00:43:41.690>RX <00:43:41.970>js, <00:43:42.250>which <00:43:42.529>basically, <00:43:42.810>uh,

625
00:43:46.240 --> 00:43:50.690
<00:43:46.240>does <00:43:46.347>something <00:43:46.455>like, <00:43:46.563>like <00:43:46.670>you <00:43:46.778>want <00:43:46.886>to <00:43:46.993>have <00:43:47.101>something <00:43:47.209>to <00:43:47.316>do <00:43:47.424>with <00:43:47.532>this, <00:43:47.640>uh,

626
00:43:50.690 --> 00:43:55.050
<00:43:50.690>value <00:43:50.797>at <00:43:50.905>this <00:43:51.013>point, <00:43:51.120>but <00:43:51.228>you <00:43:51.336>want, <00:43:51.443>uh, <00:43:51.551>this <00:43:51.659>to <00:43:51.766>have <00:43:51.874>a <00:43:51.982>side <00:43:52.090>effect.

627
00:43:55.070 --> 00:43:59.930
<00:43:55.070>And <00:43:55.225>this <00:43:55.381>tab <00:43:55.536>basically <00:43:55.692>runs <00:43:55.847>some <00:43:56.003>function, <00:43:56.158>but <00:43:56.314>did, <00:43:56.470>uh,

628
00:44:00.850 --> 00:44:03.370
<00:44:00.850>returned, <00:44:01.200>uh, <00:44:01.549>value <00:44:01.900>is <00:44:02.250>discarded.

629
00:44:04.430 --> 00:44:06.250
<00:44:04.430>The <00:44:04.663>problem <00:44:04.896>with <00:44:05.129>tab <00:44:05.363>is <00:44:05.596>that <00:44:05.830>you,

630
00:44:07.910 --> 00:44:10.450
<00:44:07.910>it <00:44:08.143>doesn't <00:44:08.376>block <00:44:08.609>your <00:44:08.843>pipeline. <00:44:09.076>So, <00:44:09.310>uh,

631
00:44:10.560 --> 00:44:15.250
<00:44:10.560>sometimes <00:44:10.687>I <00:44:10.814>wanted <00:44:10.941>to <00:44:11.069>do <00:44:11.196>something <00:44:11.323>and <00:44:11.450>then <00:44:11.578>block <00:44:11.705>the <00:44:11.832>pipeline <00:44:11.960>from

632
00:44:15.420 --> 00:44:18.930
<00:44:15.420>going <00:44:15.620>on. <00:44:15.820>So <00:44:16.020>I <00:44:16.220>would <00:44:16.420>zip <00:44:16.620>this, <00:44:16.820>uh,

633
00:44:20.070 --> 00:44:24.570
<00:44:20.070>result <00:44:20.170>and <00:44:20.270>then <00:44:20.370>project <00:44:20.470>to <00:44:20.570>form <00:44:20.670>in <00:44:20.770>the <00:44:20.870>next <00:44:20.970>stage <00:44:21.070>so <00:44:21.170>that <00:44:21.270>it <00:44:21.370>was <00:44:21.470>actually

634
00:44:24.570 --> 00:44:28.370
<00:44:24.570>injected <00:44:24.677>into <00:44:24.785>pipeline <00:44:24.893>and <00:44:25.000>then <00:44:25.108>discard <00:44:25.216>it <00:44:25.323>in <00:44:25.431>the <00:44:25.539>next <00:44:25.646>level <00:44:25.754>so <00:44:25.862>that <00:44:25.970>you,

635
00:44:28.370 --> 00:44:32.680
<00:44:28.370>you <00:44:28.486>had <00:44:28.603>a <00:44:28.720>very, <00:44:28.836>uh, <00:44:28.953>you <00:44:29.069>had <00:44:29.186>a <00:44:29.303>blocking <00:44:29.420>tab, <00:44:29.536>so <00:44:29.653>to <00:44:29.770>say.

636
00:44:33.270 --> 00:44:36.680
<00:44:33.270>Yeah. <00:44:33.386>Things <00:44:33.503>like <00:44:33.620>that. <00:44:33.736>So <00:44:33.853>there <00:44:33.970>are, <00:44:34.086>there <00:44:34.203>are <00:44:34.320>many, <00:44:34.436>uh, <00:44:34.553>different, <00:44:34.670>uh,

637
00:44:38.180 --> 00:44:39.760
<00:44:38.180>use <00:44:38.460>cases. <00:44:38.740>I <00:44:39.020>would <00:44:39.299>say. <00:44:39.580>Uh,

638
00:44:40.040 --> 00:44:44.960
<00:44:40.040>I <00:44:40.195>can <00:44:40.351>also <00:44:40.506>create <00:44:40.662>another <00:44:40.817>blog <00:44:40.973>post <00:44:41.128>with, <00:44:41.284>with <00:44:41.440>different,

639
00:44:45.100 --> 00:44:47.680
<00:44:45.100>uh, <00:44:45.333>use <00:44:45.566>cases <00:44:45.799>of <00:44:46.033>these <00:44:46.266>operators <00:44:46.500>maybe.

640
00:44:48.940 --> 00:44:53.230
<00:44:48.940>Yeah, <00:44:49.067>that <00:44:49.194>might, <00:44:49.321>it <00:44:49.449>might <00:44:49.576>be <00:44:49.703>useful <00:44:49.830>for, <00:44:49.958>for <00:44:50.085>the <00:44:50.212>viewers. <00:44:50.340>Uh,

641
00:44:53.290 --> 00:44:57.190
<00:44:53.290>we <00:44:53.390>actually <00:44:53.490>have <00:44:53.590>collected <00:44:53.690>more <00:44:53.790>questions. <00:44:53.890>We <00:44:53.990>have <00:44:54.090>at <00:44:54.190>least <00:44:54.290>nine <00:44:54.390>to <00:44:54.490>go, <00:44:54.590>so <00:44:54.690>we

642
00:44:57.340 --> 00:44:59.150
<00:44:57.340>Okay. <00:44:57.540>Okay. <00:44:57.740>I <00:44:57.940>have <00:44:58.140>to <00:44:58.340>be <00:44:58.540>fast. <00:44:58.740>Yeah,

643
00:44:59.860 --> 00:45:02.150
<00:44:59.860>Yeah. <00:45:00.035>No, <00:45:00.210>no, <00:45:00.385>no. <00:45:00.560>Don't <00:45:00.735>worry <00:45:00.910>about <00:45:01.085>being <00:45:01.260>fast.

644
00:45:02.430 --> 00:45:03.550
<00:45:02.430>'cause <00:45:02.631>also <00:45:02.833>if <00:45:03.034>they <00:45:03.236>have <00:45:03.438>questions,

645
00:45:03.550 --> 00:45:06.190
<00:45:03.550>they <00:45:03.632>will <00:45:03.714>reach <00:45:03.797>out <00:45:03.879>to <00:45:03.961>you <00:45:04.044>just <00:45:04.126>to <00:45:04.208>let <00:45:04.291>you <00:45:04.373>know <00:45:04.455>that <00:45:04.538>it <00:45:04.620>is <00:45:04.702>a <00:45:04.785>topic <00:45:04.867>that <00:45:04.950>has

646
00:45:06.190 --> 00:45:09.750
<00:45:06.190>generated <00:45:06.330>a <00:45:06.470>lot <00:45:06.610>of <00:45:06.750>questions, <00:45:06.890>and <00:45:07.030>that's <00:45:07.170>great. <00:45:07.310>Next <00:45:07.450>one <00:45:07.590>is,

647
00:45:09.890 --> 00:45:13.950
<00:45:09.890>are <00:45:10.006>there <00:45:10.123>any <00:45:10.240>common <00:45:10.356>pitfalls <00:45:10.473>on <00:45:10.589>challenges <00:45:10.706>developers <00:45:10.823>should <00:45:10.940>be <00:45:11.056>aware <00:45:11.173>of <00:45:11.290>when

648
00:45:14.150 --> 00:45:17.030
<00:45:14.150>creating <00:45:14.430>their <00:45:14.710>own <00:45:14.990>RX <00:45:15.270>JavaScript <00:45:15.550>operators?

649
00:45:17.820 --> 00:45:19.510
<00:45:17.820>Yeah, <00:45:18.100>so <00:45:18.380>one <00:45:18.660>thing <00:45:18.940>that, <00:45:19.220>uh,

650
00:45:20.060 --> 00:45:25.030
<00:45:20.060>gave <00:45:20.215>us <00:45:20.371>troubles <00:45:20.526>a <00:45:20.682>few <00:45:20.837>times <00:45:20.993>was, <00:45:21.148>uh, <00:45:21.304>error <00:45:21.460>handling.

651
00:45:25.030 --> 00:45:28.030
<00:45:25.030>Because <00:45:25.263>usually <00:45:25.496>when, <00:45:25.730>when <00:45:25.963>we <00:45:26.196>write <00:45:26.430>code,

652
00:45:28.090 --> 00:45:32.750
<00:45:28.090>we <00:45:28.230>write <00:45:28.370>code <00:45:28.510>for <00:45:28.650>the <00:45:28.790>happy <00:45:28.930>scenarios. <00:45:29.070>But, <00:45:29.210>uh, <00:45:29.350>like <00:45:29.490>in,

653
00:45:32.750 --> 00:45:33.583
<00:45:32.750>in <00:45:33.124>many <00:45:33.499>cases,

654
00:45:34.530 --> 00:45:39.190
<00:45:34.530>an <00:45:34.657>error <00:45:34.784>happens <00:45:34.911>and <00:45:35.039>also <00:45:35.166>error <00:45:35.293>handling <00:45:35.420>is <00:45:35.548>a <00:45:35.675>complicated <00:45:35.802>thing, <00:45:35.930>uh,

655
00:45:39.190 --> 00:45:40.390
<00:45:39.190>in <00:45:39.550>terms <00:45:39.910>of <00:45:40.270>rts.

656
00:45:40.410 --> 00:45:44.950
<00:45:40.410>And <00:45:40.565>yet <00:45:40.721>I <00:45:40.876>would <00:45:41.032>say <00:45:41.187>that <00:45:41.343>that <00:45:41.498>was <00:45:41.654>maybe <00:45:41.810>the

657
00:45:45.820 --> 00:45:50.630
<00:45:45.820>most <00:45:45.947>tricky <00:45:46.074>part. <00:45:46.201>So <00:45:46.329>to, <00:45:46.456>to <00:45:46.583>have <00:45:46.710>this <00:45:46.838>error <00:45:46.965>handled <00:45:47.092>correct, <00:45:47.220>correctly,

658
00:45:50.810 --> 00:45:52.650
<00:45:50.810>or, <00:45:51.276>or, <00:45:51.743>uh, <00:45:52.210>so,

659
00:45:52.830 --> 00:45:55.850
<00:45:52.830>so <00:45:52.957>that <00:45:53.084>your <00:45:53.211>operator <00:45:53.339>doesn't <00:45:53.466>swallow <00:45:53.593>the <00:45:53.720>error <00:45:53.848>or <00:45:53.975>things <00:45:54.102>like <00:45:54.230>that.

660
00:45:55.950 --> 00:45:57.770
<00:45:55.950>So <00:45:56.149>you <00:45:56.350>have <00:45:56.549>to <00:45:56.750>be <00:45:56.950>careful <00:45:57.149>with <00:45:57.350>that.

661
00:45:58.470 --> 00:46:01.930
<00:45:58.470>And <00:45:58.703>also <00:45:58.936>to <00:45:59.169>have <00:45:59.403>these <00:45:59.636>types, <00:45:59.870>right?

662
00:46:01.930 --> 00:46:05.080
<00:46:01.930>Because <00:46:02.210>if <00:46:02.490>you <00:46:02.770>have <00:46:03.049>a <00:46:03.330>very,

663
00:46:06.000 --> 00:46:09.600
<00:46:06.000>a <00:46:06.116>small <00:46:06.233>issue, <00:46:06.350>like <00:46:06.466>a <00:46:06.583>small <00:46:06.700>problem <00:46:06.816>with <00:46:06.933>the <00:46:07.050>types <00:46:07.166>in <00:46:07.283>the <00:46:07.400>beginning,

664
00:46:09.600 --> 00:46:12.280
<00:46:09.600>then <00:46:09.833>it <00:46:10.066>might <00:46:10.299>also <00:46:10.533>lead <00:46:10.766>to, <00:46:11.000>uh,

665
00:46:13.110 --> 00:46:16.160
<00:46:13.110>dysfunctional <00:46:13.810>operator. <00:46:14.510>Yeah.

666
00:46:17.520 --> 00:46:18.353
Alright.

667
00:46:18.750 --> 00:46:23.250
<00:46:18.750>And <00:46:18.905>what <00:46:19.061>are <00:46:19.216>some <00:46:19.372>innovative <00:46:19.527>or <00:46:19.683>unique <00:46:19.838>custom <00:46:19.994>operators <00:46:20.150>that

668
00:46:23.380 --> 00:46:28.010
<00:46:23.380>developers <00:46:23.496>have <00:46:23.613>created <00:46:23.730>and <00:46:23.846>have <00:46:23.963>they <00:46:24.080>benefited <00:46:24.196>the <00:46:24.313>R <00:46:24.430>X <00:46:24.546>D <00:46:24.663>A <00:46:24.780>S

669
00:46:28.010 --> 00:46:28.843
community?

670
00:46:29.750 --> 00:46:33.050
<00:46:29.750>Uh, <00:46:30.100>good <00:46:30.450>question. <00:46:30.800>I, <00:46:31.150>uh,

671
00:46:34.550 --> 00:46:36.780
<00:46:34.550>don't <00:46:34.900>know <00:46:35.250>much, <00:46:35.600>uh, <00:46:35.950>are,

672
00:46:37.000 --> 00:46:40.500
<00:46:37.000>so <00:46:37.200>the <00:46:37.400>GitHub <00:46:37.600>at <00:46:37.800>some <00:46:38.000>point <00:46:38.200>started, <00:46:38.400>uh,

673
00:46:40.790 --> 00:46:43.780
<00:46:40.790>collecting <00:46:41.070>information <00:46:41.350>about <00:46:41.630>who <00:46:41.910>uses, <00:46:42.190>uh,

674
00:46:45.780 --> 00:46:49.470
<00:46:45.780>your, <00:46:45.935>uh, <00:46:46.091>N <00:46:46.246>P <00:46:46.402>M <00:46:46.557>packages <00:46:46.713>or <00:46:46.868>your <00:46:47.024>code. <00:46:47.180>Uh,

675
00:46:50.050 --> 00:46:54.830
<00:46:50.050>and <00:46:50.157>I <00:46:50.265>saw <00:46:50.373>a <00:46:50.480>few <00:46:50.588>people, <00:46:50.696>uh, <00:46:50.803>a <00:46:50.911>few <00:46:51.019>projects <00:46:51.126>using <00:46:51.234>R <00:46:51.342>HSS <00:46:51.450>X,

676
00:46:55.490 --> 00:46:58.110
<00:46:55.490>but <00:46:55.770>I <00:46:56.049>don't <00:46:56.330>have <00:46:56.609>exact <00:46:56.890>numbers.

677
00:46:58.550 --> 00:47:02.750
<00:46:58.550>I <00:46:58.690>also <00:46:58.830>have <00:46:58.970>numbers <00:46:59.110>on <00:46:59.250>the <00:46:59.390>N <00:46:59.530>P <00:46:59.670>M <00:46:59.810>uh, <00:46:59.950>repository,

678
00:47:03.190 --> 00:47:06.950
<00:47:03.190>N <00:47:03.330>P <00:47:03.470>M <00:47:03.610>package, <00:47:03.750>uh, <00:47:03.890>downloads. <00:47:04.030>But, <00:47:04.170>so <00:47:04.310>that's <00:47:04.450>about <00:47:04.590>it.

679
00:47:07.030 --> 00:47:11.030
<00:47:07.030>I <00:47:07.146>don't <00:47:07.263>know <00:47:07.380>how <00:47:07.496>people <00:47:07.613>use <00:47:07.730>it <00:47:07.846>or <00:47:07.963>how <00:47:08.080>often <00:47:08.196>they <00:47:08.313>use <00:47:08.430>it.

680
00:47:12.780 --> 00:47:17.510
<00:47:12.780>Yeah. <00:47:12.907>Maybe, <00:47:13.034>uh, <00:47:13.161>it <00:47:13.289>is <00:47:13.416>connected <00:47:13.543>to, <00:47:13.670>uh, <00:47:13.798>our, <00:47:13.925>uh, <00:47:14.052>question <00:47:14.180>here.

681
00:47:17.530 --> 00:47:21.150
<00:47:17.530>How <00:47:17.670>can <00:47:17.810>developers <00:47:17.950>contribute <00:47:18.090>their <00:47:18.230>custom <00:47:18.370>operators <00:47:18.510>to <00:47:18.650>the <00:47:18.790>RX <00:47:18.930>Yes.

682
00:47:21.150 --> 00:47:24.630
<00:47:21.150>Community <00:47:21.257>or <00:47:21.365>share <00:47:21.473>them <00:47:21.580>as <00:47:21.688>a <00:47:21.796>third <00:47:21.903>party <00:47:22.011>libraries <00:47:22.119>for <00:47:22.226>all <00:47:22.334>those <00:47:22.442>to <00:47:22.550>use?

683
00:47:25.380 --> 00:47:25.670
Yeah,

684
00:47:25.670 --> 00:47:30.520
<00:47:25.670>so <00:47:25.770>you <00:47:25.870>can <00:47:25.970>basically <00:47:26.070>create <00:47:26.170>your <00:47:26.270>own <00:47:26.370>library <00:47:26.470>or <00:47:26.570>you <00:47:26.670>can <00:47:26.770>add <00:47:26.870>them <00:47:26.970>to <00:47:27.070>this

685
00:47:30.740 --> 00:47:34.360
<00:47:30.740>RX <00:47:30.879>J <00:47:31.020>S <00:47:31.160>X <00:47:31.299>library <00:47:31.439>that <00:47:31.580>I'm <00:47:31.720>the, <00:47:31.859>uh, <00:47:32.000>maintainer <00:47:32.140>of.

686
00:47:34.700 --> 00:47:37.360
<00:47:34.700>So <00:47:34.933>if <00:47:35.166>you <00:47:35.399>have, <00:47:35.633>uh, <00:47:35.866>an <00:47:36.100>idea,

687
00:47:37.540 --> 00:47:42.440
<00:47:37.540>you <00:47:37.640>can <00:47:37.740>basically <00:47:37.840>reach <00:47:37.940>out <00:47:38.040>to <00:47:38.140>me <00:47:38.240>directly <00:47:38.340>or <00:47:38.440>create <00:47:38.540>an <00:47:38.640>issue <00:47:38.740>there <00:47:38.840>and <00:47:38.940>fix

688
00:47:42.440 --> 00:47:45.440
<00:47:42.440>it <00:47:42.673>or, <00:47:42.906>uh, <00:47:43.140>yeah, <00:47:43.373>basically, <00:47:43.606>uh, <00:47:43.840>it's,

689
00:47:45.440 --> 00:47:48.910
<00:47:45.440>it's <00:47:45.640>also <00:47:45.840>contains <00:47:46.040>a <00:47:46.240>lot <00:47:46.440>of <00:47:46.640>good <00:47:46.840>examples,

690
00:47:48.910 --> 00:47:51.830
<00:47:48.910>so <00:47:49.009>you <00:47:49.109>can <00:47:49.210>also <00:47:49.310>take <00:47:49.410>a <00:47:49.509>look <00:47:49.609>at <00:47:49.710>other <00:47:49.810>examples <00:47:49.910>and <00:47:50.009>see <00:47:50.109>how <00:47:50.210>they <00:47:50.310>work.

691
00:47:52.380 --> 00:47:55.400
<00:47:52.380>So <00:47:52.660>basically, <00:47:52.940>uh, <00:47:53.220>it's, <00:47:53.500>uh, <00:47:53.780>the,

692
00:47:55.720 --> 00:47:59.160
<00:47:55.720>I <00:47:55.875>I <00:47:56.031>would <00:47:56.186>say <00:47:56.342>also <00:47:56.497>one <00:47:56.653>important <00:47:56.808>part <00:47:56.964>is <00:47:57.120>to

693
00:48:00.550 --> 00:48:03.630
<00:48:00.550>communicate <00:48:00.725>what <00:48:00.900>this <00:48:01.075>operator <00:48:01.250>exactly <00:48:01.425>does, <00:48:01.600>and <00:48:01.775>these <00:48:01.950>marble,

694
00:48:03.850 --> 00:48:07.870
<00:48:03.850>marble <00:48:04.083>diagrams <00:48:04.316>are <00:48:04.549>basically <00:48:04.783>designed <00:48:05.016>for <00:48:05.250>that.

695
00:48:07.930 --> 00:48:10.990
<00:48:07.930>And <00:48:08.069>then <00:48:08.210>you <00:48:08.350>can <00:48:08.490>also <00:48:08.629>create <00:48:08.770>these <00:48:08.910>marble <00:48:09.049>diagrams <00:48:09.190>and, <00:48:09.330>uh,

696
00:48:11.110 --> 00:48:15.790
<00:48:11.110>a <00:48:11.217>part <00:48:11.325>in <00:48:11.433>the <00:48:11.540>rhythm <00:48:11.648>so <00:48:11.756>that <00:48:11.863>other <00:48:11.971>people <00:48:12.079>in <00:48:12.186>the <00:48:12.294>community <00:48:12.402>know <00:48:12.510>what,

697
00:48:15.860 --> 00:48:17.710
<00:48:15.860>what <00:48:16.140>these, <00:48:16.420>uh, <00:48:16.700>operators <00:48:16.980>are <00:48:17.260>doing.

698
00:48:20.190 --> 00:48:24.930
<00:48:20.190>All <00:48:20.297>right. <00:48:20.405>And <00:48:20.513>where <00:48:20.620>are <00:48:20.728>the <00:48:20.836>limitations <00:48:20.943>of <00:48:21.051>R <00:48:21.159>X <00:48:21.266>C <00:48:21.374>I <00:48:21.482>S <00:48:21.590>operators?

699
00:48:27.830 --> 00:48:31.170
<00:48:27.830>Mm-hmm. <00:48:28.110>Good, <00:48:28.390>good. <00:48:28.670>Uh, <00:48:28.950>good <00:48:29.230>question.

700
00:48:33.880 --> 00:48:37.130
<00:48:33.880>Yeah, <00:48:34.113>so <00:48:34.346>the, <00:48:34.580>if <00:48:34.813>you <00:48:35.046>mean <00:48:35.280>the,

701
00:48:37.270 --> 00:48:41.490
<00:48:37.270>the <00:48:37.445>operators <00:48:37.620>that <00:48:37.795>are <00:48:37.970>included <00:48:38.145>in <00:48:38.320>the <00:48:38.495>standard <00:48:38.670>library,

702
00:48:42.410 --> 00:48:46.710
<00:48:42.410>I <00:48:42.609>would <00:48:42.810>say <00:48:43.009>they <00:48:43.210>covered <00:48:43.410>many <00:48:43.609>different <00:48:43.810>things.

703
00:48:46.890 --> 00:48:50.470
<00:48:46.890>So <00:48:47.089>I <00:48:47.290>would <00:48:47.490>say <00:48:47.690>you <00:48:47.890>can <00:48:48.089>basically <00:48:48.290>build

704
00:48:53.030 --> 00:48:56.150
<00:48:53.030>anything <00:48:53.230>on <00:48:53.430>top <00:48:53.630>of <00:48:53.830>these <00:48:54.030>already <00:48:54.230>available <00:48:54.430>operators.

705
00:48:56.970 --> 00:48:58.750
<00:48:56.970>And <00:48:57.669>the <00:48:58.370>limitation,

706
00:48:58.920 --> 00:49:02.950
<00:48:58.920>basic <00:48:59.027>limitation <00:48:59.135>is <00:48:59.243>that <00:48:59.350>most <00:48:59.458>of <00:48:59.566>the <00:48:59.673>code <00:48:59.781>written <00:48:59.889>in <00:48:59.996>those <00:49:00.104>operators <00:49:00.212>are <00:49:00.320>low

707
00:49:02.950 --> 00:49:07.950
<00:49:02.950>level <00:49:03.043>code. <00:49:03.136>And <00:49:03.230>if <00:49:03.323>you <00:49:03.416>want <00:49:03.509>to <00:49:03.603>put <00:49:03.696>them <00:49:03.790>in <00:49:03.883>your <00:49:03.976>high <00:49:04.069>level <00:49:04.163>program, <00:49:04.256>then <00:49:04.350>it's,

708
00:49:07.950 --> 00:49:12.790
<00:49:07.950>it's <00:49:08.066>not <00:49:08.183>really <00:49:08.299>maintainable <00:49:08.416>or <00:49:08.533>readable. <00:49:08.649>So <00:49:08.766>I <00:49:08.883>think <00:49:09.000>that's <00:49:09.116>the <00:49:09.233>part, <00:49:09.350>but,

709
00:49:12.790 --> 00:49:15.550
<00:49:12.790>so <00:49:12.990>they <00:49:13.190>couldn't <00:49:13.390>have, <00:49:13.590>uh, <00:49:13.790>covered <00:49:13.990>your <00:49:14.190>cases.

710
00:49:15.730 --> 00:49:20.350
<00:49:15.730>So <00:49:15.837>I <00:49:15.945>think <00:49:16.053>this <00:49:16.160>is <00:49:16.268>the <00:49:16.376>main <00:49:16.483>reason <00:49:16.591>they <00:49:16.699>introduced <00:49:16.806>this <00:49:16.914>pipe, <00:49:17.022>uh, <00:49:17.130>member,

711
00:49:21.090 --> 00:49:21.850
<00:49:21.090>uh, <00:49:21.774>function.

712
00:49:21.850 --> 00:49:26.110
<00:49:21.850>And <00:49:21.950>then <00:49:22.049>so <00:49:22.150>that <00:49:22.250>you <00:49:22.350>can <00:49:22.450>create <00:49:22.549>your <00:49:22.650>own <00:49:22.750>functions <00:49:22.850>and <00:49:22.950>put <00:49:23.049>them <00:49:23.150>there <00:49:23.250>and,

713
00:49:26.110 --> 00:49:26.943
<00:49:26.110>and <00:49:26.484>use <00:49:26.859>them.

714
00:49:28.620 --> 00:49:33.600
<00:49:28.620>And <00:49:28.713>are <00:49:28.806>there <00:49:28.900>any <00:49:28.993>specific <00:49:29.086>use <00:49:29.180>cases <00:49:29.273>or <00:49:29.366>scenarios <00:49:29.460>where <00:49:29.553>creating <00:49:29.646>custom <00:49:29.740>R <00:49:29.833>X <00:49:29.926>T <00:49:30.020>I

715
00:49:33.760 --> 00:49:37.760
<00:49:33.760>SS <00:49:33.915>operators <00:49:34.071>can <00:49:34.226>lead <00:49:34.382>to <00:49:34.537>significant <00:49:34.693>code <00:49:34.848>simplification <00:49:35.004>or <00:49:35.160>optimization?

716
00:49:39.160 --> 00:49:41.600
<00:49:39.160>I <00:49:39.335>would <00:49:39.509>say <00:49:39.685>so, <00:49:39.859>yes. <00:49:40.035>So, <00:49:40.210>uh, <00:49:40.384>we <00:49:40.560>had,

717
00:49:42.860 --> 00:49:47.280
<00:49:42.860>so <00:49:43.035>our <00:49:43.210>backend <00:49:43.385>code <00:49:43.560>was <00:49:43.735>basically <00:49:43.910>pipelines <00:49:44.085>like <00:49:44.260>everywhere.

718
00:49:47.380 --> 00:49:49.960
<00:49:47.380>So <00:49:47.660>literally <00:49:47.940>we <00:49:48.220>had <00:49:48.500>no, <00:49:48.780>uh,

719
00:49:50.020 --> 00:49:54.970
<00:49:50.020>non <00:49:50.136>pipeline <00:49:50.253>code <00:49:50.370>in <00:49:50.486>there <00:49:50.603>so <00:49:50.720>that <00:49:50.836>we, <00:49:50.953>we <00:49:51.070>had <00:49:51.186>many <00:49:51.303>things, <00:49:51.420>uh,

720
00:49:54.970 --> 00:49:58.450
<00:49:54.970>that <00:49:55.169>we <00:49:55.370>were <00:49:55.569>repeating <00:49:55.770>ourselves <00:49:55.970>in <00:49:56.169>different <00:49:56.370>parts.

721
00:49:59.110 --> 00:50:03.810
<00:49:59.110>So <00:49:59.250>we <00:49:59.390>started <00:49:59.530>collecting <00:49:59.670>them <00:49:59.810>and <00:49:59.950>putting <00:50:00.090>them <00:50:00.230>in <00:50:00.370>inside <00:50:00.510>functions.

722
00:50:03.840 --> 00:50:08.370
<00:50:03.840>Like <00:50:03.967>we <00:50:04.094>had, <00:50:04.221>for <00:50:04.349>example, <00:50:04.476>as <00:50:04.603>I <00:50:04.730>mentioned, <00:50:04.858>this, <00:50:04.985>uh, <00:50:05.112>blocking <00:50:05.240>tab,

723
00:50:09.200 --> 00:50:12.050
<00:50:09.200>that <00:50:09.399>that <00:50:09.600>was <00:50:09.799>a <00:50:10.000>tab <00:50:10.200>that <00:50:10.399>was, <00:50:10.600>uh,

724
00:50:13.120 --> 00:50:16.530
<00:50:13.120>made <00:50:13.275>this <00:50:13.431>pipeline <00:50:13.586>to <00:50:13.742>wait <00:50:13.897>for <00:50:14.053>its <00:50:14.208>result <00:50:14.364>or, <00:50:14.520>uh,

725
00:50:17.360 --> 00:50:21.610
<00:50:17.360>this <00:50:17.500>collect <00:50:17.640>as <00:50:17.780>an <00:50:17.920>area <00:50:18.060>so <00:50:18.200>that <00:50:18.340>when <00:50:18.480>you <00:50:18.620>have, <00:50:18.760>uh,

726
00:50:22.790 --> 00:50:24.010
<00:50:22.790>an <00:50:23.339>observable, <00:50:23.888>uh,

727
00:50:24.430 --> 00:50:28.160
<00:50:24.430>and <00:50:24.517>a <00:50:24.605>stream <00:50:24.692>of <00:50:24.779>values <00:50:24.867>and <00:50:24.955>you <00:50:25.042>want <00:50:25.129>to <00:50:25.217>fit <00:50:25.305>for <00:50:25.392>all <00:50:25.480>of <00:50:25.567>them <00:50:25.654>to <00:50:25.742>resolve <00:50:25.830>and

728
00:50:28.160 --> 00:50:32.560
<00:50:28.160>collect <00:50:28.276>them <00:50:28.393>into <00:50:28.509>one <00:50:28.626>array <00:50:28.743>and <00:50:28.859>then <00:50:28.976>like, <00:50:29.093>uh, <00:50:29.210>do <00:50:29.326>something <00:50:29.443>with <00:50:29.560>it,

729
00:50:32.560 --> 00:50:35.200
<00:50:32.560>then <00:50:32.840>I <00:50:33.120>can <00:50:33.400>give <00:50:33.680>many <00:50:33.960>examples.

730
00:50:35.200 --> 00:50:39.120
<00:50:35.200>So <00:50:35.339>you <00:50:35.480>can <00:50:35.620>wrap <00:50:35.759>them <00:50:35.899>into <00:50:36.040>functions. <00:50:36.180>And <00:50:36.319>first <00:50:36.460>of <00:50:36.600>all,

731
00:50:39.220 --> 00:50:43.920
<00:50:39.220>it <00:50:39.336>makes <00:50:39.453>these <00:50:39.569>things <00:50:39.686>more <00:50:39.803>readable <00:50:39.919>and <00:50:40.036>then <00:50:40.153>it <00:50:40.270>makes <00:50:40.386>them <00:50:40.503>better <00:50:40.620>testable.

732
00:50:43.920 --> 00:50:47.520
<00:50:43.920>So <00:50:44.060>you <00:50:44.200>can, <00:50:44.340>then <00:50:44.480>you <00:50:44.620>have <00:50:44.760>one <00:50:44.900>function <00:50:45.040>as <00:50:45.180>an <00:50:45.320>operator,

733
00:50:47.580 --> 00:50:51.640
<00:50:47.580>you <00:50:47.696>can <00:50:47.813>test <00:50:47.930>that <00:50:48.046>function <00:50:48.163>thoroughly. <00:50:48.279>And <00:50:48.396>then <00:50:48.513>with, <00:50:48.630>with <00:50:48.746>ease <00:50:48.863>of <00:50:48.980>mind,

734
00:50:51.780 --> 00:50:56.400
<00:50:51.780>use <00:50:51.867>that <00:50:51.955>all <00:50:52.042>over <00:50:52.130>your <00:50:52.217>code. <00:50:52.305>I <00:50:52.392>guess <00:50:52.480>if <00:50:52.567>you <00:50:52.655>want <00:50:52.742>to <00:50:52.830>write <00:50:52.917>it <00:50:53.005>ev <00:50:53.092>every <00:50:53.180>time,

735
00:50:56.430 --> 00:50:58.880
<00:50:56.430>then <00:50:56.710>it's <00:50:56.990>also <00:50:57.270>harder <00:50:57.549>to <00:50:57.830>test.

736
00:51:01.360 --> 00:51:04.860
<00:51:01.360>All <00:51:01.515>right. <00:51:01.671>And <00:51:01.826>back <00:51:01.982>to <00:51:02.137>open <00:51:02.293>source <00:51:02.448>and <00:51:02.604>collaboration. <00:51:02.760>Uh,

737
00:51:04.920 --> 00:51:09.100
<00:51:04.920>if <00:51:05.047>working <00:51:05.174>on <00:51:05.301>a <00:51:05.429>team <00:51:05.556>or <00:51:05.683>contributing <00:51:05.810>to, <00:51:05.938>uh, <00:51:06.065>open <00:51:06.192>source <00:51:06.320>projects,

738
00:51:09.120 --> 00:51:13.060
<00:51:09.120>how <00:51:09.236>can <00:51:09.353>developers <00:51:09.470>make <00:51:09.586>sure <00:51:09.703>that <00:51:09.819>their <00:51:09.936>custom <00:51:10.053>operators <00:51:10.170>align <00:51:10.286>with <00:51:10.403>the <00:51:10.520>overall

739
00:51:13.060 --> 00:51:13.893
<00:51:13.060>coding <00:51:13.809>style?

740
00:51:15.290 --> 00:51:17.020
<00:51:15.290>Yeah, <00:51:15.570>so <00:51:15.850>it's, <00:51:16.130>for <00:51:16.410>example, <00:51:16.690>uh,

741
00:51:18.290 --> 00:51:21.270
<00:51:18.290>the <00:51:18.465>thing <00:51:18.640>that <00:51:18.815>I <00:51:18.990>would <00:51:19.165>usually <00:51:19.340>do <00:51:19.515>for, <00:51:19.690>uh,

742
00:51:21.620 --> 00:51:25.990
<00:51:21.620>open <00:51:21.775>source <00:51:21.931>project <00:51:22.086>is <00:51:22.242>that <00:51:22.397>I <00:51:22.553>set <00:51:22.708>up <00:51:22.864>links <00:51:23.020>and,

743
00:51:26.010 --> 00:51:30.900
<00:51:26.010>and <00:51:26.126>some <00:51:26.243>rules <00:51:26.360>there. <00:51:26.476>So <00:51:26.593>for <00:51:26.710>example, <00:51:26.826>if, <00:51:26.943>so, <00:51:27.060>first <00:51:27.176>of <00:51:27.293>all, <00:51:27.410>it,

744
00:51:30.900 --> 00:51:34.780
<00:51:30.900>the, <00:51:31.075>the <00:51:31.250>code <00:51:31.425>style <00:51:31.600>is <00:51:31.775>enforced <00:51:31.950>by <00:51:32.125>some, <00:51:32.300>uh,

745
00:51:34.870 --> 00:51:37.420
<00:51:34.870>formatting <00:51:35.103>libraries <00:51:35.336>so <00:51:35.569>that <00:51:35.803>when <00:51:36.036>you, <00:51:36.270>uh,

746
00:51:38.400 --> 00:51:43.220
<00:51:38.400>you <00:51:38.527>run <00:51:38.654>N <00:51:38.781>P <00:51:38.909>m <00:51:39.036>run, <00:51:39.163>I <00:51:39.290>dunno, <00:51:39.418>linter, <00:51:39.545>and <00:51:39.672>then <00:51:39.800>it,

747
00:51:43.280 --> 00:51:45.940
<00:51:43.280>it <00:51:43.560>would <00:51:43.840>make <00:51:44.120>your <00:51:44.400>code, <00:51:44.680>uh,

748
00:51:45.970 --> 00:51:49.140
<00:51:45.970>syntactically <00:51:46.203>the <00:51:46.436>same <00:51:46.669>in <00:51:46.903>the <00:51:47.136>code <00:51:47.370>style,

749
00:51:49.400 --> 00:51:53.940
<00:51:49.400>the <00:51:49.500>same <00:51:49.600>with <00:51:49.700>the <00:51:49.800>rest <00:51:49.900>of <00:51:50.000>the <00:51:50.100>code <00:51:50.200>base. <00:51:50.300>And <00:51:50.400>the <00:51:50.500>other <00:51:50.600>thing <00:51:50.700>is <00:51:50.800>that,

750
00:51:54.160 --> 00:51:58.100
<00:51:54.160>so <00:51:54.287>there <00:51:54.414>are <00:51:54.541>some <00:51:54.669>things <00:51:54.796>you <00:51:54.923>cannot <00:51:55.050>automate <00:51:55.178>with <00:51:55.305>linkers <00:51:55.432>and <00:51:55.560>stuff,

751
00:51:58.160 --> 00:52:01.900
<00:51:58.160>and <00:51:58.335>this <00:51:58.509>is <00:51:58.685>why <00:51:58.859>we <00:51:59.035>have, <00:51:59.210>uh, <00:51:59.384>peer <00:51:59.560>review.

752
00:52:02.040 --> 00:52:06.620
<00:52:02.040>So <00:52:02.140>you <00:52:02.240>open <00:52:02.340>a <00:52:02.440>proof <00:52:02.540>request <00:52:02.640>and <00:52:02.740>that <00:52:02.840>that <00:52:02.940>is <00:52:03.040>being <00:52:03.140>reviewed. <00:52:03.240>And <00:52:03.340>then, <00:52:03.440>yeah,

753
00:52:06.640 --> 00:52:11.500
<00:52:06.640>so <00:52:06.756>the <00:52:06.873>review <00:52:06.990>give <00:52:07.106>you <00:52:07.223>some <00:52:07.339>comment <00:52:07.456>on <00:52:07.573>how <00:52:07.690>to <00:52:07.806>be <00:52:07.923>consistent <00:52:08.040>with

754
00:52:11.500 --> 00:52:14.420
<00:52:11.500>the <00:52:11.733>rest <00:52:11.966>of <00:52:12.200>the, <00:52:12.433>uh, <00:52:12.666>library <00:52:12.900>basically.

755
00:52:16.210 --> 00:52:20.950
<00:52:16.210>And <00:52:16.303>is <00:52:16.396>there <00:52:16.490>something <00:52:16.583>that <00:52:16.676>bothers <00:52:16.770>you <00:52:16.863>with <00:52:16.956>RX <00:52:17.050>j <00:52:17.143>s <00:52:17.236>or <00:52:17.330>did <00:52:17.423>you <00:52:17.516>miss <00:52:17.610>something?

756
00:52:22.490 --> 00:52:25.250
<00:52:22.490>Uh, <00:52:23.890>I,

757
00:52:26.120 --> 00:52:30.980
<00:52:26.120>nothing <00:52:26.275>really <00:52:26.431>bothers <00:52:26.586>me <00:52:26.742>that <00:52:26.897>much. <00:52:27.053>I <00:52:27.208>would <00:52:27.364>say <00:52:27.520>if,

758
00:52:31.200 --> 00:52:35.220
<00:52:31.200>if <00:52:31.339>we <00:52:31.480>had <00:52:31.620>singles. <00:52:31.759>So <00:52:31.899>actually <00:52:32.040>the, <00:52:32.180>uh, <00:52:32.319>a, <00:52:32.460>a <00:52:32.600>very,

759
00:52:37.120 --> 00:52:41.020
<00:52:37.120>uh, <00:52:37.247>good <00:52:37.374>news <00:52:37.501>is <00:52:37.629>that <00:52:37.756>since <00:52:37.883>axis <00:52:38.010>eight, <00:52:38.138>if <00:52:38.265>I'm <00:52:38.392>not <00:52:38.520>wrong,

760
00:52:41.800 --> 00:52:44.300
<00:52:41.800>you <00:52:42.033>can <00:52:42.266>actually <00:52:42.500>implement <00:52:42.733>singles <00:52:42.966>because <00:52:43.200>they,

761
00:52:44.360 --> 00:52:48.420
<00:52:44.360>you <00:52:44.515>have <00:52:44.671>a <00:52:44.826>way <00:52:44.982>of <00:52:45.137>controlling <00:52:45.293>how <00:52:45.448>many, <00:52:45.604>uh, <00:52:45.760>members,

762
00:52:49.160 --> 00:52:52.740
<00:52:49.160>uh, <00:52:49.299>an <00:52:49.440>observer <00:52:49.580>can <00:52:49.720>have <00:52:49.859>if <00:52:50.000>I'm <00:52:50.140>not <00:52:50.279>wrong. <00:52:50.420>But <00:52:50.560>yeah,

763
00:52:52.740 --> 00:52:57.700
<00:52:52.740>so <00:52:52.879>if <00:52:53.020>someone <00:52:53.160>takes <00:52:53.299>the <00:52:53.439>initiative <00:52:53.580>and <00:52:53.720>implements <00:52:53.859>the <00:52:54.000>singles <00:52:54.140>type,

764
00:52:57.780 --> 00:53:00.860
<00:52:57.780>then <00:52:57.935>I <00:52:58.091>think <00:52:58.246>that <00:52:58.402>would <00:52:58.557>be <00:52:58.713>a <00:52:58.868>huge <00:52:59.024>improvement <00:52:59.180>to,

765
00:53:01.040 --> 00:53:03.980
<00:53:01.040>to <00:53:01.240>the <00:53:01.440>RX <00:53:01.640>js <00:53:01.840>library <00:53:02.040>because <00:53:02.240>for <00:53:02.440>example,

766
00:53:04.420 --> 00:53:07.940
<00:53:04.420>I <00:53:04.620>would <00:53:04.820>say <00:53:05.020>95% <00:53:05.220>of <00:53:05.420>the <00:53:05.620>observable, <00:53:05.820>uh,

767
00:53:08.230 --> 00:53:12.740
<00:53:08.230>types <00:53:08.346>that <00:53:08.463>we <00:53:08.580>had <00:53:08.696>in <00:53:08.813>our <00:53:08.930>backend <00:53:09.046>code <00:53:09.163>were <00:53:09.280>basically <00:53:09.396>singles <00:53:09.513>with <00:53:09.630>almost

768
00:53:13.610 --> 00:53:16.580
<00:53:13.610>very <00:53:13.810>seldom <00:53:14.010>had, <00:53:14.210>uh, <00:53:14.410>observables <00:53:14.610>with <00:53:14.810>multiple <00:53:15.010>values.

769
00:53:17.810 --> 00:53:20.180
<00:53:17.810>Yeah, <00:53:17.965>yeah. <00:53:18.121>And <00:53:18.276>it <00:53:18.432>is <00:53:18.587>connected <00:53:18.743>to <00:53:18.898>the <00:53:19.054>next <00:53:19.210>question.

770
00:53:20.180 --> 00:53:24.140
<00:53:20.180>What <00:53:20.279>are <00:53:20.379>the <00:53:20.480>primary <00:53:20.580>motivations <00:53:20.680>for <00:53:20.779>developers <00:53:20.879>to <00:53:20.980>create <00:53:21.080>custom <00:53:21.180>R <00:53:21.279>X <00:53:21.379>T <00:53:21.480>I <00:53:21.580>S

771
00:53:24.340 --> 00:53:28.120
<00:53:24.340>operators <00:53:24.495>and <00:53:24.651>how <00:53:24.806>these <00:53:24.962>operators <00:53:25.117>address <00:53:25.273>specific <00:53:25.428>needs <00:53:25.584>or <00:53:25.740>challenges?

772
00:53:29.270 --> 00:53:32.830
<00:53:29.270>Yeah, <00:53:29.550>so, <00:53:29.830>uh, <00:53:30.110>I <00:53:30.390>think, <00:53:30.670>uh,

773
00:53:33.810 --> 00:53:35.790
<00:53:33.810>my <00:53:34.160>own <00:53:34.509>primary <00:53:34.860>motivate, <00:53:35.210>uh,

774
00:53:35.790 --> 00:53:39.950
<00:53:35.790>motivation <00:53:35.930>was <00:53:36.070>that <00:53:36.210>because <00:53:36.350>I <00:53:36.490>was <00:53:36.630>using <00:53:36.770>s <00:53:36.910>for <00:53:37.050>backend, <00:53:37.190>uh,

775
00:53:41.320 --> 00:53:44.910
<00:53:41.320>there <00:53:41.495>were <00:53:41.670>different <00:53:41.845>use <00:53:42.020>cases <00:53:42.195>that, <00:53:42.370>that <00:53:42.545>it <00:53:42.720>had.

776
00:53:44.910 --> 00:53:49.390
<00:53:44.910>So <00:53:45.017>because <00:53:45.125>usually <00:53:45.233>RT <00:53:45.340>s <00:53:45.448>is <00:53:45.556>used <00:53:45.663>with <00:53:45.771>Angular, <00:53:45.879>which <00:53:45.986>is <00:53:46.094>a <00:53:46.202>frontend <00:53:46.310>library,

777
00:53:49.570 --> 00:53:52.110
<00:53:49.570>and <00:53:49.770>you <00:53:49.970>have <00:53:50.170>different <00:53:50.370>requirements <00:53:50.570>and <00:53:50.770>different <00:53:50.970>needs,

778
00:53:52.210 --> 00:53:56.030
<00:53:52.210>and <00:53:52.410>in <00:53:52.610>backend <00:53:52.810>you <00:53:53.010>might <00:53:53.210>really <00:53:53.410>need <00:53:53.610>some,

779
00:53:56.100 --> 00:53:59.990
<00:53:56.100>some <00:53:56.275>stuff <00:53:56.450>that <00:53:56.625>are <00:53:56.799>not <00:53:56.975>as <00:53:57.150>important <00:53:57.325>for <00:53:57.500>frontend.

780
00:54:00.010 --> 00:54:03.100
<00:54:00.010>And <00:54:00.210>then <00:54:00.410>because <00:54:00.610>of <00:54:00.810>your <00:54:01.010>specific <00:54:01.210>need, <00:54:01.410>you,

781
00:54:03.160 --> 00:54:07.820
<00:54:03.160>you <00:54:03.299>might <00:54:03.440>face <00:54:03.580>solving <00:54:03.720>the <00:54:03.859>same <00:54:04.000>problem <00:54:04.140>over <00:54:04.279>and <00:54:04.420>over <00:54:04.560>again.

782
00:54:07.920 --> 00:54:12.580
<00:54:07.920>And <00:54:08.075>I <00:54:08.231>would <00:54:08.386>say <00:54:08.542>creating <00:54:08.697>these <00:54:08.853>operators <00:54:09.008>could <00:54:09.164>solve <00:54:09.320>these

783
00:54:12.580 --> 00:54:16.540
<00:54:12.580>problems <00:54:12.755>once, <00:54:12.930>and, <00:54:13.105>and <00:54:13.279>if <00:54:13.455>they <00:54:13.630>are <00:54:13.805>really <00:54:13.980>repeating,

784
00:54:16.540 --> 00:54:20.180
<00:54:16.540>then <00:54:16.640>maybe <00:54:16.740>someone <00:54:16.840>else <00:54:16.940>in <00:54:17.040>some <00:54:17.140>other <00:54:17.240>part <00:54:17.340>of <00:54:17.440>the <00:54:17.540>world <00:54:17.640>has <00:54:17.740>the <00:54:17.840>same <00:54:17.940>issue.

785
00:54:20.400 --> 00:54:23.780
<00:54:20.400>And <00:54:20.540>then <00:54:20.680>if <00:54:20.820>you <00:54:20.960>put <00:54:21.100>them <00:54:21.240>somewhere <00:54:21.380>that <00:54:21.520>they <00:54:21.660>can <00:54:21.800>access,

786
00:54:24.070 --> 00:54:25.980
<00:54:24.070>it'll <00:54:24.270>solve <00:54:24.470>this <00:54:24.670>thing <00:54:24.870>for <00:54:25.070>them <00:54:25.270>as <00:54:25.470>well.

787
00:54:27.500 --> 00:54:31.620
<00:54:27.500>Hmm. <00:54:27.593>And <00:54:27.686>how <00:54:27.780>do <00:54:27.873>you <00:54:27.966>envision <00:54:28.060>the <00:54:28.153>future <00:54:28.246>of <00:54:28.340>custom <00:54:28.433>R <00:54:28.526>X <00:54:28.620>D <00:54:28.713>I <00:54:28.806>S <00:54:28.900>operators,

788
00:54:31.640 --> 00:54:35.180
<00:54:31.640>and <00:54:31.767>what <00:54:31.894>potential <00:54:32.021>innovations <00:54:32.149>or <00:54:32.276>trends <00:54:32.403>do <00:54:32.530>you <00:54:32.658>anticipate <00:54:32.785>in <00:54:32.912>this <00:54:33.040>domain?

789
00:54:38.030 --> 00:54:39.520
<00:54:38.030>Good, <00:54:38.477>good <00:54:38.924>question. <00:54:39.371>Uh,

790
00:54:41.340 --> 00:54:45.590
<00:54:41.340>it's <00:54:41.620>hard <00:54:41.900>to <00:54:42.180>say <00:54:42.460>because, <00:54:42.740>uh,

791
00:54:45.830 --> 00:54:50.650
<00:54:45.830>I <00:54:45.937>think <00:54:46.045>the <00:54:46.153>most <00:54:46.260>important <00:54:46.368>aspect <00:54:46.476>of <00:54:46.583>the <00:54:46.691>future <00:54:46.799>of <00:54:46.906>this <00:54:47.014>custom <00:54:47.122>operators <00:54:47.230>is

792
00:54:50.650 --> 00:54:54.570
<00:54:50.650>that <00:54:50.825>people <00:54:51.000>know <00:54:51.175>that <00:54:51.350>this <00:54:51.525>can <00:54:51.700>happen. <00:54:51.875>So, <00:54:52.050>uh,

793
00:54:54.950 --> 00:54:58.130
<00:54:54.950>so <00:54:55.125>far <00:54:55.299>I, <00:54:55.475>I <00:54:55.649>would <00:54:55.825>say <00:54:56.000>there <00:54:56.174>were <00:54:56.350>no,

794
00:54:58.190 --> 00:55:02.930
<00:54:58.190>no <00:54:58.297>much <00:54:58.405>activity <00:54:58.513>here <00:54:58.620>because <00:54:58.728>people <00:54:58.836>didn't <00:54:58.943>know <00:54:59.051>that <00:54:59.159>they <00:54:59.266>could <00:54:59.374>do <00:54:59.482>that <00:54:59.590>and,

795
00:55:02.950 --> 00:55:06.970
<00:55:02.950>and <00:55:03.149>didn't <00:55:03.350>see <00:55:03.549>enough <00:55:03.750>examples <00:55:03.950>of <00:55:04.149>these, <00:55:04.350>uh,

796
00:55:07.450 --> 00:55:10.780
<00:55:07.450>customer <00:55:07.683>operators. <00:55:07.916>If <00:55:08.149>we <00:55:08.383>spread <00:55:08.616>the <00:55:08.850>word,

797
00:55:11.010 --> 00:55:15.440
<00:55:11.010>then <00:55:11.137>we <00:55:11.264>can <00:55:11.391>see <00:55:11.519>how <00:55:11.646>the <00:55:11.773>future, <00:55:11.900>uh, <00:55:12.028>like <00:55:12.155>forms <00:55:12.282>this, <00:55:12.410>uh,

798
00:55:16.280 --> 00:55:19.160
<00:55:16.280>customer <00:55:16.480>operators <00:55:16.680>and <00:55:16.880>that <00:55:17.080>also, <00:55:17.280>it <00:55:17.480>depends <00:55:17.680>to,

799
00:55:19.160 --> 00:55:22.760
<00:55:19.160>to <00:55:19.276>which <00:55:19.393>part <00:55:19.509>of <00:55:19.626>the <00:55:19.743>community <00:55:19.859>these, <00:55:19.976>uh, <00:55:20.093>words <00:55:20.210>are, <00:55:20.326>are <00:55:20.443>reaching. <00:55:20.560>Yeah,

800
00:55:23.970 --> 00:55:24.440
<00:55:23.970>Yeah. <00:55:24.393>And,

801
00:55:24.440 --> 00:55:29.020
<00:55:24.440>and <00:55:24.533>how <00:55:24.626>does <00:55:24.720>the <00:55:24.813>process <00:55:24.906>of <00:55:25.000>creating <00:55:25.093>custom <00:55:25.186>R <00:55:25.280>X <00:55:25.373>T <00:55:25.466>I <00:55:25.560>S <00:55:25.653>operators <00:55:25.746>benefit <00:55:25.840>the

802
00:55:29.020 --> 00:55:32.540
<00:55:29.020>concept <00:55:29.195>of <00:55:29.370>code <00:55:29.545>reusability <00:55:29.720>and <00:55:29.895>maintainability <00:55:30.070>in <00:55:30.245>software <00:55:30.420>development?

803
00:55:33.090 --> 00:55:34.380
<00:55:33.090>Yeah, <00:55:33.380>I, <00:55:33.670>I <00:55:33.960>say, <00:55:34.251>uh,

804
00:55:35.330 --> 00:55:40.220
<00:55:35.330>this <00:55:35.457>is <00:55:35.584>basically <00:55:35.711>the <00:55:35.839>dry <00:55:35.966>principle <00:55:36.093>that <00:55:36.220>we <00:55:36.348>have <00:55:36.475>for <00:55:36.602>regular <00:55:36.730>code,

805
00:55:40.280 --> 00:55:44.260
<00:55:40.280>the, <00:55:40.435>the <00:55:40.591>nine <00:55:40.746>pipe, <00:55:40.902>nine <00:55:41.057>non <00:55:41.213>pipeline <00:55:41.368>code. <00:55:41.524>And, <00:55:41.680>uh,

806
00:55:46.330 --> 00:55:50.750
<00:55:46.330>if <00:55:46.485>we, <00:55:46.641>so <00:55:46.796>this <00:55:46.952>is <00:55:47.107>basically <00:55:47.263>applying <00:55:47.418>the <00:55:47.574>same, <00:55:47.730>uh,

807
00:55:50.900 --> 00:55:54.670
<00:55:50.900>principle, <00:55:51.055>but <00:55:51.211>on <00:55:51.366>pipelines, <00:55:51.522>R <00:55:51.677>X <00:55:51.833>J <00:55:51.988>pipelines, <00:55:52.144>if <00:55:52.300>you,

808
00:55:54.970 --> 00:55:56.870
<00:55:54.970>if <00:55:55.319>you're <00:55:55.669>repeating <00:55:56.020>yourself, <00:55:56.370>you,

809
00:55:56.890 --> 00:56:00.830
<00:55:56.890>you <00:55:57.017>should <00:55:57.144>create <00:55:57.271>one <00:55:57.399>part <00:55:57.526>of <00:55:57.653>the <00:55:57.780>code <00:55:57.908>and <00:55:58.035>don't <00:55:58.162>repeat <00:55:58.290>yourself.

810
00:56:00.890 --> 00:56:05.670
<00:56:00.890>So <00:56:01.006>that, <00:56:01.123>that <00:56:01.240>part <00:56:01.356>that <00:56:01.473>is <00:56:01.589>being <00:56:01.706>repeated <00:56:01.823>a <00:56:01.940>lot <00:56:02.056>can <00:56:02.173>be <00:56:02.290>tested,

811
00:56:06.130 --> 00:56:07.430
<00:56:06.130>uh, <00:56:06.520>and, <00:56:06.910>and <00:56:07.299>reused

812
00:56:09.250 --> 00:56:13.320
<00:56:09.250>Super. <00:56:09.343>I <00:56:09.436>don't <00:56:09.530>know <00:56:09.623>if <00:56:09.716>we <00:56:09.810>have <00:56:09.903>time <00:56:09.996>for <00:56:10.090>one <00:56:10.183>or <00:56:10.276>two <00:56:10.370>more <00:56:10.463>questions, <00:56:10.556>but, <00:56:10.650>uh,

813
00:56:13.320 --> 00:56:14.200
<00:56:13.320>this <00:56:13.584>one <00:56:13.848>that <00:56:14.112>says,

814
00:56:14.260 --> 00:56:18.760
<00:56:14.260>can <00:56:14.360>you <00:56:14.460>provide <00:56:14.560>insights <00:56:14.660>into <00:56:14.760>testing <00:56:14.860>and <00:56:14.960>debugging <00:56:15.060>custom <00:56:15.160>R <00:56:15.260>X <00:56:15.360>C <00:56:15.460>A <00:56:15.560>S <00:56:15.660>operators?

815
00:56:18.980 --> 00:56:23.640
<00:56:18.980>Mm-hmm. <00:56:19.107>Usually <00:56:19.234>testing <00:56:19.361>is <00:56:19.489>not <00:56:19.616>much <00:56:19.743>hard. <00:56:19.870>You <00:56:19.998>just <00:56:20.125>have <00:56:20.252>to <00:56:20.380>create,

816
00:56:24.100 --> 00:56:28.800
<00:56:24.100>uh, <00:56:24.207>enough <00:56:24.315>test <00:56:24.423>cases. <00:56:24.530>Then <00:56:24.638>you <00:56:24.746>can <00:56:24.853>also <00:56:24.961>take <00:56:25.069>a <00:56:25.176>look <00:56:25.284>at <00:56:25.392>the, <00:56:25.500>uh,

817
00:56:30.300 --> 00:56:34.660
<00:56:30.300>repo <00:56:30.400>that <00:56:30.500>we <00:56:30.600>have <00:56:30.700>on <00:56:30.800>GitHub. <00:56:30.900>Uh, <00:56:31.000>usually <00:56:31.100>the <00:56:31.200>test <00:56:31.300>cases <00:56:31.400>are, <00:56:31.500>uh, <00:56:31.600>not <00:56:31.700>hard.

818
00:56:34.730 --> 00:56:38.540
<00:56:34.730>Like <00:56:34.905>the, <00:56:35.080>the <00:56:35.255>implementation <00:56:35.430>is <00:56:35.605>maybe <00:56:35.780>sometimes <00:56:35.955>more <00:56:36.130>challenging.

819
00:56:39.120 --> 00:56:43.640
<00:56:39.120>And <00:56:39.236>yeah, <00:56:39.353>so, <00:56:39.470>and <00:56:39.586>also <00:56:39.703>car <00:56:39.819>has <00:56:39.936>a, <00:56:40.053>has <00:56:40.170>a <00:56:40.286>very <00:56:40.403>nice, <00:56:40.520>uh,

820
00:56:43.810 --> 00:56:44.800
<00:56:43.810>means <00:56:44.255>of, <00:56:44.701>uh,

821
00:56:44.800 --> 00:56:49.680
<00:56:44.800>testing <00:56:44.907>so <00:56:45.015>that <00:56:45.123>you <00:56:45.230>can <00:56:45.338>control <00:56:45.446>what <00:56:45.553>to <00:56:45.661>do <00:56:45.769>in <00:56:45.876>tests <00:56:45.984>in <00:56:46.092>case <00:56:46.200>the

822
00:56:50.100 --> 00:56:53.440
<00:56:50.100>RJs, <00:56:50.299>uh, <00:56:50.500>observable <00:56:50.700>fails <00:56:50.900>or, <00:56:51.100>or <00:56:51.299>succeeds. <00:56:51.500>So,

823
00:56:53.460 --> 00:56:58.380
<00:56:53.460>so <00:56:53.635>I <00:56:53.810>think <00:56:53.985>that's <00:56:54.160>maybe <00:56:54.335>a <00:56:54.510>discussion <00:56:54.685>for <00:56:54.860>later,

824
00:56:58.400 --> 00:56:59.580
<00:56:58.400>but <00:56:58.665>that's <00:56:58.931>not <00:56:59.196>really <00:56:59.462>hard.

825
00:56:59.580 --> 00:57:04.110
<00:56:59.580>So <00:56:59.673>you <00:56:59.766>can <00:56:59.860>also <00:56:59.953>reach <00:57:00.046>out <00:57:00.140>to <00:57:00.233>me <00:57:00.326>and <00:57:00.420>then <00:57:00.513>we <00:57:00.606>can <00:57:00.700>discuss <00:57:00.793>in <00:57:00.886>more <00:57:00.980>details.

826
00:57:05.640 --> 00:57:07.570
<00:57:05.640>Okay. <00:57:05.795>And <00:57:05.951>we <00:57:06.106>do <00:57:06.262>have <00:57:06.417>questions <00:57:06.573>for <00:57:06.728>the <00:57:06.884>last <00:57:07.040>one.

827
00:57:07.600 --> 00:57:12.410
<00:57:07.600>What <00:57:07.700>tips <00:57:07.799>would <00:57:07.900>you <00:57:08.000>give <00:57:08.100>to <00:57:08.200>devs <00:57:08.299>who <00:57:08.400>are <00:57:08.500>just <00:57:08.600>starting <00:57:08.700>to <00:57:08.799>with <00:57:08.900>creating <00:57:09.000>R

828
00:57:12.490 --> 00:57:13.690
<00:57:12.490>X <00:57:12.759>T <00:57:13.029>I <00:57:13.300>S <00:57:13.570>operators?

829
00:57:14.690 --> 00:57:19.050
<00:57:14.690>I <00:57:14.817>would <00:57:14.944>say <00:57:15.071>the <00:57:15.199>best <00:57:15.326>starting <00:57:15.453>point <00:57:15.580>is <00:57:15.708>this, <00:57:15.835>uh, <00:57:15.962>GitHub <00:57:16.090>repo.

830
00:57:19.050 --> 00:57:23.290
<00:57:19.050>You <00:57:19.190>can <00:57:19.330>take <00:57:19.470>a <00:57:19.610>look <00:57:19.750>into <00:57:19.890>the <00:57:20.030>already <00:57:20.170>available, <00:57:20.310>uh, <00:57:20.450>operators,

831
00:57:23.710 --> 00:57:27.690
<00:57:23.710>see <00:57:23.817>how <00:57:23.925>they're <00:57:24.033>implemented. <00:57:24.140>Maybe <00:57:24.248>you <00:57:24.356>have <00:57:24.463>an <00:57:24.571>idea <00:57:24.679>to <00:57:24.786>improve <00:57:24.894>some <00:57:25.002>of <00:57:25.110>these.

832
00:57:28.070 --> 00:57:31.410
<00:57:28.070>And <00:57:28.350>that <00:57:28.630>might <00:57:28.910>also, <00:57:29.190>the, <00:57:29.470>also,

833
00:57:31.430 --> 00:57:36.010
<00:57:31.430>we <00:57:31.537>have <00:57:31.645>a <00:57:31.753>lot <00:57:31.860>of <00:57:31.968>issues <00:57:32.076>there <00:57:32.183>in <00:57:32.291>the, <00:57:32.399>I <00:57:32.506>mean, <00:57:32.614>tickets. <00:57:32.722>Uh, <00:57:32.830>so,

834
00:57:36.030 --> 00:57:40.690
<00:57:36.030>so <00:57:36.170>there <00:57:36.310>are <00:57:36.450>some, <00:57:36.590>uh, <00:57:36.730>ideas <00:57:36.870>for, <00:57:37.010>uh, <00:57:37.150>other <00:57:37.290>operatives <00:57:37.430>that,

835
00:57:40.690 --> 00:57:44.320
<00:57:40.690>that <00:57:40.865>can <00:57:41.040>be, <00:57:41.215>uh, <00:57:41.390>fitting <00:57:41.565>into <00:57:41.740>this <00:57:41.915>whole <00:57:42.090>library.

836
00:57:44.460 --> 00:57:48.000
<00:57:44.460>And <00:57:44.560>you <00:57:44.660>can <00:57:44.760>start <00:57:44.860>with <00:57:44.960>one <00:57:45.060>of <00:57:45.160>these, <00:57:45.260>and <00:57:45.360>that <00:57:45.460>I <00:57:45.560>think <00:57:45.660>would <00:57:45.760>be <00:57:45.860>a,

837
00:57:48.160 --> 00:57:49.120
<00:57:48.160>a <00:57:48.448>great <00:57:48.736>starting <00:57:49.024>point.

838
00:57:50.730 --> 00:57:53.240
<00:57:50.730>Great. <00:57:50.905>So <00:57:51.080>is <00:57:51.255>there <00:57:51.430>anything <00:57:51.605>you <00:57:51.780>want <00:57:51.955>to <00:57:52.130>add?

839
00:57:53.240 --> 00:57:56.560
<00:57:53.240>Seeing <00:57:53.395>the <00:57:53.551>direction <00:57:53.706>of <00:57:53.862>the <00:57:54.017>questions <00:57:54.173>before <00:57:54.328>closing <00:57:54.484>the <00:57:54.640>talk?

840
00:57:58.540 --> 00:58:03.000
<00:57:58.540>Uh, <00:57:58.656>that <00:57:58.773>I, <00:57:58.890>I'm <00:57:59.006>honored <00:57:59.123>to <00:57:59.240>be <00:57:59.356>here <00:57:59.473>and <00:57:59.590>I <00:57:59.706>really <00:57:59.823>enjoyed, <00:57:59.940>uh,

841
00:58:03.290 --> 00:58:04.760
<00:58:03.290>doing <00:58:03.951>this. <00:58:04.613>Thanks.

842
00:58:05.060 --> 00:58:07.480
<00:58:05.060>We <00:58:05.200>enjoyed <00:58:05.340>it <00:58:05.480>too. <00:58:05.620>Thank <00:58:05.759>you <00:58:05.900>very <00:58:06.040>much <00:58:06.180>for <00:58:06.320>being <00:58:06.460>here,

843
00:58:07.540 --> 00:58:12.040
<00:58:07.540>and <00:58:07.640>I <00:58:07.740>hope <00:58:07.840>to <00:58:07.940>see <00:58:08.040>you <00:58:08.140>soon, <00:58:08.240>maybe <00:58:08.340>in <00:58:08.440>another <00:58:08.540>live <00:58:08.640>day. <00:58:08.740>Sure. <00:58:08.840>Thank <00:58:08.940>you.

844
00:58:12.040 --> 00:58:12.880
<00:58:12.040>Have <00:58:12.166>a <00:58:12.292>nice <00:58:12.418>rest <00:58:12.544>of <00:58:12.670>the <00:58:12.796>day.

845
00:58:13.230 --> 00:58:15.280
<00:58:13.230>Have <00:58:13.405>a <00:58:13.580>nice, <00:58:13.755>yeah, <00:58:13.930>have <00:58:14.105>a <00:58:14.280>nice <00:58:14.455>day. <00:58:14.630>Tcia.