WEBVTT

1
00:00:16.985 --> 00:00:17.205
So

2
00:00:17.355 --> 00:00:19.005
<00:00:17.355>Welcome <00:00:17.705>everybody <00:00:18.055>to <00:00:18.405>my <00:00:18.755>talk

3
00:00:19.565 --> 00:00:21.765
<00:00:19.565>practice <00:00:19.765>makes <00:00:19.965>perfect <00:00:20.165>when <00:00:20.365>it <00:00:20.565>comes <00:00:20.765>to <00:00:20.965>RXJS

4
00:00:22.265 --> 00:00:25.245
<00:00:22.265>and <00:00:22.615>actually <00:00:22.965>when <00:00:23.315>starting <00:00:23.665>RXJS,

5
00:00:25.465 --> 00:00:28.725
<00:00:25.465>the <00:00:25.698>experience <00:00:25.931>you <00:00:26.165>have <00:00:26.398>is <00:00:26.631>quite <00:00:26.865>intimidating

6
00:00:28.725 --> 00:00:31.165
<00:00:28.725>because <00:00:28.925>it's <00:00:29.125>fairly <00:00:29.325>difficult <00:00:29.525>to <00:00:29.725>get <00:00:29.925>into <00:00:30.125>it.

7
00:00:31.665 --> 00:00:34.845
<00:00:31.665>So <00:00:31.805>I <00:00:31.945>usually <00:00:32.085>compare <00:00:32.225>it <00:00:32.365>like <00:00:32.504>starting <00:00:32.644>to <00:00:32.785>ride <00:00:32.925>a <00:00:33.065>bicycle

8
00:00:35.305 --> 00:00:36.885
<00:00:35.305>and <00:00:35.505>as <00:00:35.705>soon <00:00:35.905>as <00:00:36.105>I <00:00:36.305>click <00:00:36.505>here <00:00:36.705>once,

9
00:00:36.965 --> 00:00:38.525
<00:00:36.965>I <00:00:37.165>can <00:00:37.365>also <00:00:37.565>go <00:00:37.765>to <00:00:37.965>the <00:00:38.165>next <00:00:38.365>slide.

10
00:00:39.065 --> 00:00:41.445
<00:00:39.065>So <00:00:39.265>maybe <00:00:39.464>you <00:00:39.665>remember <00:00:39.864>the <00:00:40.065>time <00:00:40.265>you <00:00:40.464>tried

11
00:00:41.445 --> 00:00:42.645
<00:00:41.445>to <00:00:41.715>learn <00:00:41.985>riding <00:00:42.255>a <00:00:42.525>bicycle

12
00:00:43.035 --> 00:00:44.965
<00:00:43.035>because <00:00:43.235>it <00:00:43.434>kind <00:00:43.635>of <00:00:43.834>went <00:00:44.035>like <00:00:44.235>this <00:00:44.434>at,

13
00:00:45.265 --> 00:00:46.605
<00:00:45.265>at <00:00:45.437>least <00:00:45.609>for <00:00:45.781>me, <00:00:45.954>it <00:00:46.126>went <00:00:46.298>like <00:00:46.471>this.

14
00:00:46.715 --> 00:00:48.645
<00:00:46.715>Like, <00:00:46.915>uh, <00:00:47.115>so <00:00:47.315>I <00:00:47.515>didn't <00:00:47.715>hit <00:00:47.915>a <00:00:48.115>tree,

15
00:00:48.665 --> 00:00:50.645
<00:00:48.665>but <00:00:48.898>the <00:00:49.131>fence <00:00:49.365>of <00:00:49.598>my <00:00:49.831>neighbors <00:00:50.065>apparently.

16
00:00:51.265 --> 00:00:54.685
<00:00:51.265>So, <00:00:51.545>um, <00:00:51.825>but <00:00:52.105>even <00:00:52.385>though <00:00:52.665>you

17
00:00:56.525 --> 00:00:59.375
<00:00:56.525>keep <00:00:56.680>practicing <00:00:56.836>for <00:00:56.991>a <00:00:57.147>while, <00:00:57.302>dri <00:00:57.458>uh, <00:00:57.613>riding <00:00:57.769>a <00:00:57.925>bicycle

18
00:00:59.595 --> 00:01:01.855
<00:00:59.595>and <00:00:59.735>at <00:00:59.875>some <00:01:00.015>point <00:01:00.155>of <00:01:00.295>time <00:01:00.435>you <00:01:00.574>became <00:01:00.714>kind <00:01:00.855>of <00:01:00.995>professional

19
00:01:01.855 --> 00:01:04.655
<00:01:01.855>with <00:01:02.010>it, <00:01:02.166>that's <00:01:02.321>mostly <00:01:02.477>the <00:01:02.632>experience <00:01:02.788>for <00:01:02.943>driving <00:01:03.099>a <00:01:03.254>bicycle

20
00:01:05.515 --> 00:01:08.655
<00:01:05.515>and <00:01:05.715>actually <00:01:05.915>it's <00:01:06.115>very <00:01:06.315>similar <00:01:06.515>for <00:01:06.715>RX <00:01:06.915>Gs.

21
00:01:08.755 --> 00:01:12.215
<00:01:08.755>So <00:01:08.895>as <00:01:09.035>long <00:01:09.175>as <00:01:09.315>you <00:01:09.455>have <00:01:09.595>this <00:01:09.735>constant <00:01:09.875>cycle <00:01:10.015>of <00:01:10.155>practicing,

22
00:01:12.235 --> 00:01:15.735
<00:01:12.235>you <00:01:12.435>will <00:01:12.635>always <00:01:12.835>find <00:01:13.035>yourself <00:01:13.235>in <00:01:13.435>understanding <00:01:13.635>more

23
00:01:15.735 --> 00:01:16.775
<00:01:15.735>parts <00:01:16.203>of <00:01:16.671>RXS.

24
00:01:16.795 --> 00:01:19.215
<00:01:16.795>And <00:01:16.935>this <00:01:17.075>is <00:01:17.215>pretty <00:01:17.355>much <00:01:17.495>what <00:01:17.635>I'm <00:01:17.775>going <00:01:17.915>to <00:01:18.055>talk <00:01:18.195>about.

25
00:01:19.395 --> 00:01:22.215
<00:01:19.395>But <00:01:19.570>first <00:01:19.744>things <00:01:19.920>first, <00:01:20.095>let's <00:01:20.270>quickly <00:01:20.445>talk <00:01:20.619>about <00:01:20.795>me.

26
00:01:22.275 --> 00:01:25.095
<00:01:22.275>So <00:01:22.475>I'm <00:01:22.675>a <00:01:22.875>self <00:01:23.075>employed, <00:01:23.275>uh, <00:01:23.475>frontend <00:01:23.675>consultant.

27
00:01:25.475 --> 00:01:28.715
<00:01:25.475>I'm <00:01:25.630>part <00:01:25.786>of <00:01:25.941>the <00:01:26.097>RX <00:01:26.252>S <00:01:26.408>core <00:01:26.563>team <00:01:26.719>since <00:01:26.875>middle

28
00:01:28.715 --> 00:01:30.355
<00:01:28.715>of <00:01:29.065>2018, <00:01:29.415>something <00:01:29.765>like <00:01:30.115>that.

29
00:01:31.035 --> 00:01:33.395
<00:01:31.035>I <00:01:31.268>stream <00:01:31.501>twice <00:01:31.735>a <00:01:31.968>week <00:01:32.201>on <00:01:32.435>Twitch

30
00:01:33.395 --> 00:01:34.835
<00:01:33.395>with <00:01:33.654>the <00:01:33.913>Handle <00:01:34.172>Craft <00:01:34.431>program <00:01:34.691>tv.

31
00:01:35.175 --> 00:01:37.435
<00:01:35.175>I'm <00:01:35.408>usually <00:01:35.641>talking <00:01:35.875>about <00:01:36.108>something <00:01:36.341>code <00:01:36.575>related,

32
00:01:37.455 --> 00:01:38.635
<00:01:37.455>mostly <00:01:38.517>RXS.

33
00:01:39.315 --> 00:01:43.255
<00:01:39.315>Surprise, <00:01:39.515>surprise. <00:01:39.715>I'm <00:01:39.914>also <00:01:40.115>organizing <00:01:40.315>an <00:01:40.515>Angular <00:01:40.715>meetup

34
00:01:43.255 --> 00:01:44.375
<00:01:43.255>here <00:01:43.759>in <00:01:44.263>ol.

35
00:01:45.075 --> 00:01:46.335
<00:01:45.075>And <00:01:45.358>if <00:01:45.642>you <00:01:45.925>don't <00:01:46.209>want

36
00:01:46.335 --> 00:01:48.295
<00:01:46.335>to <00:01:46.510>talk <00:01:46.685>about <00:01:46.860>RXS <00:01:47.035>to <00:01:47.210>me, <00:01:47.385>that's <00:01:47.560>totally <00:01:47.735>fine.

37
00:01:48.495 --> 00:01:49.735
<00:01:48.495>I <00:01:48.774>love <00:01:49.053>talking <00:01:49.332>about <00:01:49.611>steak

38
00:01:49.735 --> 00:01:52.615
<00:01:49.735>and <00:01:49.910>whiskey, <00:01:50.085>so, <00:01:50.260>uh, <00:01:50.435>feel <00:01:50.610>free <00:01:50.785>to <00:01:50.960>reach <00:01:51.135>out

39
00:01:52.615 --> 00:01:53.695
<00:01:52.615>to <00:01:52.777>me <00:01:52.939>if <00:01:53.101>you <00:01:53.263>have <00:01:53.425>any <00:01:53.586>questions

40
00:01:53.695 --> 00:01:54.935
<00:01:53.695>about <00:01:53.918>this <00:01:54.141>kind <00:01:54.364>of <00:01:54.587>stuff <00:01:54.811>too.

41
00:01:56.175 --> 00:01:57.825
<00:01:56.175>Okay, <00:01:56.524>back <00:01:56.875>to <00:01:57.225>the <00:01:57.575>talk.

42
00:01:58.885 --> 00:02:00.985
<00:01:58.884>So <00:01:59.059>this <00:01:59.234>is <00:01:59.410>kind <00:01:59.585>of <00:01:59.759>what <00:01:59.934>RXS <00:02:00.109>looks <00:02:00.285>like.

43
00:02:00.985 --> 00:02:03.945
<00:02:00.985>There <00:02:01.185>are <00:02:01.385>a <00:02:01.585>huge <00:02:01.785>variety <00:02:01.985>of <00:02:02.185>different <00:02:02.385>terms

44
00:02:04.565 --> 00:02:06.785
<00:02:04.565>and <00:02:04.720>when <00:02:04.876>you <00:02:05.031>start <00:02:05.187>learning <00:02:05.342>it, <00:02:05.498>you <00:02:05.653>have <00:02:05.809>the <00:02:05.965>impression

45
00:02:06.785 --> 00:02:08.865
<00:02:06.785>that <00:02:06.940>you <00:02:07.096>need <00:02:07.251>to <00:02:07.407>learn <00:02:07.562>about <00:02:07.718>all <00:02:07.873>those <00:02:08.029>fancy <00:02:08.185>terms

46
00:02:08.885 --> 00:02:10.665
<00:02:08.884>and <00:02:09.118>all <00:02:09.351>this <00:02:09.584>different <00:02:09.818>kind <00:02:10.051>of <00:02:10.285>concepts.

47
00:02:11.165 --> 00:02:12.625
<00:02:11.165>And <00:02:11.427>that's <00:02:11.690>actually <00:02:11.953>not <00:02:12.216>the <00:02:12.478>case.

48
00:02:13.295 --> 00:02:16.715
<00:02:13.295>So <00:02:13.422>because <00:02:13.549>once <00:02:13.676>there <00:02:13.804>was <00:02:13.931>a <00:02:14.058>very <00:02:14.185>wise <00:02:14.313>man <00:02:14.440>that <00:02:14.567>said, <00:02:14.695>uh,

49
00:02:16.905 --> 00:02:18.595
<00:02:16.905>observables <00:02:17.371>don't <00:02:17.838>cause <00:02:18.305>problem

50
00:02:18.675 --> 00:02:20.395
<00:02:18.675>establishing <00:02:19.141>a <00:02:19.608>reactive <00:02:20.075>mindset.

51
00:02:20.585 --> 00:02:23.995
<00:02:20.585>Thus, <00:02:20.725>and <00:02:20.865>this <00:02:21.005>is <00:02:21.145>pretty <00:02:21.285>much <00:02:21.425>the <00:02:21.565>gist <00:02:21.705>of <00:02:21.845>my <00:02:21.985>talk.

52
00:02:24.255 --> 00:02:27.635
<00:02:24.255>So, <00:02:24.382>um, <00:02:24.509>you <00:02:24.636>don't <00:02:24.764>need <00:02:24.891>to <00:02:25.018>know <00:02:25.145>about <00:02:25.273>all <00:02:25.400>the <00:02:25.527>different <00:02:25.655>kind

53
00:02:27.635 --> 00:02:29.435
<00:02:27.635>of <00:02:27.915>observables, <00:02:28.195>all <00:02:28.475>the <00:02:28.755>different <00:02:29.035>kind

54
00:02:29.435 --> 00:02:31.155
<00:02:29.435>of <00:02:29.715>operators <00:02:29.995>on <00:02:30.275>all <00:02:30.555>that <00:02:30.835>stuff.

55
00:02:31.155 --> 00:02:33.275
<00:02:31.155>That's <00:02:31.330>not <00:02:31.505>the, <00:02:31.680>the <00:02:31.855>big <00:02:32.030>deal <00:02:32.205>of <00:02:32.380>a <00:02:32.555>access,

56
00:02:33.275 --> 00:02:35.275
<00:02:33.275>even <00:02:33.450>though <00:02:33.625>it's <00:02:33.800>super <00:02:33.975>important, <00:02:34.150>don't <00:02:34.325>get <00:02:34.500>me <00:02:34.675>wrong.

57
00:02:36.025 --> 00:02:38.765
<00:02:36.025>But <00:02:36.225>what's <00:02:36.425>very <00:02:36.625>important <00:02:36.825>is <00:02:37.025>establishing <00:02:37.225>this <00:02:37.425>reactive,

58
00:02:38.765 --> 00:02:41.845
<00:02:38.765>this <00:02:38.920>reactive <00:02:39.076>mindset, <00:02:39.231>okay, <00:02:39.387>how <00:02:39.542>do <00:02:39.698>I <00:02:39.853>tackle <00:02:40.009>a <00:02:40.165>problem?

59
00:02:42.755 --> 00:02:44.655
<00:02:42.755>How <00:02:42.930>do <00:02:43.105>I <00:02:43.280>solve <00:02:43.454>that <00:02:43.630>in <00:02:43.805>a <00:02:43.980>reactive <00:02:44.155>manner?

60
00:02:45.915 --> 00:02:48.775
<00:02:45.915>And <00:02:46.114>the <00:02:46.315>best <00:02:46.515>way <00:02:46.715>to <00:02:46.915>learn <00:02:47.114>this <00:02:47.315>is

61
00:02:48.955 --> 00:02:50.615
<00:02:48.954>by <00:02:49.188>comparing <00:02:49.421>it <00:02:49.654>to <00:02:49.888>a <00:02:50.121>foreign <00:02:50.355>language.

62
00:02:51.155 --> 00:02:54.015
<00:02:51.155>So <00:02:51.310>maybe <00:02:51.466>you <00:02:51.621>remember <00:02:51.777>that <00:02:51.932>you <00:02:52.088>learned <00:02:52.243>a <00:02:52.399>foreign <00:02:52.555>language

63
00:02:54.155 --> 00:02:57.575
<00:02:54.155>and <00:02:54.310>for <00:02:54.466>me, <00:02:54.621>my <00:02:54.777>first <00:02:54.932>foreign <00:02:55.088>language <00:02:55.243>was <00:02:55.399>learning <00:02:55.555>English.

64
00:02:58.275 --> 00:03:03.075
<00:02:58.275>So, <00:02:58.450>um, <00:02:58.625>usually <00:02:58.800>I <00:02:58.975>speak <00:02:59.150>German, <00:02:59.325>surprise, <00:02:59.500>surprise, <00:02:59.675>uh,

65
00:03:03.495 --> 00:03:05.795
<00:03:03.495>but <00:03:03.695>when <00:03:03.895>you <00:03:04.095>compare <00:03:04.295>those <00:03:04.495>two <00:03:04.695>different <00:03:04.895>language,

66
00:03:05.855 --> 00:03:07.195
<00:03:05.855>you <00:03:06.096>will <00:03:06.337>notice <00:03:06.578>that <00:03:06.819>you <00:03:07.060>have

67
00:03:07.775 --> 00:03:11.195
<00:03:07.775>at <00:03:07.950>the <00:03:08.125>beginning <00:03:08.300>like <00:03:08.475>tell <00:03:08.650>similar <00:03:08.825>terms, <00:03:09.000>like <00:03:09.175>hello,

68
00:03:11.205 --> 00:03:12.755
<00:03:11.205>which <00:03:11.553>is <00:03:11.902>hello <00:03:12.251>in <00:03:12.600>English.

69
00:03:12.865 --> 00:03:14.675
<00:03:12.865>Even <00:03:13.098>though <00:03:13.331>you <00:03:13.565>might <00:03:13.798>not <00:03:14.031>know <00:03:14.265>completely

70
00:03:14.675 --> 00:03:16.195
<00:03:14.675>what <00:03:14.903>it <00:03:15.131>is <00:03:15.359>just <00:03:15.587>from <00:03:15.815>the <00:03:16.043>sound

71
00:03:16.195 --> 00:03:19.555
<00:03:16.195>and <00:03:16.370>everything, <00:03:16.545>you <00:03:16.720>could <00:03:16.894>understand <00:03:17.070>it, <00:03:17.245>that's <00:03:17.420>fairly <00:03:17.595>okay.

72
00:03:20.095 --> 00:03:22.395
<00:03:20.095>Uh, <00:03:20.250>there <00:03:20.406>are <00:03:20.561>also <00:03:20.717>terms <00:03:20.872>that <00:03:21.028>are <00:03:21.183>completely <00:03:21.339>the <00:03:21.495>same.

73
00:03:22.455 --> 00:03:25.875
<00:03:22.454>So <00:03:22.582>we <00:03:22.709>have <00:03:22.836>code <00:03:22.964>and <00:03:23.091>code <00:03:23.218>and <00:03:23.345>also <00:03:23.473>kindergarten <00:03:23.600>is <00:03:23.727>the <00:03:23.855>same.

74
00:03:26.235 --> 00:03:29.075
<00:03:26.235>Poltergeist, <00:03:26.410>those <00:03:26.585>kind <00:03:26.760>of <00:03:26.935>terms <00:03:27.110>are <00:03:27.285>for <00:03:27.460>historic <00:03:27.635>reasons,

75
00:03:29.075 --> 00:03:30.955
<00:03:29.075>completely <00:03:29.308>the <00:03:29.541>same <00:03:29.774>in <00:03:30.008>German <00:03:30.241>and <00:03:30.475>English.

76
00:03:31.495 --> 00:03:33.775
<00:03:31.495>And <00:03:31.775>there <00:03:32.055>are <00:03:32.335>also <00:03:32.615>things <00:03:32.895>that

77
00:03:34.655 --> 00:03:36.525
<00:03:34.655>don't <00:03:34.888>necessarily <00:03:35.121>make <00:03:35.355>any <00:03:35.588>kind <00:03:35.821>of <00:03:36.055>sense.

78
00:03:36.665 --> 00:03:40.405
<00:03:36.665>So <00:03:36.792>in <00:03:36.919>Germany <00:03:37.046>we <00:03:37.174>have <00:03:37.301>that <00:03:37.428>saying <00:03:37.555>of <00:03:37.683>an <00:03:37.810>worm <00:03:37.937>which <00:03:38.065>is

79
00:03:41.525 --> 00:03:42.925
<00:03:41.525>directly <00:03:41.945>translated <00:03:42.365>in <00:03:42.785>earworm,

80
00:03:42.925 --> 00:03:45.725
<00:03:42.925>which <00:03:43.275>sounds <00:03:43.625>quite <00:03:43.975>disgusting <00:03:44.325>honestly.

81
00:03:46.225 --> 00:03:49.245
<00:03:46.225>Uh, <00:03:46.341>but <00:03:46.458>it's <00:03:46.575>just <00:03:46.691>when <00:03:46.808>you <00:03:46.924>have <00:03:47.041>a <00:03:47.158>song <00:03:47.275>stuck <00:03:47.391>in <00:03:47.508>your <00:03:47.625>hand

82
00:03:49.245 --> 00:03:52.645
<00:03:49.245>and <00:03:49.361>you <00:03:49.478>keep <00:03:49.595>singing <00:03:49.711>it <00:03:49.828>and <00:03:49.945>uh, <00:03:50.061>that's <00:03:50.178>what <00:03:50.295>we <00:03:50.411>call <00:03:50.528>an <00:03:50.645>worm.

83
00:03:53.585 --> 00:03:56.925
<00:03:53.585>So <00:03:53.818>the <00:03:54.051>same <00:03:54.285>goes <00:03:54.518>actually <00:03:54.751>for <00:03:54.985>imperative

84
00:03:57.065 --> 00:03:58.205
<00:03:57.065>and <00:03:57.578>reactive <00:03:58.090>programming.

85
00:03:58.225 --> 00:04:01.605
<00:03:58.225>So <00:03:58.352>most <00:03:58.479>developers <00:03:58.606>that <00:03:58.734>I <00:03:58.861>met <00:03:58.988>be, <00:03:59.115>uh, <00:03:59.243>so <00:03:59.370>far <00:03:59.497>are <00:03:59.625>used

86
00:04:01.605 --> 00:04:03.045
<00:04:01.605>to <00:04:01.864>some <00:04:02.123>kind <00:04:02.382>of <00:04:02.641>imperative <00:04:02.900>program.

87
00:04:03.545 --> 00:04:04.925
<00:04:03.545>So <00:04:04.166>this <00:04:04.787>uh,

88
00:04:04.935 --> 00:04:07.445
<00:04:04.935>comparison <00:04:05.110>here <00:04:05.285>fits <00:04:05.460>quite <00:04:05.635>well <00:04:05.810>for <00:04:05.985>that <00:04:06.160>very <00:04:06.335>reason.

89
00:04:08.185 --> 00:04:11.445
<00:04:08.185>Um, <00:04:08.360>so <00:04:08.535>usually <00:04:08.710>when <00:04:08.885>you're <00:04:09.060>dealing <00:04:09.235>with <00:04:09.410>imperative <00:04:09.585>code,

90
00:04:11.445 --> 00:04:12.925
<00:04:11.445>what <00:04:11.667>you're <00:04:11.889>doing <00:04:12.111>is <00:04:12.333>if <00:04:12.555>you <00:04:12.777>want

91
00:04:12.925 --> 00:04:14.805
<00:04:12.925>to <00:04:13.158>access <00:04:13.391>the <00:04:13.625>first <00:04:13.858>element <00:04:14.091>in <00:04:14.325>array,

92
00:04:15.025 --> 00:04:17.285
<00:04:15.025>you're <00:04:15.258>doing <00:04:15.491>like <00:04:15.725>array <00:04:15.958>at <00:04:16.191>index <00:04:16.425>zero

93
00:04:18.315 --> 00:04:20.295
<00:04:18.315>or <00:04:18.470>if <00:04:18.626>you <00:04:18.781>want <00:04:18.937>to <00:04:19.092>create <00:04:19.248>an <00:04:19.403>array <00:04:19.559>of <00:04:19.714>values,

94
00:04:20.315 --> 00:04:22.255
<00:04:20.315>you're <00:04:20.548>using <00:04:20.781>the <00:04:21.015>spread <00:04:21.248>operator <00:04:21.481>for <00:04:21.714>example.

95
00:04:22.315 --> 00:04:23.615
<00:04:22.315>And <00:04:22.510>just <00:04:22.705>by <00:04:22.900>looking <00:04:23.095>at <00:04:23.290>the <00:04:23.485>code

96
00:04:23.635 --> 00:04:26.415
<00:04:23.635>and <00:04:23.835>the <00:04:24.034>reactive <00:04:24.235>uh, <00:04:24.435>pond <00:04:24.635>onto <00:04:24.835>that <00:04:25.034>first

97
00:04:26.435 --> 00:04:30.125
<00:04:26.435>and <00:04:26.590>two <00:04:26.746>array, <00:04:26.901>you'll <00:04:27.057>kind <00:04:27.212>of <00:04:27.368>get <00:04:27.523>it <00:04:27.679>right <00:04:27.835>again.

98
00:04:30.125 --> 00:04:32.605
<00:04:30.125>There <00:04:30.280>are <00:04:30.436>also <00:04:30.591>things <00:04:30.747>that <00:04:30.902>are <00:04:31.058>complete <00:04:31.213>the <00:04:31.369>same <00:04:31.525>filter

99
00:04:32.705 --> 00:04:34.165
<00:04:32.705>and <00:04:33.143>map, <00:04:33.581>uh, <00:04:34.019>just

100
00:04:34.165 --> 00:04:36.965
<00:04:34.165>because <00:04:34.340>we <00:04:34.515>looked <00:04:34.690>at <00:04:34.865>concepts <00:04:35.040>that <00:04:35.215>are <00:04:35.390>already <00:04:35.565>existing,

101
00:04:37.425 --> 00:04:40.765
<00:04:37.425>but <00:04:37.600>due <00:04:37.775>to <00:04:37.950>the <00:04:38.125>way <00:04:38.300>we <00:04:38.475>implemented <00:04:38.650>the <00:04:38.825>observables

102
00:04:40.965 --> 00:04:43.285
<00:04:40.965>specifically <00:04:41.315>to <00:04:41.665>provide <00:04:42.015>reactive <00:04:42.365>manners,

103
00:04:43.475 --> 00:04:45.005
<00:04:43.475>some <00:04:43.750>things <00:04:44.025>doesn't <00:04:44.301>really <00:04:44.576>make <00:04:44.852>sense.

104
00:04:45.105 --> 00:04:47.765
<00:04:45.105>So <00:04:45.305>if <00:04:45.505>you're, <00:04:45.705>for <00:04:45.905>example, <00:04:46.105>starting, <00:04:46.305>uh, <00:04:46.505>one

105
00:04:47.765 --> 00:04:49.805
<00:04:47.765>of <00:04:47.905>the <00:04:48.044>very <00:04:48.185>first <00:04:48.325>things <00:04:48.465>that <00:04:48.604>you <00:04:48.745>need <00:04:48.885>to <00:04:49.025>learn <00:04:49.164>is

106
00:04:49.805 --> 00:04:51.525
<00:04:49.805>that <00:04:50.005>you <00:04:50.205>need <00:04:50.405>to <00:04:50.605>subscribe <00:04:50.805>to <00:04:51.005>an <00:04:51.205>observable

107
00:04:52.225 --> 00:04:55.165
<00:04:52.225>and <00:04:52.400>usually <00:04:52.575>you're <00:04:52.750>just <00:04:52.925>used <00:04:53.100>to <00:04:53.275>calling <00:04:53.450>some <00:04:53.625>method

108
00:04:55.225 --> 00:04:57.285
<00:04:55.225>and <00:04:55.380>then <00:04:55.536>you <00:04:55.691>get <00:04:55.847>the <00:04:56.002>value <00:04:56.158>out <00:04:56.313>of <00:04:56.469>it, <00:04:56.625>right?

109
00:04:57.305 --> 00:04:59.085
<00:04:57.305>It <00:04:57.505>returns <00:04:57.705>something <00:04:57.905>and <00:04:58.105>you <00:04:58.305>get <00:04:58.505>it <00:04:58.705>immediately.

110
00:04:59.085 --> 00:05:01.405
<00:04:59.085>That's <00:04:59.318>the <00:04:59.551>way <00:04:59.784>Inertive <00:05:00.018>programming <00:05:00.251>is <00:05:00.484>working

111
00:05:01.625 --> 00:05:03.925
<00:05:01.625>and <00:05:01.800>now <00:05:01.975>you <00:05:02.150>have <00:05:02.325>to <00:05:02.500>subscribe <00:05:02.675>to <00:05:02.850>something <00:05:03.025>that's

112
00:05:03.925 --> 00:05:05.485
<00:05:03.925>that's <00:05:04.125>kind <00:05:04.325>of <00:05:04.525>weird, <00:05:04.725>it <00:05:04.925>doesn't <00:05:05.125>feel <00:05:05.325>right.

113
00:05:06.185 --> 00:05:10.045
<00:05:06.185>Um, <00:05:06.885>but <00:05:07.585>all

114
00:05:10.165 --> 00:05:13.165
<00:05:10.165>that <00:05:10.320>I'm <00:05:10.476>saying <00:05:10.631>here <00:05:10.787>is <00:05:10.942>learning <00:05:11.098>a <00:05:11.253>language <00:05:11.409>needs <00:05:11.565>a

115
00:05:13.195 --> 00:05:14.365
<00:05:13.195>huge <00:05:13.546>amount <00:05:13.897>of <00:05:14.248>practice.

116
00:05:14.665 --> 00:05:16.645
<00:05:14.665>And <00:05:14.898>the <00:05:15.131>same <00:05:15.365>goes <00:05:15.598>for <00:05:15.831>thinking <00:05:16.065>reactively.

117
00:05:17.225 --> 00:05:19.365
<00:05:17.225>To <00:05:17.458>establish <00:05:17.691>this <00:05:17.925>reactive <00:05:18.158>mindsets, <00:05:18.391>you <00:05:18.625>need

118
00:05:19.365 --> 00:05:22.405
<00:05:19.365>to <00:05:19.565>practice <00:05:19.765>a <00:05:19.965>lot <00:05:20.165>need <00:05:20.365>to <00:05:20.565>practice <00:05:20.765>constantly.

119
00:05:23.145 --> 00:05:26.165
<00:05:23.145>And <00:05:23.272>the <00:05:23.399>best <00:05:23.526>way <00:05:23.654>to <00:05:23.781>learn <00:05:23.908>coding <00:05:24.035>is <00:05:24.163>by <00:05:24.290>actually <00:05:24.417>doing <00:05:24.544>it.

120
00:05:26.225 --> 00:05:28.605
<00:05:26.225>So <00:05:26.425>what <00:05:26.625>we're <00:05:26.825>going <00:05:27.025>to <00:05:27.225>do <00:05:27.425>is <00:05:27.625>also

121
00:05:28.605 --> 00:05:31.685
<00:05:28.605>because <00:05:28.780>I'm <00:05:28.955>not <00:05:29.130>super <00:05:29.305>good <00:05:29.480>with <00:05:29.655>designing <00:05:29.830>slides, <00:05:30.005>um,

122
00:05:32.225 --> 00:05:34.365
<00:05:32.225>we <00:05:32.458>are <00:05:32.691>going <00:05:32.925>to <00:05:33.158>live <00:05:33.391>code <00:05:33.625>something

123
00:05:34.945 --> 00:05:38.045
<00:05:34.945>and <00:05:35.072>what <00:05:35.199>I <00:05:35.326>actually <00:05:35.454>want <00:05:35.581>to <00:05:35.708>live <00:05:35.835>code <00:05:35.963>is <00:05:36.090>such <00:05:36.217>a <00:05:36.344>Caruso.

124
00:05:38.185 --> 00:05:41.765
<00:05:38.185>So <00:05:38.301>what <00:05:38.418>I <00:05:38.535>can <00:05:38.651>do <00:05:38.768>is <00:05:38.885>I <00:05:39.001>can <00:05:39.118>swipe <00:05:39.235>through <00:05:39.351>these <00:05:39.468>images <00:05:39.585>here.

125
00:05:42.245 --> 00:05:44.285
<00:05:42.245>I <00:05:42.420>can <00:05:42.595>also <00:05:42.770>use <00:05:42.945>the <00:05:43.120>keyboard <00:05:43.295>navigation <00:05:43.470>to <00:05:43.645>that

126
00:05:44.705 --> 00:05:48.845
<00:05:44.705>and <00:05:44.984>that <00:05:45.265>it's <00:05:45.544>apparently <00:05:45.825>working <00:05:46.104>when

127
00:05:48.885 --> 00:05:49.965
<00:05:48.885>I <00:05:49.079>used <00:05:49.273>the <00:05:49.468>ikey <00:05:49.662>for <00:05:49.857>that.

128
00:05:50.545 --> 00:05:52.765
<00:05:50.545>Um, <00:05:50.745>and <00:05:50.945>also <00:05:51.145>there's <00:05:51.345>a <00:05:51.545>timer <00:05:51.745>integrated, <00:05:51.945>so

129
00:05:52.765 --> 00:05:56.485
<00:05:52.765>after <00:05:52.920>n <00:05:53.076>seconds <00:05:53.231>it'll <00:05:53.387>go <00:05:53.542>automatically <00:05:53.698>to <00:05:53.853>the <00:05:54.009>next <00:05:54.164>slide.

130
00:05:56.825 --> 00:05:59.125
<00:05:56.825>So <00:05:56.980>this <00:05:57.136>is <00:05:57.291>what <00:05:57.447>we <00:05:57.602>are <00:05:57.758>trying <00:05:57.913>to <00:05:58.069>build <00:05:58.224>now

131
00:05:59.385 --> 00:06:02.405
<00:05:59.385>and <00:05:59.540>I <00:05:59.696>prepared <00:05:59.851>a <00:06:00.007>little <00:06:00.162>bit <00:06:00.318>of <00:06:00.473>code <00:06:00.629>for <00:06:00.784>that.

132
00:06:02.785 --> 00:06:04.365
<00:06:02.785>Um, <00:06:04.185>so

133
00:06:04.365 --> 00:06:08.085
<00:06:04.365>what <00:06:04.492>we <00:06:04.619>have <00:06:04.746>here <00:06:04.874>is <00:06:05.001>we <00:06:05.128>already <00:06:05.255>have <00:06:05.383>our <00:06:05.510>touch <00:06:05.637>start <00:06:05.765>event

134
00:06:08.195 --> 00:06:11.365
<00:06:08.195>because <00:06:08.350>I <00:06:08.506>also <00:06:08.661>want <00:06:08.817>to <00:06:08.972>support <00:06:09.128>touch <00:06:09.283>and <00:06:09.439>mouse <00:06:09.594>events.

135
00:06:11.905 --> 00:06:14.365
<00:06:11.905>Uh, <00:06:12.021>so <00:06:12.138>what <00:06:12.255>we <00:06:12.371>are <00:06:12.488>doing <00:06:12.604>here <00:06:12.721>is <00:06:12.838>we <00:06:12.955>are <00:06:13.071>merging <00:06:13.188>those <00:06:13.304>two,

136
00:06:15.105 --> 00:06:19.645
<00:06:15.105>um, <00:06:15.280>and <00:06:15.455>don't <00:06:15.630>care <00:06:15.805>about <00:06:15.980>this <00:06:16.155>prevent <00:06:16.330>event <00:06:16.505>propagation

137
00:06:19.645 --> 00:06:23.405
<00:06:19.645>because <00:06:19.844>this <00:06:20.044>otherwise <00:06:20.245>touching <00:06:20.445>would <00:06:20.645>trigger <00:06:20.844>my <00:06:21.044>slides.

138
00:06:23.545 --> 00:06:24.925
<00:06:23.545>So <00:06:23.793>therefore <00:06:24.041>I <00:06:24.290>added <00:06:24.538>this <00:06:24.787>here.

139
00:06:26.295 --> 00:06:29.075
<00:06:26.295>Um, <00:06:26.495>and <00:06:26.695>what <00:06:26.895>we <00:06:27.095>want <00:06:27.295>to <00:06:27.495>do <00:06:27.695>for,

140
00:06:29.145 --> 00:06:30.755
<00:06:29.145>because <00:06:29.378>what <00:06:29.611>pretty <00:06:29.844>much <00:06:30.078>is <00:06:30.311>a <00:06:30.544>swipe,

141
00:06:30.875 --> 00:06:33.515
<00:06:30.875>a <00:06:31.030>swipe <00:06:31.186>is <00:06:31.341>a <00:06:31.497>mouse <00:06:31.652>click, <00:06:31.808>then <00:06:31.963>remove <00:06:32.119>the <00:06:32.275>mouse

142
00:06:33.775 --> 00:06:35.635
<00:06:33.775>and <00:06:33.974>we <00:06:34.174>are <00:06:34.375>interest <00:06:34.575>in <00:06:34.775>the <00:06:34.974>move <00:06:35.174>values

143
00:06:35.845 --> 00:06:37.075
<00:06:35.845>until <00:06:36.121>we <00:06:36.398>release <00:06:36.675>them <00:06:36.952>all.

144
00:06:37.175 --> 00:06:38.515
<00:06:37.175>So <00:06:37.416>this <00:06:37.657>is <00:06:37.898>what <00:06:38.139>we're <00:06:38.381>implementing.

145
00:06:38.575 --> 00:06:40.955
<00:06:38.575>So <00:06:38.730>we <00:06:38.886>have <00:06:39.041>to <00:06:39.197>start <00:06:39.352>with <00:06:39.508>our <00:06:39.663>touch <00:06:39.819>start <00:06:39.974>here

146
00:06:41.735 --> 00:06:44.835
<00:06:41.735>and <00:06:41.910>then <00:06:42.085>we <00:06:42.260>apply <00:06:42.435>the <00:06:42.610>switch <00:06:42.785>map <00:06:42.960>operator <00:06:43.135>here.

147
00:06:45.695 --> 00:06:48.755
<00:06:45.695>So <00:06:45.822>we <00:06:45.949>are <00:06:46.076>saying, <00:06:46.204>okay, <00:06:46.331>use <00:06:46.458>the <00:06:46.585>touch <00:06:46.713>start <00:06:46.840>as <00:06:46.967>start <00:06:47.094>point

148
00:06:48.895 --> 00:06:52.315
<00:06:48.895>as <00:06:49.050>trigger <00:06:49.206>and <00:06:49.361>then <00:06:49.517>listen <00:06:49.672>to <00:06:49.828>all <00:06:49.983>the <00:06:50.139>touch <00:06:50.294>moves.

149
00:06:53.255 --> 00:06:55.715
<00:06:53.255>So <00:06:53.455>we're <00:06:53.655>getting <00:06:53.855>here <00:06:54.055>at <00:06:54.255>start <00:06:54.455>event <00:06:54.655>in

150
00:06:55.815 --> 00:06:59.395
<00:06:55.815>and <00:06:55.942>then <00:06:56.069>we <00:06:56.196>say, <00:06:56.324>okay, <00:06:56.451>please <00:06:56.578>listen <00:06:56.705>to <00:06:56.833>all <00:06:56.960>our <00:06:57.087>touch <00:06:57.215>moves

151
00:07:01.135 --> 00:07:02.995
<00:07:01.135>and <00:07:01.335>we <00:07:01.534>need <00:07:01.735>to <00:07:01.935>pass <00:07:02.135>the <00:07:02.335>start <00:07:02.534>event

152
00:07:02.995 --> 00:07:05.075
<00:07:02.995>because <00:07:03.275>this <00:07:03.555>is <00:07:03.835>used <00:07:04.115>to <00:07:04.395>uh,

153
00:07:05.145 --> 00:07:07.955
<00:07:05.145>calculate <00:07:05.320>the <00:07:05.495>threshold <00:07:05.669>in <00:07:05.844>which <00:07:06.020>direction <00:07:06.195>I <00:07:06.370>moved <00:07:06.544>to

154
00:07:08.105 --> 00:07:09.155
<00:07:08.105>what <00:07:08.294>image <00:07:08.483>I <00:07:08.671>want <00:07:08.861>to <00:07:09.049>go.

155
00:07:10.175 --> 00:07:14.715
<00:07:10.175>So <00:07:10.315>again, <00:07:10.455>in <00:07:10.595>our <00:07:10.735>touch <00:07:10.875>move, <00:07:11.015>uh, <00:07:11.155>we <00:07:11.295>use <00:07:11.435>a <00:07:11.575>combination

156
00:07:14.715 --> 00:07:16.395
<00:07:14.715>of <00:07:14.948>touch, <00:07:15.181>move, <00:07:15.414>and <00:07:15.648>mouse <00:07:15.881>move <00:07:16.114>so

157
00:07:16.395 --> 00:07:18.995
<00:07:16.395>that <00:07:16.534>I <00:07:16.674>can <00:07:16.815>support <00:07:16.955>both <00:07:17.094>different <00:07:17.234>kind <00:07:17.375>of <00:07:17.515>devices <00:07:17.655>with <00:07:17.794>that.

158
00:07:19.855 --> 00:07:24.275
<00:07:19.855>Uh, <00:07:19.971>the <00:07:20.088>next <00:07:20.205>thing <00:07:20.321>we <00:07:20.438>are <00:07:20.555>going <00:07:20.671>to <00:07:20.788>do <00:07:20.905>is <00:07:21.021>apply <00:07:21.138>observe <00:07:21.255>on,

159
00:07:25.725 --> 00:07:29.175
<00:07:25.725>observe <00:07:25.900>on <00:07:26.075>is <00:07:26.250>in <00:07:26.425>this <00:07:26.600>thing <00:07:26.775>more <00:07:26.950>like <00:07:27.125>a

160
00:07:29.175 --> 00:07:31.215
<00:07:29.175>performance <00:07:30.575>optimization.

161
00:07:31.235 --> 00:07:33.735
<00:07:31.235>The <00:07:31.435>code <00:07:31.635>would <00:07:31.835>work <00:07:32.035>completely <00:07:32.235>the <00:07:32.435>same, <00:07:32.635>uh,

162
00:07:33.805 --> 00:07:34.975
<00:07:33.805>without <00:07:34.331>this <00:07:34.858>operator,

163
00:07:35.035 --> 00:07:37.535
<00:07:35.034>but <00:07:35.190>what <00:07:35.346>it's <00:07:35.501>doing <00:07:35.657>when <00:07:35.812>I <00:07:35.968>pass <00:07:36.123>the <00:07:36.279>animation <00:07:36.434>frame

164
00:07:37.565 --> 00:07:39.895
<00:07:37.565>scheduler <00:07:37.844>here <00:07:38.125>is <00:07:38.405>that <00:07:38.685>it <00:07:38.965>pass

165
00:07:40.275 --> 00:07:43.575
<00:07:40.275>or <00:07:40.430>it <00:07:40.586>schedules <00:07:40.741>the <00:07:40.897>value <00:07:41.052>emission <00:07:41.208>every <00:07:41.363>time <00:07:41.519>the <00:07:41.674>animation

166
00:07:43.705 --> 00:07:46.535
<00:07:43.705>frame <00:07:43.844>event <00:07:43.984>happens, <00:07:44.125>which <00:07:44.265>means <00:07:44.405>the <00:07:44.544>browser <00:07:44.685>is <00:07:44.825>an <00:07:44.965>idle <00:07:45.104>and

167
00:07:46.535 --> 00:07:47.575
<00:07:46.534>therefore <00:07:46.847>can <00:07:47.159>render <00:07:47.471>something.

168
00:07:48.355 --> 00:07:51.055
<00:07:48.355>Uh, <00:07:48.530>if <00:07:48.705>you <00:07:48.880>want <00:07:49.055>to <00:07:49.230>learn <00:07:49.405>more <00:07:49.580>about <00:07:49.755>schedulers,

169
00:07:51.055 --> 00:07:53.335
<00:07:51.055>particularly <00:07:51.405>there <00:07:51.755>are <00:07:52.105>great <00:07:52.455>talks

170
00:07:53.335 --> 00:07:56.215
<00:07:53.335>by <00:07:53.490>Michael <00:07:53.646>Luki <00:07:53.801>on <00:07:53.957>YouTube, <00:07:54.112>you <00:07:54.268>just <00:07:54.423>have <00:07:54.579>to <00:07:54.734>search

171
00:07:56.275 --> 00:07:57.855
<00:07:56.275>for <00:07:56.741>IX <00:07:57.208>scheduler <00:07:57.674>properly,

172
00:07:57.855 --> 00:07:59.415
<00:07:57.855>then <00:07:58.088>you'll <00:07:58.321>already <00:07:58.555>find <00:07:58.788>it <00:07:59.021>on <00:07:59.255>YouTube.

173
00:08:00.145 --> 00:08:01.725
<00:08:00.145>Uh, <00:08:00.344>the <00:08:00.544>next <00:08:00.745>thing <00:08:00.945>we <00:08:01.145>need <00:08:01.344>to <00:08:01.544>do,

174
00:08:01.905 --> 00:08:03.485
<00:08:01.905>and <00:08:02.138>this <00:08:02.371>is <00:08:02.604>what <00:08:02.838>I <00:08:03.071>already <00:08:03.304>mentioned

175
00:08:03.485 --> 00:08:06.725
<00:08:03.485>before, <00:08:03.685>is <00:08:03.885>swipe <00:08:04.085>gesture <00:08:04.285>is <00:08:04.485>uh, <00:08:04.685>mouse <00:08:04.885>down,

176
00:08:07.175 --> 00:08:08.765
<00:08:07.175>mouse <00:08:07.525>move <00:08:07.875>til <00:08:08.225>mouse <00:08:08.575>up.

177
00:08:08.765 --> 00:08:10.045
<00:08:08.765>That's <00:08:08.957>pretty <00:08:09.149>much <00:08:09.341>what <00:08:09.533>a <00:08:09.725>swipe <00:08:09.917>is.

178
00:08:10.465 --> 00:08:11.485
<00:08:10.465>So <00:08:10.770>we <00:08:11.077>say, <00:08:11.383>okay,

179
00:08:11.585 --> 00:08:14.005
<00:08:11.585>we <00:08:11.760>are <00:08:11.935>interested <00:08:12.109>in <00:08:12.284>all <00:08:12.460>the <00:08:12.635>mo <00:08:12.810>move <00:08:12.984>gestures

180
00:08:14.215 --> 00:08:15.925
<00:08:14.215>until <00:08:14.565>a <00:08:14.914>mouse <00:08:15.265>up <00:08:15.614>happens.

181
00:08:16.995 --> 00:08:21.735
<00:08:16.995>Uh, <00:08:17.122>and <00:08:17.249>again, <00:08:17.376>we <00:08:17.504>want <00:08:17.631>to <00:08:17.758>use <00:08:17.885>um, <00:08:18.013>touch <00:08:18.140>and <00:08:18.267>mouse <00:08:18.395>devices.

182
00:08:21.955 --> 00:08:23.695
<00:08:21.955>So <00:08:22.155>what <00:08:22.354>we're <00:08:22.555>doing <00:08:22.755>here <00:08:22.955>is <00:08:23.155>using <00:08:23.354>race,

183
00:08:24.405 --> 00:08:26.975
<00:08:24.405>it's <00:08:24.638>completely <00:08:24.871>the <00:08:25.104>same <00:08:25.338>as <00:08:25.571>promise <00:08:25.804>race.

184
00:08:27.595 --> 00:08:31.495
<00:08:27.595>Um, <00:08:27.795>so <00:08:27.995>here <00:08:28.195>we <00:08:28.395>are <00:08:28.595>passing <00:08:28.795>from <00:08:28.995>event

185
00:08:32.315 --> 00:08:36.495
<00:08:32.315>native <00:08:32.781>element <00:08:33.248>touch <00:08:33.715>up

186
00:08:38.215 --> 00:08:40.235
<00:08:38.215>I <00:08:38.681>think <00:08:39.148>and <00:08:39.615>mouse.

187
00:08:40.455 --> 00:08:42.475
<00:08:40.455>Now <00:08:40.655>touch <00:08:40.855>end <00:08:41.055>and <00:08:41.255>mouse <00:08:41.455>up. <00:08:41.655>Is <00:08:41.855>it?

188
00:08:42.475 --> 00:08:44.555
<00:08:42.475>Yeah, <00:08:42.755>I <00:08:43.034>always <00:08:43.315>mix <00:08:43.595>those <00:08:43.875>up.

189
00:08:46.215 --> 00:08:49.645
<00:08:46.215>So <00:08:46.915>native <00:08:47.615>element

190
00:08:53.735 --> 00:08:54.845
<00:08:53.735>mouse <00:08:54.734>up.

191
00:08:56.685 --> 00:08:59.335
<00:08:56.685>Okay, <00:08:56.859>the <00:08:57.035>next <00:08:57.209>thing <00:08:57.385>we <00:08:57.560>want <00:08:57.734>to <00:08:57.910>do <00:08:58.084>is

192
00:09:01.005 --> 00:09:02.535
<00:09:01.005>calculate <00:09:01.349>the <00:09:01.693>data <00:09:02.037>pretty <00:09:02.382>much.

193
00:09:03.155 --> 00:09:05.655
<00:09:03.155>And <00:09:03.329>because <00:09:03.505>I'm <00:09:03.680>not <00:09:03.855>able <00:09:04.030>to <00:09:04.204>write <00:09:04.380>that <00:09:04.555>fluently,

194
00:09:05.895 --> 00:09:09.855
<00:09:05.895>I <00:09:06.069>prepared <00:09:06.245>a <00:09:06.420>small <00:09:06.595>helper <00:09:06.770>method <00:09:06.944>for <00:09:07.120>this, <00:09:07.295>uh,

195
00:09:10.005 --> 00:09:13.655
<00:09:10.005>calculate <00:09:10.132>data <00:09:10.259>and <00:09:10.386>in <00:09:10.514>this <00:09:10.641>calculate <00:09:10.768>data <00:09:10.895>we <00:09:11.023>can <00:09:11.150>take <00:09:11.277>a <00:09:11.405>look

196
00:09:13.815 --> 00:09:16.815
<00:09:13.815>at <00:09:14.048>it <00:09:14.281>and <00:09:14.515>pass <00:09:14.748>the <00:09:14.981>items <00:09:15.215>here.

197
00:09:17.555 --> 00:09:19.455
<00:09:17.555>So <00:09:17.729>this <00:09:17.905>is <00:09:18.079>pretty <00:09:18.255>much <00:09:18.430>how <00:09:18.604>you <00:09:18.780>also <00:09:18.954>would

198
00:09:19.455 --> 00:09:20.855
<00:09:19.455>implement <00:09:19.875>a <00:09:20.295>custom <00:09:20.715>operator.

199
00:09:21.395 --> 00:09:24.735
<00:09:21.395>So <00:09:21.535>in <00:09:21.675>this <00:09:21.814>calculate <00:09:21.954>data, <00:09:22.095>I <00:09:22.235>am <00:09:22.375>checking <00:09:22.515>the <00:09:22.655>X <00:09:22.795>coordinate

200
00:09:24.835 --> 00:09:28.895
<00:09:24.835>and <00:09:25.010>uh, <00:09:25.185>map <00:09:25.360>it <00:09:25.535>against <00:09:25.710>the <00:09:25.885>start <00:09:26.060>position <00:09:26.235>so

201
00:09:28.895 --> 00:09:30.895
<00:09:28.895>that <00:09:29.069>I <00:09:29.245>always <00:09:29.420>have <00:09:29.595>the <00:09:29.770>difference <00:09:29.944>between <00:09:30.120>those <00:09:30.295>values

202
00:09:31.235 --> 00:09:33.975
<00:09:31.235>and <00:09:31.435>I <00:09:31.635>use <00:09:31.835>this <00:09:32.035>to <00:09:32.235>animate, <00:09:32.435>have, <00:09:32.635>uh,

203
00:09:34.275 --> 00:09:36.015
<00:09:34.275>to <00:09:34.555>animate <00:09:34.834>the <00:09:35.115>picture <00:09:35.395>pretty <00:09:35.675>much.

204
00:09:37.135 --> 00:09:38.675
<00:09:37.135>Uh, <00:09:37.597>okay, <00:09:38.059>back <00:09:38.521>to

205
00:09:39.525 --> 00:09:42.535
<00:09:39.525>because <00:09:39.725>there's <00:09:39.925>one <00:09:40.125>last <00:09:40.324>thing <00:09:40.525>missing <00:09:40.725>now, <00:09:40.925>uh,

206
00:09:42.915 --> 00:09:46.295
<00:09:42.915>for <00:09:43.031>the <00:09:43.148>final <00:09:43.265>result <00:09:43.381>to <00:09:43.498>see, <00:09:43.615>okay, <00:09:43.731>do <00:09:43.848>the <00:09:43.964>user <00:09:44.081>want <00:09:44.198>to <00:09:44.314>go

207
00:09:46.295 --> 00:09:47.335
<00:09:46.295>to <00:09:46.482>the <00:09:46.669>next <00:09:46.856>page <00:09:47.043>or <00:09:47.231>not?

208
00:09:47.875 --> 00:09:50.815
<00:09:47.875>Uh, <00:09:48.015>we <00:09:48.155>need <00:09:48.295>to <00:09:48.435>get <00:09:48.575>the <00:09:48.715>last <00:09:48.855>value <00:09:48.995>out <00:09:49.135>of <00:09:49.275>this

209
00:09:50.815 --> 00:09:52.855
<00:09:50.815>because <00:09:51.165>the <00:09:51.515>thing <00:09:51.865>is, <00:09:52.215>uh,

210
00:09:53.435 --> 00:09:56.615
<00:09:53.435>if <00:09:53.609>you <00:09:53.785>ever <00:09:53.959>used <00:09:54.135>a <00:09:54.310>mouse <00:09:54.484>event, <00:09:54.660>those <00:09:54.834>happen

211
00:09:57.455 --> 00:09:59.225
<00:09:57.455>million <00:09:57.805>times <00:09:58.155>in <00:09:58.505>a <00:09:58.855>second.

212
00:09:59.925 --> 00:10:03.465
<00:09:59.925>Uh, <00:10:00.064>so <00:10:00.204>we <00:10:00.344>use <00:10:00.484>this <00:10:00.625>to <00:10:00.765>calculate <00:10:00.905>all <00:10:01.045>the <00:10:01.185>difference <00:10:01.324>values

213
00:10:03.565 --> 00:10:06.105
<00:10:03.565>before, <00:10:03.681>but <00:10:03.798>if <00:10:03.915>to <00:10:04.031>see <00:10:04.148>if <00:10:04.265>we <00:10:04.381>want <00:10:04.498>to <00:10:04.615>go <00:10:04.731>to <00:10:04.848>the <00:10:04.965>next

214
00:10:06.105 --> 00:10:08.065
<00:10:06.105>or <00:10:06.260>the <00:10:06.416>previous <00:10:06.571>page, <00:10:06.727>we <00:10:06.882>just <00:10:07.038>take <00:10:07.193>the <00:10:07.349>last <00:10:07.505>one

215
00:10:08.325 --> 00:10:11.715
<00:10:08.325>and <00:10:08.452>then <00:10:08.579>take <00:10:08.706>a <00:10:08.834>look <00:10:08.961>how <00:10:09.088>this, <00:10:09.215>if <00:10:09.343>the <00:10:09.470>threshold <00:10:09.597>is <00:10:09.725>reached.

216
00:10:13.315 --> 00:10:17.725
<00:10:13.315>So <00:10:13.490>we <00:10:13.665>have <00:10:13.840>this, <00:10:14.015>we <00:10:14.190>have <00:10:14.365>our <00:10:14.540>swipe <00:10:14.715>implemented.

217
00:10:18.025 --> 00:10:21.325
<00:10:18.025>Now <00:10:18.180>we, <00:10:18.336>because <00:10:18.491>I <00:10:18.647>later <00:10:18.802>want <00:10:18.958>to <00:10:19.113>merge <00:10:19.269>it <00:10:19.425>together

218
00:10:21.325 --> 00:10:22.445
<00:10:21.325>with <00:10:21.577>left <00:10:21.829>and <00:10:22.081>right <00:10:22.333>arrow.

219
00:10:22.455 --> 00:10:24.005
<00:10:22.455>Click <00:10:22.687>to <00:10:22.920>go <00:10:23.152>to <00:10:23.385>the <00:10:23.617>next <00:10:23.850>page.

220
00:10:24.035 --> 00:10:26.365
<00:10:24.035>I'll <00:10:24.235>prepare <00:10:24.435>this <00:10:24.635>events <00:10:24.834>observable <00:10:25.035>here, <00:10:25.235>which <00:10:25.435>is

221
00:10:26.365 --> 00:10:28.775
<00:10:26.365>for <00:10:26.645>now <00:10:26.925>just <00:10:27.205>this <00:10:27.485>swipe <00:10:27.765>gesture.

222
00:10:29.555 --> 00:10:33.655
<00:10:29.555>And <00:10:29.694>I <00:10:29.834>use <00:10:29.974>this <00:10:30.114>event, <00:10:30.255>uh, <00:10:30.395>here <00:10:30.535>in <00:10:30.675>this <00:10:30.814>merch <00:10:30.954>later

223
00:10:33.755 --> 00:10:35.575
<00:10:33.755>to <00:10:33.988>merge <00:10:34.221>it <00:10:34.455>together <00:10:34.688>with <00:10:34.921>a <00:10:35.155>timer.

224
00:10:35.915 --> 00:10:37.655
<00:10:35.915>And <00:10:36.148>here <00:10:36.381>I <00:10:36.615>just <00:10:36.848>say <00:10:37.081>like, <00:10:37.314>okay,

225
00:10:37.655 --> 00:10:39.895
<00:10:37.655>if <00:10:37.810>the <00:10:37.966>threshold <00:10:38.121>is <00:10:38.277>reached, <00:10:38.432>go <00:10:38.588>to <00:10:38.743>the <00:10:38.899>next <00:10:39.055>page.

226
00:10:39.895 --> 00:10:42.335
<00:10:39.895>If <00:10:40.035>the <00:10:40.175>threshold <00:10:40.314>is <00:10:40.454>not <00:10:40.595>reached, <00:10:40.735>go <00:10:40.875>to <00:10:41.015>the <00:10:41.155>previous <00:10:41.295>page.

227
00:10:43.635 --> 00:10:46.535
<00:10:43.635>Always <00:10:43.810>consider <00:10:43.985>when <00:10:44.160>you're <00:10:44.335>having <00:10:44.510>this <00:10:44.685>in <00:10:44.860>an <00:10:45.035>angular

228
00:10:46.535 --> 00:10:49.375
<00:10:46.535>application <00:10:46.709>because <00:10:46.885>this <00:10:47.060>is <00:10:47.235>pretty <00:10:47.410>much <00:10:47.584>just <00:10:47.760>ular <00:10:47.935>component.

229
00:10:49.995 --> 00:10:54.535
<00:10:49.995>Uh, <00:10:50.170>uh, <00:10:50.345>couple <00:10:50.520>your <00:10:50.695>observables <00:10:50.870>to <00:10:51.045>the <00:10:51.220>lifecycle <00:10:51.395>of

230
00:10:54.535 --> 00:10:58.135
<00:10:54.535>that <00:10:54.675>component <00:10:54.814>so <00:10:54.954>that <00:10:55.094>as <00:10:55.235>soon <00:10:55.375>as <00:10:55.515>the <00:10:55.655>OBS <00:10:55.795>component <00:10:55.935>dies,

231
00:10:58.135 --> 00:10:59.175
<00:10:58.135>this <00:10:58.603>observable <00:10:59.070>dies.

232
00:10:59.175 --> 00:11:00.695
<00:10:59.175>That's <00:10:59.370>what <00:10:59.565>I <00:10:59.761>use <00:10:59.956>this <00:11:00.152>take <00:11:00.347>until <00:11:00.543>here

233
00:11:01.735 --> 00:11:04.595
<00:11:01.735>and <00:11:01.910>the <00:11:02.085>most <00:11:02.260>important <00:11:02.435>part <00:11:02.610>in <00:11:02.785>the <00:11:02.960>end, <00:11:03.135>subscribe

234
00:11:04.595 --> 00:11:06.835
<00:11:04.595>to <00:11:04.795>your <00:11:04.995>observer <00:11:05.195>because <00:11:05.395>otherwise <00:11:05.595>nothing <00:11:05.795>will <00:11:05.995>happen.

235
00:11:07.815 --> 00:11:11.035
<00:11:07.815>Uh, <00:11:07.955>okay, <00:11:08.095>so <00:11:08.235>now <00:11:08.375>let's <00:11:08.515>see <00:11:08.655>if <00:11:08.795>I <00:11:08.935>made <00:11:09.075>a <00:11:09.215>mistake.

236
00:11:11.415 --> 00:11:12.675
<00:11:11.415>So <00:11:11.793>I <00:11:12.170>prepared <00:11:12.549>this

237
00:11:13.135 --> 00:11:17.875
<00:11:13.135>and <00:11:13.368>when <00:11:13.601>I <00:11:13.835>reload <00:11:14.068>I <00:11:14.301>hope <00:11:14.535>to

238
00:11:18.495 --> 00:11:19.995
<00:11:18.495>be <00:11:18.687>able <00:11:18.880>to <00:11:19.073>use <00:11:19.266>the <00:11:19.459>mouse <00:11:19.652>at <00:11:19.845>least.

239
00:11:20.055 --> 00:11:22.875
<00:11:20.055>Uh, <00:11:20.210>unfortunately <00:11:20.366>I <00:11:20.521>can't <00:11:20.677>use <00:11:20.832>touch <00:11:20.988>touch <00:11:21.143>gesture <00:11:21.299>just <00:11:21.454>now,

240
00:11:23.615 --> 00:11:27.475
<00:11:23.615>uh, <00:11:23.731>but <00:11:23.848>you <00:11:23.965>just <00:11:24.081>have <00:11:24.198>to <00:11:24.315>believe <00:11:24.431>me, <00:11:24.548>it <00:11:24.665>should <00:11:24.781>work <00:11:24.898>as <00:11:25.015>long

241
00:11:27.475 --> 00:11:28.875
<00:11:27.475>as <00:11:27.685>I <00:11:27.895>didn't <00:11:28.105>add <00:11:28.315>a <00:11:28.525>typo <00:11:28.735>somewhere.

242
00:11:29.705 --> 00:11:31.315
<00:11:29.705>Okay, <00:11:30.055>so <00:11:30.405>mouse <00:11:30.755>is <00:11:31.105>moving.

243
00:11:31.445 --> 00:11:33.435
<00:11:31.445>Let's <00:11:31.725>go <00:11:32.005>over <00:11:32.285>to <00:11:32.565>keyboard <00:11:32.845>navigation.

244
00:11:33.455 --> 00:11:34.835
<00:11:33.455>And <00:11:33.765>for <00:11:34.076>the <00:11:34.386>keyboard <00:11:34.697>navigation,

245
00:11:35.355 --> 00:11:37.555
<00:11:35.355>I <00:11:35.510>already <00:11:35.666>have <00:11:35.821>this <00:11:35.977>left <00:11:36.132>arrow <00:11:36.288>and <00:11:36.443>right <00:11:36.599>arrow <00:11:36.755>here.

246
00:11:37.775 --> 00:11:41.195
<00:11:37.775>So <00:11:37.915>what <00:11:38.055>I'm <00:11:38.194>doing <00:11:38.334>with <00:11:38.475>this <00:11:38.615>is <00:11:38.755>okay <00:11:38.895>from <00:11:39.035>event, <00:11:39.175>uh,

247
00:11:41.375 --> 00:11:44.795
<00:11:41.375>the <00:11:41.550>thing <00:11:41.725>which <00:11:41.900>is <00:11:42.075>different <00:11:42.250>for <00:11:42.425>keyboard <00:11:42.600>uh, <00:11:42.775>events

248
00:11:44.935 --> 00:11:47.675
<00:11:44.935>and <00:11:45.090>mouse <00:11:45.246>events <00:11:45.401>is <00:11:45.557>that <00:11:45.712>keyboard <00:11:45.868>events <00:11:46.023>happen <00:11:46.179>to <00:11:46.334>the

249
00:11:48.195 --> 00:11:50.315
<00:11:48.195>document <00:11:48.395>directly <00:11:48.595>and <00:11:48.795>not <00:11:48.995>to <00:11:49.195>the <00:11:49.395>very <00:11:49.595>element.

250
00:11:51.175 --> 00:11:53.565
<00:11:51.175>Uh, <00:11:51.330>so <00:11:51.486>what <00:11:51.641>I <00:11:51.797>say <00:11:51.952>here <00:11:52.108>is, <00:11:52.263>okay, <00:11:52.419>I <00:11:52.574>want

251
00:11:53.565 --> 00:11:54.805
<00:11:53.565>to <00:11:53.751>get <00:11:53.937>all <00:11:54.123>the <00:11:54.309>key <00:11:54.495>down <00:11:54.680>events.

252
00:11:56.105 --> 00:11:59.885
<00:11:56.105>Uh, <00:11:56.280>one <00:11:56.455>minor <00:11:56.630>thing <00:11:56.805>from <00:11:56.980>event <00:11:57.155>is <00:11:57.330>unfortunately <00:11:57.505>not

253
00:12:00.465 --> 00:12:02.005
<00:12:00.465>100% <00:12:01.158>properly <00:12:01.851>typed

254
00:12:02.005 --> 00:12:04.205
<00:12:02.005>because <00:12:02.238>this <00:12:02.471>will <00:12:02.705>just <00:12:02.938>return <00:12:03.171>an <00:12:03.405>observable

255
00:12:04.205 --> 00:12:06.685
<00:12:04.205>of <00:12:04.380>event <00:12:04.555>even <00:12:04.730>though <00:12:04.905>it's <00:12:05.080>actually <00:12:05.255>a <00:12:05.430>keyboard <00:12:05.605>event.

256
00:12:07.345 --> 00:12:09.685
<00:12:07.345>Uh, <00:12:07.545>so <00:12:07.745>we <00:12:07.945>can <00:12:08.145>just <00:12:08.345>cast <00:12:08.545>that <00:12:08.745>here

257
00:12:09.715 --> 00:12:14.445
<00:12:09.715>because <00:12:09.855>let's <00:12:09.995>do <00:12:10.135>it <00:12:10.275>like <00:12:10.415>this <00:12:10.555>event <00:12:10.695>of <00:12:10.835>type <00:12:10.975>keyboard <00:12:11.115>event

258
00:12:16.545 --> 00:12:19.365
<00:12:16.545>and <00:12:16.700>we <00:12:16.856>want <00:12:17.011>to <00:12:17.167>filter <00:12:17.322>out <00:12:17.478>all <00:12:17.633>the <00:12:17.789>key <00:12:17.944>downs

259
00:12:19.365 --> 00:12:20.925
<00:12:19.365>that <00:12:19.598>are <00:12:19.831>not <00:12:20.065>of <00:12:20.298>one <00:12:20.531>very <00:12:20.765>type.

260
00:12:20.945 --> 00:12:25.165
<00:12:20.945>And <00:12:21.061>for <00:12:21.178>the <00:12:21.295>left <00:12:21.411>arrow <00:12:21.528>navigation, <00:12:21.645>I <00:12:21.761>just <00:12:21.878>say <00:12:21.995>a <00:12:22.111>now <00:12:22.228>or <00:12:22.345>D

261
00:12:25.165 --> 00:12:26.925
<00:12:25.165>because <00:12:25.398>left <00:12:25.631>and <00:12:25.865>right <00:12:26.098>arrow <00:12:26.331>click <00:12:26.564>would

262
00:12:26.995 --> 00:12:28.125
<00:12:26.995>also <00:12:27.334>trigger <00:12:27.673>my <00:12:28.012>slides.

263
00:12:28.665 --> 00:12:30.805
<00:12:28.665>Uh, <00:12:28.944>so <00:12:29.224>we <00:12:29.505>say <00:12:29.785>okay, <00:12:30.064>event

264
00:12:32.025 --> 00:12:36.005
<00:12:32.025>do <00:12:32.305>code <00:12:32.584>equals <00:12:32.865>equals <00:12:33.145>to <00:12:33.425>TA.

265
00:12:36.325 --> 00:12:37.765
<00:12:36.325>I <00:12:36.584>think <00:12:36.843>I <00:12:37.102>always <00:12:37.361>misspelled <00:12:37.621>that.

266
00:12:37.865 --> 00:12:39.885
<00:12:37.865>So <00:12:38.331>let's <00:12:38.798>see, <00:12:39.265>uh,

267
00:12:40.025 --> 00:12:43.485
<00:12:40.025>and <00:12:40.141>if <00:12:40.258>this <00:12:40.375>event <00:12:40.491>happens, <00:12:40.608>then <00:12:40.725>I <00:12:40.841>want <00:12:40.958>to <00:12:41.074>to <00:12:41.191>map <00:12:41.308>the <00:12:41.425>value

268
00:12:43.585 --> 00:12:46.445
<00:12:43.585>to <00:12:44.051>one <00:12:44.518>very <00:12:44.985>value,

269
00:12:46.705 --> 00:12:50.365
<00:12:46.705>and <00:12:46.905>this <00:12:47.105>is <00:12:47.305>the <00:12:47.505>go <00:12:47.705>to <00:12:47.905>previous <00:12:48.105>page.

270
00:12:50.705 --> 00:12:53.685
<00:12:50.705>So <00:12:50.845>every <00:12:50.985>time <00:12:51.125>these <00:12:51.265>three <00:12:51.405>lines <00:12:51.545>say <00:12:51.685>pretty <00:12:51.825>much <00:12:51.965>every <00:12:52.105>time,

271
00:12:54.585 --> 00:12:58.645
<00:12:54.585>um, <00:12:54.701>the <00:12:54.818>A <00:12:54.935>key <00:12:55.051>is <00:12:55.168>hit <00:12:55.285>emit <00:12:55.401>the <00:12:55.518>value <00:12:55.635>go <00:12:55.751>to <00:12:55.868>previous <00:12:55.985>page,

272
00:12:58.705 --> 00:13:02.785
<00:12:58.705>but <00:12:58.985>just, <00:12:59.265>just <00:12:59.545>the <00:12:59.825>value <00:13:00.105>oof

273
00:13:03.095 --> 00:13:05.145
<00:13:03.095>that <00:13:03.445>is <00:13:03.795>not <00:13:04.145>prepared <00:13:04.495>maybe.

274
00:13:07.595 --> 00:13:11.245
<00:13:07.595>Okay, <00:13:07.828>well <00:13:08.061>here <00:13:08.295>it <00:13:08.528>is <00:13:08.761>prepared, <00:13:08.995>uh,

275
00:13:11.245 --> 00:13:13.645
<00:13:11.245>which <00:13:11.400>is <00:13:11.556>just <00:13:11.711>one <00:13:11.867>less <00:13:12.022>than <00:13:12.178>a <00:13:12.333>threshold <00:13:12.489>to <00:13:12.645>go

276
00:13:13.645 --> 00:13:15.285
<00:13:13.645>to <00:13:13.995>the <00:13:14.345>previous <00:13:14.694>uh, <00:13:15.045>picture.

277
00:13:16.445 --> 00:13:17.975
<00:13:16.445>Okay, <00:13:16.720>I <00:13:16.995>hope <00:13:17.271>this <00:13:17.546>is <00:13:17.822>working.

278
00:13:18.195 --> 00:13:20.335
<00:13:18.195>So <00:13:18.428>we <00:13:18.661>just <00:13:18.895>copy <00:13:19.128>over <00:13:19.361>this <00:13:19.595>more

279
00:13:20.335 --> 00:13:22.295
<00:13:20.335>or <00:13:20.535>less <00:13:20.735>to <00:13:20.935>for <00:13:21.135>the <00:13:21.335>right <00:13:21.535>error <00:13:21.735>navigation.

280
00:13:22.435 --> 00:13:24.575
<00:13:22.435>So <00:13:22.635>instead <00:13:22.834>of <00:13:23.035>key <00:13:23.234>A <00:13:23.435>we <00:13:23.635>say <00:13:23.834>qd,

281
00:13:26.235 --> 00:13:30.135
<00:13:26.235>and <00:13:26.375>if <00:13:26.515>this <00:13:26.655>is <00:13:26.795>hit, <00:13:26.935>we <00:13:27.075>say <00:13:27.215>go <00:13:27.355>to <00:13:27.495>next <00:13:27.635>page.

282
00:13:32.105 --> 00:13:33.845
<00:13:32.105>Um, <00:13:33.505>so

283
00:13:33.845 --> 00:13:36.765
<00:13:33.845>because <00:13:34.000>those <00:13:34.156>are <00:13:34.311>completely <00:13:34.467>working <00:13:34.622>the <00:13:34.778>same <00:13:34.933>way <00:13:35.089>our <00:13:35.245>swipe

284
00:13:36.785 --> 00:13:39.245
<00:13:36.785>is <00:13:36.959>working, <00:13:37.135>uh, <00:13:37.310>we <00:13:37.485>can <00:13:37.660>just <00:13:37.834>merge <00:13:38.010>'em <00:13:38.185>together.

285
00:13:41.265 --> 00:13:45.725
<00:13:41.265>So <00:13:41.420>we <00:13:41.576>say <00:13:41.731>like, <00:13:41.887>okay, <00:13:42.042>merge, <00:13:42.198>swipe, <00:13:42.353>uh, <00:13:42.509>left <00:13:42.665>arrow

286
00:13:47.145 --> 00:13:52.005
<00:13:47.145>and <00:13:47.425>right <00:13:47.704>arrow <00:13:47.985>and <00:13:48.265>now <00:13:48.545>if

287
00:13:52.025 --> 00:13:53.805
<00:13:52.025>one <00:13:52.305>of <00:13:52.584>those <00:13:52.865>will <00:13:53.145>emit <00:13:53.425>something,

288
00:13:53.805 --> 00:13:57.405
<00:13:53.805>this <00:13:53.979>value <00:13:54.155>will <00:13:54.329>be <00:13:54.505>bypassed <00:13:54.680>to <00:13:54.854>this <00:13:55.030>type <00:13:55.204>operator

289
00:13:57.535 --> 00:14:00.005
<00:13:57.535>where <00:13:57.690>again, <00:13:57.846>I <00:13:58.001>check <00:13:58.157>for <00:13:58.312>the <00:13:58.468>threshold, <00:13:58.623>if <00:13:58.779>it's <00:13:58.935>reached,

290
00:14:00.685 --> 00:14:02.325
<00:14:00.685>I <00:14:01.035>will <00:14:01.385>trigger <00:14:01.734>the <00:14:02.084>animation.

291
00:14:02.345 --> 00:14:04.605
<00:14:02.345>If <00:14:02.578>not, <00:14:02.811>not, <00:14:03.045>that's <00:14:03.278>pretty <00:14:03.511>much <00:14:03.745>it.

292
00:14:05.625 --> 00:14:09.675
<00:14:05.625>Okay, <00:14:05.800>let's <00:14:05.975>see <00:14:06.150>if <00:14:06.325>that's <00:14:06.500>working. <00:14:06.675>I <00:14:06.850>hope <00:14:07.025>so.

293
00:14:09.945 --> 00:14:13.955
<00:14:09.945>Okay, <00:14:10.072>it <00:14:10.199>looks <00:14:10.326>good <00:14:10.454>so <00:14:10.581>well <00:14:10.708>you <00:14:10.835>can't <00:14:10.963>see <00:14:11.090>it <00:14:11.217>right <00:14:11.345>now,

294
00:14:13.955 --> 00:14:15.115
<00:14:13.955>but <00:14:14.163>I'm <00:14:14.372>pressing <00:14:14.581>A <00:14:14.790>and <00:14:14.999>d

295
00:14:15.115 --> 00:14:16.675
<00:14:15.115>and <00:14:15.290>you <00:14:15.465>just <00:14:15.640>have <00:14:15.815>to <00:14:15.990>believe <00:14:16.165>me <00:14:16.340>it's <00:14:16.515>working.

296
00:14:17.615 --> 00:14:19.035
<00:14:17.615>Um, <00:14:17.934>so <00:14:18.254>this <00:14:18.573>is <00:14:18.893>good.

297
00:14:20.125 --> 00:14:22.275
<00:14:20.125>Let's <00:14:20.358>take <00:14:20.591>a <00:14:20.825>look <00:14:21.058>at <00:14:21.291>the <00:14:21.525>timer

298
00:14:22.275 --> 00:14:24.395
<00:14:22.275>because <00:14:22.449>the <00:14:22.625>timer <00:14:22.800>is <00:14:22.975>a <00:14:23.150>little <00:14:23.324>bit <00:14:23.500>more <00:14:23.675>tricky.

299
00:14:25.425 --> 00:14:27.165
<00:14:25.425>So, <00:14:25.775>um, <00:14:26.125>under <00:14:26.474>the <00:14:26.824>hood,

300
00:14:27.545 --> 00:14:29.645
<00:14:27.545>RXs <00:14:27.824>provides <00:14:28.104>a <00:14:28.385>creation <00:14:28.665>operator <00:14:28.944>interval,

301
00:14:29.645 --> 00:14:31.405
<00:14:29.645>which <00:14:29.995>is <00:14:30.345>like <00:14:30.694>set <00:14:31.045>interval.

302
00:14:32.165 --> 00:14:35.465
<00:14:32.165>Uh, <00:14:32.305>and <00:14:32.444>what <00:14:32.584>we <00:14:32.724>are <00:14:32.865>doing, <00:14:33.005>we're <00:14:33.145>passing <00:14:33.285>a <00:14:33.425>time <00:14:33.564>range

303
00:14:36.485 --> 00:14:39.865
<00:14:36.485>and <00:14:36.765>now <00:14:37.045>every <00:14:37.325>five <00:14:37.605>seconds <00:14:37.885>this

304
00:14:40.435 --> 00:14:41.945
<00:14:40.435>observable <00:14:40.887>will <00:14:41.341>admit <00:14:41.794>something.

305
00:14:43.125 --> 00:14:45.265
<00:14:43.125>The <00:14:43.325>thing <00:14:43.525>is <00:14:43.725>we <00:14:43.925>don't <00:14:44.125>want <00:14:44.325>to <00:14:44.525>admit,

306
00:14:45.555 --> 00:14:47.905
<00:14:45.555>admit <00:14:45.834>it <00:14:46.114>when <00:14:46.395>our <00:14:46.675>events <00:14:46.954>happen

307
00:14:47.905 --> 00:14:51.615
<00:14:47.905>before, <00:14:48.138>like <00:14:48.371>we <00:14:48.605>don't <00:14:48.838>want <00:14:49.071>to <00:14:49.305>swipe

308
00:14:52.275 --> 00:14:55.295
<00:14:52.275>at <00:14:52.741>5.5 <00:14:53.208>4.5 <00:14:53.675>seconds

309
00:14:56.035 --> 00:14:57.815
<00:14:56.035>and <00:14:56.235>immediately <00:14:56.435>go <00:14:56.635>to <00:14:56.834>the <00:14:57.035>next <00:14:57.235>page <00:14:57.435>so

310
00:14:57.815 --> 00:14:58.855
<00:14:57.815>that <00:14:58.049>you <00:14:58.283>jump <00:14:58.517>over <00:14:58.751>one.

311
00:14:59.155 --> 00:15:02.935
<00:14:59.155>So <00:14:59.329>what <00:14:59.505>we <00:14:59.680>say <00:14:59.855>here <00:15:00.030>is, <00:15:00.204>okay, <00:15:00.380>please, <00:15:00.555>um,

312
00:15:04.205 --> 00:15:07.655
<00:15:04.205>just <00:15:04.332>be <00:15:04.459>interested <00:15:04.586>in <00:15:04.714>the <00:15:04.841>events <00:15:04.968>un <00:15:05.095>uh, <00:15:05.223>in <00:15:05.350>the <00:15:05.477>timer <00:15:05.605>event

313
00:15:08.025 --> 00:15:11.335
<00:15:08.025>until <00:15:08.258>one <00:15:08.491>of <00:15:08.725>our <00:15:08.958>events <00:15:09.191>emitted <00:15:09.425>something.

314
00:15:12.885 --> 00:15:16.935
<00:15:12.885>So <00:15:13.085>we <00:15:13.285>say, <00:15:13.485>okay, <00:15:13.685>take <00:15:13.885>until <00:15:14.085>events <00:15:14.285>happen.

315
00:15:18.265 --> 00:15:22.085
<00:15:18.265>The <00:15:18.405>thing <00:15:18.545>is <00:15:18.685>take <00:15:18.824>until <00:15:18.965>under <00:15:19.105>the <00:15:19.245>hood <00:15:19.385>will <00:15:19.525>also <00:15:19.665>subscribe

316
00:15:22.085 --> 00:15:23.765
<00:15:22.085>to <00:15:22.435>this <00:15:22.785>events <00:15:23.135>ob, <00:15:23.485>observable

317
00:15:24.575 --> 00:15:27.235
<00:15:24.575>and <00:15:24.808>all <00:15:25.041>those <00:15:25.275>events <00:15:25.508>under <00:15:25.741>the <00:15:25.975>hood

318
00:15:27.635 --> 00:15:28.755
<00:15:27.635>register <00:15:27.971>an <00:15:28.307>event <00:15:28.643>lessness.

319
00:15:28.855 --> 00:15:33.075
<00:15:28.855>So <00:15:28.995>every <00:15:29.135>time <00:15:29.275>we <00:15:29.415>would <00:15:29.555>now <00:15:29.695>create <00:15:29.835>twice <00:15:29.975>the <00:15:30.115>event <00:15:30.255>listener

320
00:15:33.075 --> 00:15:34.955
<00:15:33.075>for <00:15:33.308>the <00:15:33.541>same <00:15:33.775>emitting <00:15:34.008>the <00:15:34.241>same <00:15:34.475>value.

321
00:15:35.415 --> 00:15:37.435
<00:15:35.415>So <00:15:35.570>what <00:15:35.726>we <00:15:35.881>could <00:15:36.037>do <00:15:36.192>for <00:15:36.348>that <00:15:36.503>to <00:15:36.659>prevent <00:15:36.814>this

322
00:15:38.095 --> 00:15:39.515
<00:15:38.095>is <00:15:38.414>apply <00:15:38.734>the <00:15:39.053>share <00:15:39.373>operator

323
00:15:39.855 --> 00:15:43.235
<00:15:39.855>and <00:15:40.010>share <00:15:40.166>is <00:15:40.321>pretty <00:15:40.477>much <00:15:40.632>just <00:15:40.788>creating <00:15:40.943>a <00:15:41.099>subject <00:15:41.255>instance

324
00:15:43.235 --> 00:15:46.355
<00:15:43.235>under <00:15:43.410>the <00:15:43.585>hood <00:15:43.760>to <00:15:43.935>save <00:15:44.110>all <00:15:44.285>the <00:15:44.460>values <00:15:44.635>in

325
00:15:46.355 --> 00:15:47.835
<00:15:46.355>that <00:15:46.688>subject <00:15:47.021>and <00:15:47.354>then <00:15:47.687>forward.

326
00:15:48.105 --> 00:15:50.035
<00:15:48.105>Therefore <00:15:48.571>we'll <00:15:49.038>just <00:15:49.505>um,

327
00:15:50.295 --> 00:15:52.395
<00:15:50.295>create <00:15:50.528>once <00:15:50.761>event <00:15:50.995>listeners <00:15:51.228>under <00:15:51.461>the <00:15:51.694>hood

328
00:15:52.655 --> 00:15:54.515
<00:15:52.655>and <00:15:52.888>it's <00:15:53.121>kind <00:15:53.355>of <00:15:53.588>a <00:15:53.821>performance <00:15:54.055>streak.

329
00:15:55.415 --> 00:15:58.755
<00:15:55.415>Uh, <00:15:55.542>it's, <00:15:55.669>it <00:15:55.796>won't <00:15:55.924>be <00:15:56.051>really <00:15:56.178>noticeable <00:15:56.305>so <00:15:56.433>I <00:15:56.560>don't <00:15:56.687>say <00:15:56.814>like,

330
00:15:58.755 --> 00:16:00.395
<00:15:58.755>okay, <00:15:58.910>this <00:15:59.066>is <00:15:59.221>the <00:15:59.377>best <00:15:59.532>thing <00:15:59.688>you <00:15:59.843>could <00:15:59.999>do <00:16:00.155>here

331
00:16:00.415 --> 00:16:02.115
<00:16:00.415>to <00:16:00.765>prevent <00:16:01.115>any <00:16:01.464>performance <00:16:01.814>issues,

332
00:16:02.775 --> 00:16:04.835
<00:16:02.775>but <00:16:02.949>this <00:16:03.125>will <00:16:03.300>at <00:16:03.475>least <00:16:03.650>ensure <00:16:03.824>that <00:16:04.000>we <00:16:04.175>don't

333
00:16:05.435 --> 00:16:07.195
<00:16:05.435>register <00:16:05.901>unnecessary <00:16:06.368>event <00:16:06.834>listeners

334
00:16:07.935 --> 00:16:09.515
<00:16:07.935>the <00:16:08.168>thing <00:16:08.401>now <00:16:08.635>when <00:16:08.868>we <00:16:09.101>hit <00:16:09.334>take

335
00:16:09.565 --> 00:16:11.595
<00:16:09.565>until <00:16:09.798>our <00:16:10.031>observer <00:16:10.265>will <00:16:10.498>complete <00:16:10.731>and <00:16:10.965>end.

336
00:16:11.655 --> 00:16:14.835
<00:16:11.655>So <00:16:11.795>we <00:16:11.935>would <00:16:12.074>just <00:16:12.214>have <00:16:12.355>the <00:16:12.495>possibility <00:16:12.635>to <00:16:12.775>wait <00:16:12.915>five <00:16:13.055>seconds

337
00:16:14.975 --> 00:16:15.995
<00:16:14.975>to <00:16:15.204>see <00:16:15.434>if <00:16:15.663>it <00:16:15.893>happened

338
00:16:16.095 --> 00:16:18.675
<00:16:16.095>and <00:16:16.250>if <00:16:16.406>one <00:16:16.561>of <00:16:16.717>those <00:16:16.872>events <00:16:17.028>happen <00:16:17.183>in <00:16:17.339>the <00:16:17.495>meantime,

339
00:16:19.535 --> 00:16:20.675
<00:16:19.535>our <00:16:19.877>observer <00:16:20.218>would <00:16:20.560>die.

340
00:16:20.935 --> 00:16:24.715
<00:16:20.935>So <00:16:21.042>what <00:16:21.150>we <00:16:21.258>want <00:16:21.365>to <00:16:21.473>do <00:16:21.581>here <00:16:21.688>is <00:16:21.796>we <00:16:21.904>want <00:16:22.011>to <00:16:22.119>say <00:16:22.227>like, <00:16:22.334>okay,

341
00:16:24.715 --> 00:16:28.795
<00:16:24.715>please <00:16:24.890>repeat <00:16:25.065>the <00:16:25.240>observable <00:16:25.415>as <00:16:25.590>soon <00:16:25.765>as <00:16:25.940>it <00:16:26.115>completes.

342
00:16:29.975 --> 00:16:33.755
<00:16:29.975>Um, <00:16:30.115>this <00:16:30.255>is <00:16:30.395>what <00:16:30.535>this <00:16:30.675>repeat <00:16:30.815>when <00:16:30.955>it's <00:16:31.095>doing <00:16:31.235>this <00:16:31.375>notifier

343
00:16:34.175 --> 00:16:38.155
<00:16:34.175>is <00:16:34.330>parameter <00:16:34.486>is <00:16:34.641>an <00:16:34.797>observable <00:16:34.952>that <00:16:35.108>emits <00:16:35.263>something <00:16:35.419>as <00:16:35.574>soon

344
00:16:38.155 --> 00:16:39.875
<00:16:38.155>as <00:16:38.505>the <00:16:38.855>source <00:16:39.204>observable <00:16:39.555>completes

345
00:16:39.875 --> 00:16:42.195
<00:16:39.875>and <00:16:40.108>take <00:16:40.341>until <00:16:40.575>will <00:16:40.808>complete <00:16:41.041>this <00:16:41.275>observable.

346
00:16:42.815 --> 00:16:46.075
<00:16:42.815>So <00:16:42.990>these <00:16:43.165>two <00:16:43.340>lines <00:16:43.515>pretty <00:16:43.690>much <00:16:43.865>just <00:16:44.040>say, <00:16:44.215>okay,

347
00:16:46.415 --> 00:16:48.795
<00:16:46.415>please <00:16:46.694>resubscribe <00:16:46.974>to <00:16:47.255>our <00:16:47.535>source <00:16:47.814>observable

348
00:16:49.645 --> 00:16:51.375
<00:16:49.645>when <00:16:49.925>one <00:16:50.204>of <00:16:50.485>those <00:16:50.765>events <00:16:51.045>happen.

349
00:16:53.035 --> 00:16:57.775
<00:16:53.035>Uh, <00:16:53.151>and <00:16:53.268>now <00:16:53.385>what <00:16:53.501>we <00:16:53.618>could <00:16:53.735>just <00:16:53.851>do <00:16:53.968>is <00:16:54.084>say, <00:16:54.201>okay, <00:16:54.318>map <00:16:54.435>two,

350
00:16:57.915 --> 00:16:59.215
<00:16:57.915>go <00:16:58.305>to <00:16:58.695>next <00:16:59.085>page.

351
00:16:59.215 --> 00:17:02.375
<00:16:59.215>Again, <00:16:59.370>this <00:16:59.526>is <00:16:59.681>pretty <00:16:59.837>much <00:16:59.992>what <00:17:00.148>we <00:17:00.303>have <00:17:00.459>to <00:17:00.615>do.

352
00:17:02.375 --> 00:17:05.535
<00:17:02.375>There's <00:17:02.530>one <00:17:02.686>little <00:17:02.841>thing <00:17:02.997>that <00:17:03.152>I <00:17:03.308>would <00:17:03.463>like <00:17:03.619>to <00:17:03.775>improve

353
00:17:05.535 --> 00:17:08.375
<00:17:05.535>because <00:17:05.768>now <00:17:06.001>when <00:17:06.235>we <00:17:06.468>have <00:17:06.701>this <00:17:06.935>automated

354
00:17:09.795 --> 00:17:13.615
<00:17:09.795>Caruso <00:17:09.935>kind <00:17:10.075>of <00:17:10.215>thing, <00:17:10.355>uh, <00:17:10.495>we <00:17:10.635>could <00:17:10.775>go <00:17:10.915>to <00:17:11.055>the <00:17:11.195>point

355
00:17:13.615 --> 00:17:15.975
<00:17:13.615>where <00:17:13.755>we <00:17:13.895>are <00:17:14.035>at <00:17:14.175>the <00:17:14.315>last <00:17:14.454>slide <00:17:14.595>and <00:17:14.734>we <00:17:14.875>would <00:17:15.015>assume

356
00:17:16.035 --> 00:17:18.175
<00:17:16.035>or <00:17:16.210>like <00:17:16.385>that's <00:17:16.560>how <00:17:16.735>most <00:17:16.910>Caruso <00:17:17.085>are <00:17:17.260>working <00:17:17.435>like

357
00:17:18.175 --> 00:17:20.655
<00:17:18.175>that <00:17:18.375>they're <00:17:18.575>going <00:17:18.774>to <00:17:18.974>the <00:17:19.175>first <00:17:19.375>page <00:17:19.575>and

358
00:17:20.725 --> 00:17:24.365
<00:17:20.724>therefore <00:17:21.074>I <00:17:21.425>have <00:17:21.774>prepared <00:17:22.125>something

359
00:17:25.215 --> 00:17:28.765
<00:17:25.214>which <00:17:25.389>is <00:17:25.564>called <00:17:25.740>an <00:17:25.915>made <00:17:26.089>back <00:17:26.264>to <00:17:26.439>first <00:17:26.615>slide

360
00:17:28.945 --> 00:17:30.925
<00:17:28.945>and <00:17:29.145>I <00:17:29.345>need <00:17:29.544>to <00:17:29.745>pass <00:17:29.945>the <00:17:30.145>items <00:17:30.345>again.

361
00:17:33.495 --> 00:17:36.035
<00:17:33.495>Yes. <00:17:34.195>And <00:17:34.895>again,

362
00:17:36.065 --> 00:17:39.115
<00:17:36.065>time <00:17:36.265>is <00:17:36.465>already <00:17:36.665>merged <00:17:36.865>into <00:17:37.065>our <00:17:37.265>observable <00:17:37.465>here.

363
00:17:39.215 --> 00:17:41.595
<00:17:39.215>So <00:17:39.370>all <00:17:39.526>the <00:17:39.681>values <00:17:39.837>will <00:17:39.992>be <00:17:40.148>check <00:17:40.303>for <00:17:40.459>the <00:17:40.615>threshold

364
00:17:42.255 --> 00:17:45.195
<00:17:42.255>and <00:17:42.410>if <00:17:42.566>we <00:17:42.721>take <00:17:42.877>a <00:17:43.032>look <00:17:43.188>now <00:17:43.343>it's <00:17:43.499>recompiling, <00:17:43.655>okay,

365
00:17:45.375 --> 00:17:48.275
<00:17:45.375>but <00:17:45.575>now <00:17:45.775>it <00:17:45.975>should <00:17:46.175>after <00:17:46.375>five <00:17:46.575>seconds <00:17:46.775>go

366
00:17:48.275 --> 00:17:50.945
<00:17:48.275>to <00:17:48.450>the <00:17:48.625>next <00:17:48.800>slide <00:17:48.975>automatically <00:17:49.150>without <00:17:49.325>me <00:17:49.500>doing <00:17:49.675>anything.

367
00:17:52.315 --> 00:17:54.455
<00:17:52.315>I'm <00:17:52.548>surprised <00:17:52.781>that <00:17:53.015>this <00:17:53.248>code <00:17:53.481>demonstration <00:17:53.715>worked

368
00:17:54.455 --> 00:17:56.855
<00:17:54.455>for <00:17:54.655>the <00:17:54.855>very <00:17:55.054>first <00:17:55.254>time <00:17:55.455>without <00:17:55.655>any <00:17:55.855>debugging.

369
00:17:57.275 --> 00:17:59.735
<00:17:57.275>Uh, <00:17:57.402>but <00:17:57.529>that <00:17:57.656>I <00:17:57.784>think <00:17:57.911>that <00:17:58.038>is, <00:17:58.165>this <00:17:58.293>is <00:17:58.420>kind <00:17:58.547>of <00:17:58.675>good.

370
00:18:00.155 --> 00:18:04.225
<00:18:00.155>Um, <00:18:00.855>okay, <00:18:01.555>back

371
00:18:04.225 --> 00:18:05.905
<00:18:04.225>to <00:18:04.925>my <00:18:05.625>slides.

372
00:18:07.395 --> 00:18:12.095
<00:18:07.395>So <00:18:07.595>okay, <00:18:07.795>we'll <00:18:07.995>do <00:18:08.195>a <00:18:08.395>quick <00:18:08.595>summary <00:18:08.795>of

373
00:18:12.095 --> 00:18:14.575
<00:18:12.095>what <00:18:12.222>I <00:18:12.349>just <00:18:12.476>live <00:18:12.604>coded <00:18:12.731>because <00:18:12.858>that <00:18:12.985>was <00:18:13.113>a <00:18:13.240>lot <00:18:13.367>of <00:18:13.495>input.

374
00:18:16.585 --> 00:18:18.925
<00:18:16.585>So <00:18:16.818>we <00:18:17.051>started <00:18:17.285>with <00:18:17.518>this <00:18:17.751>swipe <00:18:17.985>feature

375
00:18:18.925 --> 00:18:21.405
<00:18:18.925>where <00:18:19.125>we <00:18:19.325>merged <00:18:19.524>together <00:18:19.725>all <00:18:19.925>the <00:18:20.125>touch <00:18:20.325>start

376
00:18:21.405 --> 00:18:25.365
<00:18:21.405>and <00:18:21.545>milestone <00:18:21.685>events <00:18:21.825>just <00:18:21.965>to <00:18:22.105>have <00:18:22.245>one <00:18:22.385>com <00:18:22.524>uh, <00:18:22.665>combined <00:18:22.805>view

377
00:18:25.365 --> 00:18:26.445
<00:18:25.365>of <00:18:25.608>those <00:18:25.851>two <00:18:26.094>different <00:18:26.337>events

378
00:18:26.445 --> 00:18:31.145
<00:18:26.445>and <00:18:26.600>tender <00:18:26.756>them <00:18:26.911>the <00:18:27.067>same <00:18:27.222>way <00:18:27.378>afterwards <00:18:27.533>we <00:18:27.689>applied <00:18:27.845>the

379
00:18:31.145 --> 00:18:33.105
<00:18:31.145>switch <00:18:31.495>map <00:18:31.845>operator, <00:18:32.195>which <00:18:32.545>uh,

380
00:18:33.335 --> 00:18:35.185
<00:18:33.335>uses <00:18:33.568>the <00:18:33.801>touch <00:18:34.035>start <00:18:34.268>as <00:18:34.501>trigger <00:18:34.735>point.

381
00:18:35.485 --> 00:18:37.585
<00:18:35.485>So <00:18:35.685>saying <00:18:35.885>like, <00:18:36.084>okay, <00:18:36.284>when <00:18:36.485>touch <00:18:36.685>start <00:18:36.885>happen,

382
00:18:37.965 --> 00:18:40.945
<00:18:37.965>please <00:18:38.092>take <00:18:38.219>a <00:18:38.346>look <00:18:38.474>at <00:18:38.601>all <00:18:38.728>the <00:18:38.855>mouse <00:18:38.983>move <00:18:39.110>or <00:18:39.237>touch <00:18:39.365>moves.

383
00:18:42.875 --> 00:18:46.135
<00:18:42.875>So <00:18:43.050>this <00:18:43.225>touch <00:18:43.400>move <00:18:43.575>observable <00:18:43.750>is <00:18:43.925>again <00:18:44.100>a <00:18:44.275>combination

384
00:18:46.135 --> 00:18:49.255
<00:18:46.135>of <00:18:46.262>touch, <00:18:46.389>move <00:18:46.516>and <00:18:46.644>mouse <00:18:46.771>move <00:18:46.898>to <00:18:47.025>handle <00:18:47.153>them <00:18:47.280>the <00:18:47.407>same <00:18:47.535>way

385
00:18:51.265 --> 00:18:54.045
<00:18:51.265>we <00:18:51.440>applied <00:18:51.615>observe <00:18:51.790>on <00:18:51.965>with <00:18:52.140>the <00:18:52.315>animation <00:18:52.490>frame <00:18:52.665>scheduler

386
00:18:54.065 --> 00:18:56.165
<00:18:54.065>to <00:18:54.298>tweak <00:18:54.531>the <00:18:54.765>performance <00:18:54.998>a <00:18:55.231>little <00:18:55.465>bit.

387
00:18:56.185 --> 00:18:59.765
<00:18:56.185>So <00:18:56.325>just <00:18:56.465>that <00:18:56.605>the <00:18:56.745>animation <00:18:56.885>looks <00:18:57.024>a <00:18:57.165>little <00:18:57.304>bit <00:18:57.445>more <00:18:57.585>smoother,

388
00:19:01.585 --> 00:19:05.755
<00:19:01.585>this <00:19:01.712>take <00:19:01.839>until <00:19:01.966>it's <00:19:02.094>used <00:19:02.221>to <00:19:02.348>say, <00:19:02.475>to <00:19:02.603>specify <00:19:02.730>the <00:19:02.857>point <00:19:02.985>where

389
00:19:05.775 --> 00:19:07.235
<00:19:05.775>to <00:19:06.103>un <00:19:06.432>when <00:19:06.760>to <00:19:07.089>unsubscribe.

390
00:19:08.155 --> 00:19:12.175
<00:19:08.155>Uh, <00:19:08.282>so <00:19:08.409>as <00:19:08.536>soon <00:19:08.664>as <00:19:08.791>our, <00:19:08.918>as <00:19:09.045>either <00:19:09.173>touch <00:19:09.300>and <00:19:09.427>or <00:19:09.555>mouse

391
00:19:12.275 --> 00:19:13.695
<00:19:12.275>and <00:19:12.701>mouse <00:19:13.127>up <00:19:13.553>happened,

392
00:19:14.115 --> 00:19:16.895
<00:19:14.115>we <00:19:14.270>are <00:19:14.426>not <00:19:14.581>interested <00:19:14.737>anymore <00:19:14.892>in <00:19:15.048>further <00:19:15.203>mouse <00:19:15.359>move <00:19:15.515>events

393
00:19:19.185 --> 00:19:22.175
<00:19:19.185>afterwards, <00:19:19.360>this <00:19:19.534>is <00:19:19.710>what <00:19:19.885>our <00:19:20.060>custom <00:19:20.235>operator <00:19:20.409>looked <00:19:20.585>like.

394
00:19:22.795 --> 00:19:24.735
<00:19:22.795>Uh, <00:19:23.075>we <00:19:23.355>are <00:19:23.635>calculating <00:19:23.915>the <00:19:24.195>delta

395
00:19:25.195 --> 00:19:28.215
<00:19:25.195>of <00:19:25.311>the <00:19:25.428>mouse <00:19:25.544>move <00:19:25.661>from <00:19:25.778>the <00:19:25.895>starting <00:19:26.011>point <00:19:26.128>just <00:19:26.245>to <00:19:26.361>be <00:19:26.478>able <00:19:26.595>to

396
00:19:28.725 --> 00:19:30.535
<00:19:28.725>have <00:19:29.004>this <00:19:29.284>kind <00:19:29.564>of <00:19:29.844>fade <00:19:30.125>animation.

397
00:19:31.805 --> 00:19:36.345
<00:19:31.805>Um, <00:19:31.980>and <00:19:32.155>also <00:19:32.330>afterwards <00:19:32.505>we <00:19:32.680>are <00:19:32.855>using <00:19:33.030>take <00:19:33.205>lust

398
00:19:36.345 --> 00:19:38.625
<00:19:36.345>to <00:19:36.545>just <00:19:36.745>emit <00:19:36.945>the <00:19:37.145>very <00:19:37.345>last <00:19:37.545>delta <00:19:37.745>value.

399
00:19:39.045 --> 00:19:42.425
<00:19:39.045>So <00:19:39.161>in <00:19:39.278>the <00:19:39.395>end <00:19:39.511>we <00:19:39.628>get <00:19:39.745>like <00:19:39.861>a <00:19:39.978>delta <00:19:40.095>of <00:19:40.211>minus <00:19:40.328>500 <00:19:40.445>pixels,

400
00:19:42.425 --> 00:19:45.225
<00:19:42.425>something <00:19:42.600>like <00:19:42.774>that, <00:19:42.950>which <00:19:43.125>would <00:19:43.300>be <00:19:43.475>a <00:19:43.649>mouse <00:19:43.825>move

401
00:19:45.225 --> 00:19:47.185
<00:19:45.225>of <00:19:45.458>500 <00:19:45.691>pixels <00:19:45.925>in <00:19:46.158>the <00:19:46.391>left <00:19:46.625>direction.

402
00:19:50.215 --> 00:19:53.795
<00:19:50.215>And <00:19:50.355>this <00:19:50.495>is <00:19:50.635>pretty <00:19:50.774>much <00:19:50.915>what <00:19:51.054>our <00:19:51.195>swipe <00:19:51.334>look <00:19:51.475>like <00:19:51.615>afterwards.

403
00:19:53.975 --> 00:19:55.395
<00:19:53.975>We <00:19:54.294>are <00:19:54.614>merging <00:19:54.933>them <00:19:55.253>together

404
00:19:55.395 --> 00:19:58.715
<00:19:55.395>because <00:19:55.550>all <00:19:55.706>the <00:19:55.861>event <00:19:56.017>observables <00:19:56.172>are <00:19:56.328>should <00:19:56.483>be <00:19:56.639>treated <00:19:56.795>the

405
00:19:58.715 --> 00:20:03.215
<00:19:58.715>same <00:19:59.181>and <00:19:59.648>I <00:20:00.115>like

406
00:20:03.215 --> 00:20:05.935
<00:20:03.215>to <00:20:03.370>apply <00:20:03.526>the, <00:20:03.681>or <00:20:03.837>use <00:20:03.992>this <00:20:04.148>merge <00:20:04.303>operator <00:20:04.459>to <00:20:04.615>just

407
00:20:06.735 --> 00:20:09.135
<00:20:06.735>subscribe <00:20:07.014>once <00:20:07.294>to <00:20:07.574>multiple <00:20:07.854>observables <00:20:08.135>and

408
00:20:09.485 --> 00:20:12.855
<00:20:09.485>therefore <00:20:09.625>I <00:20:09.764>have <00:20:09.905>the <00:20:10.044>tap <00:20:10.185>logic <00:20:10.324>that <00:20:10.465>is <00:20:10.604>completely <00:20:10.745>the <00:20:10.885>same

409
00:20:12.955 --> 00:20:14.655
<00:20:12.955>for <00:20:13.304>both <00:20:13.655>of <00:20:14.004>these <00:20:14.355>events.

410
00:20:15.055 --> 00:20:17.695
<00:20:15.055>I <00:20:15.195>it's <00:20:15.335>just <00:20:15.475>cal <00:20:15.615>seeing, <00:20:15.755>taking <00:20:15.895>a <00:20:16.035>look <00:20:16.175>at <00:20:16.315>the <00:20:16.455>delta

411
00:20:17.695 --> 00:20:21.925
<00:20:17.695>that <00:20:17.850>was <00:20:18.006>emitted <00:20:18.161>and <00:20:18.317>either <00:20:18.472>go <00:20:18.628>to <00:20:18.783>the <00:20:18.939>next <00:20:19.095>site

412
00:20:21.925 --> 00:20:26.595
<00:20:21.925>or <00:20:22.125>the <00:20:22.325>previous <00:20:22.524>and <00:20:22.725>don't <00:20:22.925>forget <00:20:23.125>to <00:20:23.325>unsubscribe.

413
00:20:26.595 --> 00:20:27.835
<00:20:26.595>This <00:20:26.874>is <00:20:27.153>very <00:20:27.432>important <00:20:27.711>because

414
00:20:27.865 --> 00:20:30.515
<00:20:27.865>otherwise <00:20:28.040>you <00:20:28.215>will <00:20:28.390>create <00:20:28.565>memory <00:20:28.740>leaks <00:20:28.915>in <00:20:29.090>your <00:20:29.265>code.

415
00:20:31.135 --> 00:20:34.195
<00:20:31.135>So <00:20:31.275>if <00:20:31.415>you <00:20:31.555>subscribe <00:20:31.695>to <00:20:31.835>an <00:20:31.975>observable <00:20:32.115>ensure <00:20:32.254>that <00:20:32.395>you <00:20:32.535>will,

416
00:20:34.255 --> 00:20:35.435
<00:20:34.255>you're <00:20:34.786>also <00:20:35.317>unsubscribe.

417
00:20:36.585 --> 00:20:39.125
<00:20:36.585>Um, <00:20:36.935>and <00:20:37.285>similar <00:20:37.635>important, <00:20:37.985>nah,

418
00:20:39.195 --> 00:20:42.365
<00:20:39.195>it's <00:20:39.395>probably <00:20:39.595>even <00:20:39.794>more <00:20:39.995>important <00:20:40.195>actually <00:20:40.395>you <00:20:40.595>have

419
00:20:42.365 --> 00:20:43.725
<00:20:42.365>to <00:20:42.609>subscribe <00:20:42.854>to <00:20:43.099>your <00:20:43.344>observe <00:20:43.589>because

420
00:20:43.725 --> 00:20:45.605
<00:20:43.725>otherwise <00:20:44.191>nothing <00:20:44.658>will <00:20:45.125>happen.

421
00:20:46.715 --> 00:20:49.055
<00:20:46.715>Okay. <00:20:46.995>Okay, <00:20:47.274>that <00:20:47.554>was <00:20:47.834>our <00:20:48.115>swipe.

422
00:20:49.475 --> 00:20:51.695
<00:20:49.475>The <00:20:49.708>keyboard <00:20:49.941>navigation <00:20:50.175>is <00:20:50.408>way <00:20:50.641>more <00:20:50.875>straightforward

423
00:20:51.845 --> 00:20:54.975
<00:20:51.845>because <00:20:52.000>what <00:20:52.156>we <00:20:52.311>are <00:20:52.467>just <00:20:52.622>doing <00:20:52.778>here <00:20:52.933>is <00:20:53.089>we're <00:20:53.245>uh,

424
00:20:55.425 --> 00:20:58.495
<00:20:55.425>using <00:20:55.565>from <00:20:55.705>event <00:20:55.845>to <00:20:55.985>subscribe <00:20:56.125>to <00:20:56.264>all <00:20:56.405>the <00:20:56.544>key <00:20:56.685>down <00:20:56.825>events

425
00:21:00.265 --> 00:21:03.725
<00:21:00.265>and <00:21:00.420>then <00:21:00.576>filtering <00:21:00.731>out <00:21:00.887>all <00:21:01.042>the <00:21:01.198>values <00:21:01.353>that <00:21:01.509>are <00:21:01.665>not

426
00:21:04.385 --> 00:21:05.685
<00:21:04.385>key <00:21:04.775>A <00:21:05.165>or <00:21:05.554>qd.

427
00:21:05.685 --> 00:21:07.325
<00:21:05.685>It <00:21:05.885>can <00:21:06.085>also <00:21:06.284>be <00:21:06.485>left <00:21:06.685>error <00:21:06.885>right <00:21:07.085>arrow.

428
00:21:07.465 --> 00:21:10.695
<00:21:07.465>It <00:21:07.665>doesn't <00:21:07.865>really <00:21:08.064>matter <00:21:08.264>what <00:21:08.465>key <00:21:08.665>it's <00:21:08.865>um,

429
00:21:11.555 --> 00:21:14.455
<00:21:11.555>but <00:21:11.695>we <00:21:11.835>also <00:21:11.975>use <00:21:12.115>this <00:21:12.255>to <00:21:12.395>just <00:21:12.535>get <00:21:12.675>this <00:21:12.815>single <00:21:12.955>value

430
00:21:15.235 --> 00:21:18.375
<00:21:15.235>and <00:21:15.409>then <00:21:15.584>map <00:21:15.760>two <00:21:15.935>we <00:21:16.110>could <00:21:16.284>also <00:21:16.459>use <00:21:16.635>map,

431
00:21:18.595 --> 00:21:21.375
<00:21:18.595>but <00:21:18.795>map <00:21:18.995>two <00:21:19.195>is <00:21:19.395>a <00:21:19.595>minor <00:21:19.795>performance <00:21:19.995>streak.

432
00:21:21.995 --> 00:21:26.015
<00:21:21.995>Uh, <00:21:22.169>because <00:21:22.344>we're <00:21:22.520>not <00:21:22.695>interested <00:21:22.870>in <00:21:23.044>the <00:21:23.219>projection <00:21:23.395>function

433
00:21:26.165 --> 00:21:27.975
<00:21:26.165>that <00:21:26.398>we <00:21:26.631>would <00:21:26.865>apply <00:21:27.098>to <00:21:27.331>the <00:21:27.565>value

434
00:21:27.975 --> 00:21:29.775
<00:21:27.975>that <00:21:28.254>is <00:21:28.534>passed <00:21:28.814>from <00:21:29.094>that <00:21:29.375>observable.

435
00:21:30.435 --> 00:21:34.595
<00:21:30.435>We <00:21:30.635>just <00:21:30.835>want <00:21:31.034>to <00:21:31.235>always <00:21:31.435>emit <00:21:31.635>this <00:21:31.835>single

436
00:21:34.595 --> 00:21:35.875
<00:21:34.595>value <00:21:34.883>when <00:21:35.171>that <00:21:35.459>event <00:21:35.747>happens.

437
00:21:37.925 --> 00:21:39.465
<00:21:37.925>And <00:21:38.156>the <00:21:38.387>same <00:21:38.618>goes <00:21:38.849>for <00:21:39.080>right <00:21:39.311>error.

438
00:21:39.765 --> 00:21:42.065
<00:21:39.765>So <00:21:39.892>we <00:21:40.019>are <00:21:40.146>saying, <00:21:40.274>okay, <00:21:40.401>please <00:21:40.528>take <00:21:40.655>all <00:21:40.783>the <00:21:40.910>key <00:21:41.037>down <00:21:41.165>events,

439
00:21:42.955 --> 00:21:47.145
<00:21:42.955>please <00:21:43.129>just <00:21:43.304>filter <00:21:43.480>out <00:21:43.655>everything <00:21:43.830>that <00:21:44.004>is <00:21:44.179>not <00:21:44.355>D

440
00:21:47.605 --> 00:21:49.025
<00:21:47.605>and <00:21:48.031>bypass <00:21:48.457>just <00:21:48.883>kd.

441
00:21:49.645 --> 00:21:52.465
<00:21:49.645>And <00:21:49.820>if <00:21:49.995>KD <00:21:50.170>happens, <00:21:50.345>go <00:21:50.520>to <00:21:50.695>the <00:21:50.870>next <00:21:51.045>page

442
00:21:55.525 --> 00:21:57.775
<00:21:55.525>here <00:21:55.725>again, <00:21:55.925>just <00:21:56.125>the <00:21:56.325>calculation <00:21:56.525>of <00:21:56.725>the <00:21:56.925>threshold.

443
00:21:57.795 --> 00:22:00.695
<00:21:57.795>So <00:21:57.922>it's <00:21:58.049>pretty <00:21:58.176>much <00:21:58.304>just <00:21:58.431>like <00:21:58.558>one <00:21:58.685>lesson, <00:21:58.813>one <00:21:58.940>more <00:21:59.067>to <00:21:59.195>go

444
00:22:00.695 --> 00:22:05.445
<00:22:00.695>to <00:22:00.870>the <00:22:01.044>previous <00:22:01.220>and <00:22:01.395>the <00:22:01.570>next <00:22:01.745>page, <00:22:01.919>um, <00:22:02.095>for

445
00:22:09.055 --> 00:22:10.315
<00:22:09.055>to <00:22:09.433>subscribe <00:22:09.811>later <00:22:10.189>again

446
00:22:10.315 --> 00:22:12.835
<00:22:10.315>because <00:22:10.515>we <00:22:10.715>already <00:22:10.915>subscribed <00:22:11.115>to <00:22:11.315>our <00:22:11.515>events <00:22:11.715>observables,

447
00:22:13.235 --> 00:22:16.075
<00:22:13.235>I <00:22:13.375>just <00:22:13.514>merged <00:22:13.655>them <00:22:13.794>in <00:22:13.935>here <00:22:14.074>with <00:22:14.215>left <00:22:14.354>and <00:22:14.495>right <00:22:14.635>arrow

448
00:22:17.005 --> 00:22:18.945
<00:22:17.005>and <00:22:17.355>then <00:22:17.705>this <00:22:18.055>will <00:22:18.405>trigger.

449
00:22:20.385 --> 00:22:22.565
<00:22:20.385>So <00:22:20.618>pretty <00:22:20.851>much <00:22:21.085>that's <00:22:21.318>how <00:22:21.551>you <00:22:21.785>we

450
00:22:22.565 --> 00:22:25.685
<00:22:22.565>or <00:22:22.705>how <00:22:22.845>I <00:22:22.985>implemented <00:22:23.125>the <00:22:23.265>key <00:22:23.405>A <00:22:23.545>and <00:22:23.685>D <00:22:23.825>navigation <00:22:23.965>here.

451
00:22:26.825 --> 00:22:28.245
<00:22:26.825>So <00:22:27.080>let's <00:22:27.336>talk <00:22:27.591>about <00:22:27.847>the <00:22:28.102>timer.

452
00:22:28.615 --> 00:22:31.345
<00:22:28.615>Timer <00:22:28.815>makes <00:22:29.015>kind <00:22:29.215>of <00:22:29.415>sense <00:22:29.615>to <00:22:29.815>use <00:22:30.015>interval,

453
00:22:31.345 --> 00:22:33.665
<00:22:31.345>the <00:22:31.695>interval <00:22:32.045>operator <00:22:32.395>which <00:22:32.745>creates

454
00:22:33.665 --> 00:22:37.625
<00:22:33.665>that <00:22:33.840>interval <00:22:34.014>under <00:22:34.190>the <00:22:34.365>hood <00:22:34.540>then <00:22:34.715>we're <00:22:34.889>saying, <00:22:35.065>okay,

455
00:22:38.005 --> 00:22:42.545
<00:22:38.005>please <00:22:38.180>unsubscribe <00:22:38.355>when <00:22:38.530>one <00:22:38.705>of <00:22:38.880>the <00:22:39.055>merge, <00:22:39.230>uh, <00:22:39.405>one

456
00:22:42.545 --> 00:22:45.745
<00:22:42.545>of <00:22:42.720>the <00:22:42.895>events <00:22:43.070>happen <00:22:43.245>to <00:22:43.420>don't <00:22:43.595>con <00:22:43.770>create <00:22:43.945>conflicts

457
00:22:45.925 --> 00:22:48.495
<00:22:45.925>or <00:22:46.125>timing <00:22:46.325>is <00:22:46.524>just <00:22:46.725>with <00:22:46.925>those <00:22:47.125>uh <00:22:47.325>uh,

458
00:22:48.995 --> 00:22:51.975
<00:22:48.995>but <00:22:49.135>like, <00:22:49.274>uh, <00:22:49.415>at <00:22:49.554>the <00:22:49.695>same <00:22:49.834>time <00:22:49.975>we <00:22:50.114>want <00:22:50.254>to <00:22:50.395>resubscribe

459
00:22:51.995 --> 00:22:53.935
<00:22:51.995>to <00:22:52.344>our <00:22:52.695>observable <00:22:53.044>so <00:22:53.395>that

460
00:22:54.075 --> 00:22:56.775
<00:22:54.075>and <00:22:54.230>as <00:22:54.386>soon <00:22:54.541>as <00:22:54.697>it <00:22:54.852>completes, <00:22:55.008>which <00:22:55.163>happens <00:22:55.319>when <00:22:55.475>one

461
00:22:56.775 --> 00:22:58.975
<00:22:56.775>of <00:22:56.950>the <00:22:57.125>event <00:22:57.300>triggers, <00:22:57.475>we <00:22:57.650>want <00:22:57.825>to <00:22:58.000>resubscribe <00:22:58.175>it

462
00:22:58.975 --> 00:23:01.015
<00:22:58.975>to <00:22:59.324>trigger <00:22:59.675>the <00:23:00.024>timer <00:23:00.375>again

463
00:23:01.015 --> 00:23:05.135
<00:23:01.015>with <00:23:01.481>five <00:23:01.948>seconds <00:23:02.415>afterwards.

464
00:23:05.135 --> 00:23:07.615
<00:23:05.135>We <00:23:05.310>could <00:23:05.485>already <00:23:05.660>go <00:23:05.835>to <00:23:06.010>the <00:23:06.185>next <00:23:06.360>page <00:23:06.535>and

465
00:23:07.615 --> 00:23:10.215
<00:23:07.615>therefore <00:23:07.790>we <00:23:07.965>are <00:23:08.140>again <00:23:08.315>just <00:23:08.490>using <00:23:08.665>our <00:23:08.840>threshold <00:23:09.015>value.

466
00:23:11.835 --> 00:23:15.495
<00:23:11.835>One <00:23:12.010>minor <00:23:12.185>improvement <00:23:12.360>here <00:23:12.535>is <00:23:12.710>using <00:23:12.885>this <00:23:13.060>tab <00:23:13.235>operator

467
00:23:15.555 --> 00:23:17.535
<00:23:15.555>to <00:23:15.755>see <00:23:15.955>if <00:23:16.155>I'm <00:23:16.355>on <00:23:16.555>the <00:23:16.755>last <00:23:16.955>page.

468
00:23:17.555 --> 00:23:19.975
<00:23:17.555>And <00:23:17.682>if <00:23:17.809>so, <00:23:17.936>I <00:23:18.064>want <00:23:18.191>to <00:23:18.318>go <00:23:18.445>to <00:23:18.573>the <00:23:18.700>first <00:23:18.827>page <00:23:18.955>again

469
00:23:19.975 --> 00:23:22.135
<00:23:19.975>and <00:23:20.208>animate <00:23:20.441>all <00:23:20.675>the <00:23:20.908>items <00:23:21.141>in <00:23:21.375>between.

470
00:23:23.615 --> 00:23:27.355
<00:23:23.615>And <00:23:23.790>by <00:23:23.965>having <00:23:24.140>timer <00:23:24.315>in <00:23:24.490>our <00:23:24.665>merch <00:23:24.840>observable <00:23:25.015>here,

471
00:23:27.725 --> 00:23:29.315
<00:23:27.725>it'll <00:23:28.074>also <00:23:28.425>check <00:23:28.774>the <00:23:29.125>threshold

472
00:23:29.375 --> 00:23:31.155
<00:23:29.375>and <00:23:29.575>if <00:23:29.775>so, <00:23:29.975>go <00:23:30.175>to <00:23:30.375>the <00:23:30.575>next <00:23:30.775>page.

473
00:23:31.255 --> 00:23:33.235
<00:23:31.255>And <00:23:31.455>that's <00:23:31.655>pretty <00:23:31.855>much <00:23:32.055>how <00:23:32.255>we <00:23:32.455>implement <00:23:32.655>this

474
00:23:33.235 --> 00:23:34.475
<00:23:33.235>fairly <00:23:33.793>complex <00:23:34.351>feature.

475
00:23:35.295 --> 00:23:38.195
<00:23:35.295>And <00:23:35.470>why <00:23:35.645>I <00:23:35.820>like <00:23:35.995>to <00:23:36.170>demonstrate <00:23:36.345>this <00:23:36.520>very <00:23:36.695>example

476
00:23:38.195 --> 00:23:39.955
<00:23:38.195>because <00:23:38.661>it's <00:23:39.128>very <00:23:39.595>extensible.

477
00:23:40.235 --> 00:23:42.275
<00:23:40.235>I <00:23:40.468>implemented <00:23:40.701>several <00:23:40.935>different <00:23:41.168>kind <00:23:41.401>of <00:23:41.635>features

478
00:23:42.275 --> 00:23:45.405
<00:23:42.275>with <00:23:42.415>just <00:23:42.555>adding <00:23:42.695>like <00:23:42.835>some <00:23:42.975>lines <00:23:43.115>of <00:23:43.255>code <00:23:43.395>here <00:23:43.535>and <00:23:43.675>there

479
00:23:45.705 --> 00:23:48.885
<00:23:45.705>and <00:23:45.879>it <00:23:46.054>shows <00:23:46.230>the <00:23:46.405>strength <00:23:46.580>of <00:23:46.754>composability <00:23:46.929>of <00:23:47.105>RXs.

480
00:23:49.645 --> 00:23:51.655
<00:23:49.645>What <00:23:49.845>I <00:23:50.045>now <00:23:50.245>want <00:23:50.445>to <00:23:50.645>do, <00:23:50.845>uh, <00:23:51.045>is

481
00:23:51.655 --> 00:23:54.055
<00:23:51.655>to <00:23:51.782>talk <00:23:51.909>a <00:23:52.036>little <00:23:52.164>bit <00:23:52.291>about <00:23:52.418>the <00:23:52.545>new <00:23:52.673>things <00:23:52.800>that <00:23:52.927>we <00:23:53.055>planned

482
00:23:54.115 --> 00:23:56.735
<00:23:54.115>for <00:23:54.315>RXs <00:23:54.515>seven, <00:23:54.715>which <00:23:54.915>is <00:23:55.115>right <00:23:55.315>now <00:23:55.515>in

483
00:23:57.905 --> 00:23:59.215
<00:23:57.905>alpha <00:23:58.298>or <00:23:58.691>Beto <00:23:59.083>phase.

484
00:23:59.315 --> 00:24:01.185
<00:23:59.315>I'm <00:23:59.665>not <00:24:00.015>entirely <00:24:00.365>sure, <00:24:00.715>um,

485
00:24:04.035 --> 00:24:06.525
<00:24:04.035>this <00:24:04.268>is <00:24:04.501>what <00:24:04.735>we <00:24:04.968>planned <00:24:05.201>so <00:24:05.435>much

486
00:24:06.585 --> 00:24:07.965
<00:24:06.585>and <00:24:06.762>I'm <00:24:06.939>hiding <00:24:07.117>a <00:24:07.294>little <00:24:07.472>bit <00:24:07.649>of <00:24:07.827>it,

487
00:24:08.345 --> 00:24:11.485
<00:24:08.345>but <00:24:08.520>well, <00:24:08.695>uh, <00:24:08.870>so <00:24:09.045>the <00:24:09.220>very <00:24:09.395>cool <00:24:09.570>thing <00:24:09.745>is

488
00:24:11.485 --> 00:24:13.325
<00:24:11.485>that <00:24:11.764>we <00:24:12.044>implemented <00:24:12.324>a <00:24:12.604>new <00:24:12.885>observable,

489
00:24:13.325 --> 00:24:14.725
<00:24:13.325>the <00:24:13.745>animation <00:24:14.165>frame <00:24:14.585>observable

490
00:24:15.345 --> 00:24:18.205
<00:24:15.345>and <00:24:15.578>we <00:24:15.811>also <00:24:16.045>have <00:24:16.278>the <00:24:16.511>improved <00:24:16.745>typings,

491
00:24:18.205 --> 00:24:19.685
<00:24:18.205>which <00:24:18.471>I <00:24:18.737>will <00:24:19.004>talk <00:24:19.270>about <00:24:19.537>first.

492
00:24:20.185 --> 00:24:23.885
<00:24:20.185>We <00:24:20.325>also <00:24:20.465>have <00:24:20.605>one <00:24:20.745>kind <00:24:20.885>of <00:24:21.024>cool <00:24:21.165>thing, <00:24:21.304>especially <00:24:21.445>for <00:24:21.585>us

493
00:24:24.025 --> 00:24:25.205
<00:24:24.025>as <00:24:24.556>RXS <00:24:25.087>team.

494
00:24:26.005 --> 00:24:29.145
<00:24:26.005>Uh, <00:24:26.160>we <00:24:26.316>are <00:24:26.471>working <00:24:26.627>on <00:24:26.782>preparations <00:24:26.938>for <00:24:27.093>the <00:24:27.249>next <00:24:27.405>version

495
00:24:29.725 --> 00:24:34.265
<00:24:29.725>or <00:24:29.899>the <00:24:30.074>next <00:24:30.250>next <00:24:30.425>version, <00:24:30.600>RXs <00:24:30.774>eight, <00:24:30.949>um, <00:24:31.125>just

496
00:24:34.265 --> 00:24:35.425
<00:24:34.265>to <00:24:34.526>reduce <00:24:34.787>the <00:24:35.048>breaking <00:24:35.309>changes

497
00:24:35.605 --> 00:24:37.225
<00:24:35.605>by <00:24:35.838>having <00:24:36.071>this <00:24:36.305>one <00:24:36.538>step <00:24:36.771>in <00:24:37.005>between.

498
00:24:37.975 --> 00:24:41.155
<00:24:37.975>Uh, <00:24:38.130>and <00:24:38.286>one <00:24:38.441>thing <00:24:38.597>we <00:24:38.752>want <00:24:38.908>to <00:24:39.063>do <00:24:39.219>is <00:24:39.375>create,

499
00:24:41.815 --> 00:24:43.755
<00:24:41.815>so <00:24:42.048>here's <00:24:42.281>just <00:24:42.515>labeled <00:24:42.748>with <00:24:42.981>ConEd <00:24:43.215>with,

500
00:24:44.255 --> 00:24:46.035
<00:24:44.255>but <00:24:44.535>we <00:24:44.815>used <00:24:45.095>to <00:24:45.375>have <00:24:45.655>uh,

501
00:24:46.385 --> 00:24:48.635
<00:24:46.385>several <00:24:46.735>creation <00:24:47.085>operators <00:24:47.435>like <00:24:47.785>merge

502
00:24:48.635 --> 00:24:52.075
<00:24:48.635>and <00:24:48.775>those <00:24:48.915>kind <00:24:49.055>of <00:24:49.195>stuff <00:24:49.335>as <00:24:49.475>pable <00:24:49.615>operators <00:24:49.754>in <00:24:49.895>RXs <00:24:50.035>five

503
00:24:52.695 --> 00:24:54.555
<00:24:52.695>and <00:24:52.928>we <00:24:53.161>removed <00:24:53.395>them <00:24:53.628>with <00:24:53.861>RXs <00:24:54.095>six

504
00:24:55.135 --> 00:24:56.715
<00:24:55.135>for <00:24:55.368>reasons <00:24:55.601>no <00:24:55.835>one <00:24:56.068>can <00:24:56.301>now <00:24:56.535>remember.

505
00:24:57.215 --> 00:25:01.035
<00:24:57.215>Uh, <00:24:57.342>so <00:24:57.469>what <00:24:57.596>we <00:24:57.724>want <00:24:57.851>to <00:24:57.978>have <00:24:58.105>is <00:24:58.233>the <00:24:58.360>creation <00:24:58.487>operator <00:24:58.615>ConEd

506
00:25:01.095 --> 00:25:04.035
<00:25:01.095>for <00:25:01.250>example, <00:25:01.406>and <00:25:01.561>a <00:25:01.717>pipe <00:25:01.872>will <00:25:02.028>operate <00:25:02.183>a <00:25:02.339>concur <00:25:02.495>width.

507
00:25:04.335 --> 00:25:06.475
<00:25:04.335>How <00:25:04.510>this <00:25:04.685>looks <00:25:04.860>like <00:25:05.035>I <00:25:05.210>will <00:25:05.385>talk <00:25:05.560>about <00:25:05.735>later.

508
00:25:06.855 --> 00:25:10.235
<00:25:06.855>Uh, <00:25:07.010>but <00:25:07.166>we'll <00:25:07.321>create <00:25:07.477>similar <00:25:07.632>operators <00:25:07.788>with <00:25:07.943>this <00:25:08.099>kind <00:25:08.255>of

509
00:25:10.265 --> 00:25:13.465
<00:25:10.265>with <00:25:10.545>suffix <00:25:10.825>for <00:25:11.105>several <00:25:11.385>different <00:25:11.665>operators.

510
00:25:13.465 --> 00:25:14.865
<00:25:13.465>So <00:25:13.675>they <00:25:13.885>will <00:25:14.095>also <00:25:14.305>be <00:25:14.514>merged <00:25:14.725>with

511
00:25:16.405 --> 00:25:18.735
<00:25:16.405>zip <00:25:16.638>width <00:25:16.871>and <00:25:17.105>these <00:25:17.338>kind <00:25:17.571>of <00:25:17.805>stuff.

512
00:25:19.985 --> 00:25:22.555
<00:25:19.985>Okay, <00:25:20.140>so <00:25:20.296>let's <00:25:20.451>take <00:25:20.607>a <00:25:20.762>look <00:25:20.918>at <00:25:21.073>the <00:25:21.229>improved <00:25:21.385>typings.

513
00:25:23.165 --> 00:25:25.665
<00:25:23.165>Uh, <00:25:23.340>so <00:25:23.514>for <00:25:23.690>example, <00:25:23.865>one <00:25:24.040>thing <00:25:24.215>we <00:25:24.389>added <00:25:24.565>was

514
00:25:26.585 --> 00:25:29.315
<00:25:26.585>inferring <00:25:26.818>the <00:25:27.051>type <00:25:27.285>properly <00:25:27.518>when <00:25:27.751>you're <00:25:27.985>using

515
00:25:29.775 --> 00:25:30.995
<00:25:29.775>an <00:25:30.324>if <00:25:30.872>statement.

516
00:25:31.615 --> 00:25:33.035
<00:25:31.615>So <00:25:31.870>we <00:25:32.126>have <00:25:32.381>code <00:25:32.637>like <00:25:32.893>this

517
00:25:33.055 --> 00:25:35.755
<00:25:33.055>and <00:25:33.195>this <00:25:33.335>is <00:25:33.475>actually <00:25:33.615>quite <00:25:33.755>common <00:25:33.895>in <00:25:34.035>things <00:25:34.175>like <00:25:34.315>enter <00:25:34.455>X

518
00:25:35.755 --> 00:25:37.035
<00:25:35.755>or <00:25:35.985>redux <00:25:36.215>or <00:25:36.446>stuff <00:25:36.676>like <00:25:36.907>that.

519
00:25:37.575 --> 00:25:40.435
<00:25:37.575>So <00:25:37.808>you <00:25:38.041>say <00:25:38.275>like, <00:25:38.508>okay, <00:25:38.741>if <00:25:38.975>um,

520
00:25:41.505 --> 00:25:44.085
<00:25:41.505>if <00:25:41.680>I'm <00:25:41.855>online <00:25:42.030>please <00:25:42.205>perform <00:25:42.380>an <00:25:42.555>HT <00:25:42.730>TP <00:25:42.905>request,

521
00:25:44.105 --> 00:25:47.405
<00:25:44.105>if <00:25:44.245>I'm <00:25:44.385>not <00:25:44.525>online <00:25:44.665>or <00:25:44.805>I <00:25:44.945>don't <00:25:45.085>have <00:25:45.225>an <00:25:45.365>internet <00:25:45.505>connection,

522
00:25:47.405 --> 00:25:49.605
<00:25:47.405>please <00:25:47.685>return <00:25:47.965>that <00:25:48.245>cash <00:25:48.524>observable <00:25:48.805>and

523
00:25:49.605 --> 00:25:54.175
<00:25:49.605>therefore <00:25:49.780>the <00:25:49.955>uh, <00:25:50.130>return <00:25:50.305>type <00:25:50.480>might <00:25:50.655>vary <00:25:50.830>depending <00:25:51.005>on

524
00:25:54.175 --> 00:25:56.015
<00:25:54.175>that <00:25:54.408>value <00:25:54.641>and <00:25:54.875>would <00:25:55.108>would <00:25:55.341>be <00:25:55.575>proper

525
00:25:56.115 --> 00:25:57.255
<00:25:56.115>is <00:25:56.457>inferring <00:25:56.799>it <00:25:57.141>properly.

526
00:25:57.275 --> 00:26:00.795
<00:25:57.275>But <00:25:57.450>saying <00:25:57.625>okay, <00:25:57.800>it <00:25:57.975>returns <00:25:58.150>a <00:25:58.325>union <00:25:58.500>type, <00:25:58.675>um,

527
00:26:01.295 --> 00:26:02.475
<00:26:01.295>before <00:26:01.826>RXs <00:26:02.357>seven.

528
00:26:02.695 --> 00:26:05.275
<00:26:02.695>It <00:26:02.870>just <00:26:03.044>inferred <00:26:03.220>to, <00:26:03.395>okay, <00:26:03.570>it's <00:26:03.745>returning <00:26:03.919>an <00:26:04.095>observable

529
00:26:05.335 --> 00:26:07.475
<00:26:05.335>of <00:26:05.568>object <00:26:05.801>which <00:26:06.035>is <00:26:06.268>not <00:26:06.501>really <00:26:06.735>useful

530
00:26:07.475 --> 00:26:10.835
<00:26:07.475>and <00:26:07.591>you <00:26:07.708>have <00:26:07.824>to <00:26:07.941>cast <00:26:08.058>it <00:26:08.175>on <00:26:08.291>your <00:26:08.408>own <00:26:08.524>Now <00:26:08.641>with <00:26:08.758>RXs <00:26:08.875>seven

531
00:26:10.935 --> 00:26:13.275
<00:26:10.935>and <00:26:11.215>afterwards <00:26:11.495>it'll <00:26:11.774>be <00:26:12.054>properly <00:26:12.335>inferred

532
00:26:13.275 --> 00:26:14.595
<00:26:13.275>as <00:26:13.473>a <00:26:13.671>union <00:26:13.869>type <00:26:14.067>as <00:26:14.265>I <00:26:14.463>said.

533
00:26:15.865 --> 00:26:20.765
<00:26:15.865>And <00:26:16.098>this <00:26:16.331>union <00:26:16.565>type <00:26:16.798>infer <00:26:17.031>inferring, <00:26:17.265>uh,

534
00:26:20.985 --> 00:26:22.925
<00:26:20.985>we <00:26:21.264>added <00:26:21.544>for <00:26:21.824>se <00:26:22.104>several <00:26:22.385>operators.

535
00:26:22.925 --> 00:26:27.605
<00:26:22.925>So <00:26:23.065>also <00:26:23.205>for <00:26:23.345>conka <00:26:23.485>for <00:26:23.625>example, <00:26:23.764>Conka <00:26:23.905>says, <00:26:24.044>uh, <00:26:24.185>okay <00:26:24.325>if

536
00:26:27.605 --> 00:26:30.085
<00:26:27.605>that <00:26:27.780>first <00:26:27.955>observer <00:26:28.130>completes, <00:26:28.305>subscribe <00:26:28.480>to <00:26:28.655>the <00:26:28.830>next <00:26:29.005>one.

537
00:26:30.085 --> 00:26:31.685
<00:26:30.085>If <00:26:30.365>that <00:26:30.645>one <00:26:30.925>completes <00:26:31.205>add, <00:26:31.485>subscribe

538
00:26:31.685 --> 00:26:32.845
<00:26:31.685>to <00:26:31.801>the <00:26:31.917>next <00:26:32.033>one <00:26:32.149>and <00:26:32.264>so <00:26:32.381>on <00:26:32.497>and <00:26:32.613>so <00:26:32.729>forth.

539
00:26:33.265 --> 00:26:38.095
<00:26:33.265>So <00:26:33.405>technically <00:26:33.545>it <00:26:33.685>will <00:26:33.825>return <00:26:33.965>a <00:26:34.105>union <00:26:34.245>of <00:26:34.385>all <00:26:34.525>the <00:26:34.665>types

540
00:26:38.095 --> 00:26:40.705
<00:26:38.095>that <00:26:38.375>are <00:26:38.655>used <00:26:38.935>before <00:26:39.215>IXs <00:26:39.495>seven.

541
00:26:40.765 --> 00:26:43.405
<00:26:40.765>It <00:26:40.965>was <00:26:41.165>just <00:26:41.365>inferred <00:26:41.565>to <00:26:41.765>observable <00:26:41.965>of <00:26:42.165>unknown,

542
00:26:43.405 --> 00:26:45.085
<00:26:43.405>which <00:26:43.638>is <00:26:43.871>pretty <00:26:44.105>much <00:26:44.338>like <00:26:44.571>okay, <00:26:44.805>we

543
00:26:45.105 --> 00:26:48.755
<00:26:45.105>as <00:26:45.232>RXS <00:26:45.359>don't <00:26:45.486>know <00:26:45.614>what's <00:26:45.741>going <00:26:45.868>on, <00:26:45.995>take <00:26:46.123>you <00:26:46.250>on <00:26:46.377>your <00:26:46.505>own

544
00:26:49.585 --> 00:26:51.395
<00:26:49.585>with <00:26:49.865>RXs <00:26:50.145>seven, <00:26:50.425>we <00:26:50.705>fixed <00:26:50.985>that

545
00:26:51.655 --> 00:26:53.795
<00:26:51.655>and <00:26:51.935>it's <00:26:52.215>probably <00:26:52.495>inferred <00:26:52.774>up <00:26:53.055>to

546
00:26:54.355 --> 00:26:55.435
<00:26:54.355>I <00:26:54.549>don't <00:26:54.743>know <00:26:54.938>how <00:26:55.132>many <00:26:55.327>items.

547
00:26:58.015 --> 00:27:00.235
<00:26:58.015>Um, <00:26:58.215>this <00:26:58.415>is <00:26:58.615>kind <00:26:58.815>of <00:26:59.015>a <00:26:59.215>special <00:26:59.415>thing

548
00:27:00.235 --> 00:27:04.075
<00:27:00.235>because <00:27:00.390>we <00:27:00.546>improve <00:27:00.701>the <00:27:00.857>typings <00:27:01.012>for <00:27:01.168>reduce <00:27:01.323>in <00:27:01.479>scan <00:27:01.635>and

549
00:27:04.375 --> 00:27:06.555
<00:27:04.375>before <00:27:04.841>that <00:27:05.308>for <00:27:05.775>reduced

550
00:27:06.655 --> 00:27:09.115
<00:27:06.655>and <00:27:06.855>scan <00:27:07.055>we <00:27:07.254>just <00:27:07.455>use <00:27:07.655>the <00:27:07.855>return <00:27:08.055>value

551
00:27:09.135 --> 00:27:10.675
<00:27:09.135>of <00:27:09.597>the <00:27:10.059>accumulation <00:27:10.521>function.

552
00:27:11.135 --> 00:27:15.355
<00:27:11.135>So <00:27:11.335>if <00:27:11.535>you <00:27:11.735>specify <00:27:11.935>here <00:27:12.135>acm <00:27:12.335>may <00:27:12.535>accumulator

553
00:27:15.415 --> 00:27:18.555
<00:27:15.415>of <00:27:15.555>type <00:27:15.695>any, <00:27:15.835>then <00:27:15.975>the <00:27:16.115>observable <00:27:16.254>will <00:27:16.395>be <00:27:16.534>of <00:27:16.675>type <00:27:16.815>any,

554
00:27:18.705 --> 00:27:22.615
<00:27:18.705>even <00:27:18.938>though <00:27:19.171>the <00:27:19.405>function <00:27:19.638>is <00:27:19.871>returned <00:27:20.105>returns

555
00:27:23.335 --> 00:27:25.585
<00:27:23.335>when <00:27:23.568>100% <00:27:23.801>the <00:27:24.035>case's <00:27:24.268>always <00:27:24.501>a <00:27:24.735>string.

556
00:27:26.515 --> 00:27:29.015
<00:27:26.515>And <00:27:26.690>now <00:27:26.865>with <00:27:27.040>RXs <00:27:27.215>seven, <00:27:27.390>this <00:27:27.565>is <00:27:27.740>properly <00:27:27.915>inferred

557
00:27:29.355 --> 00:27:30.775
<00:27:29.355>to <00:27:29.610>be <00:27:29.866>an <00:27:30.121>observable <00:27:30.377>of <00:27:30.633>string.

558
00:27:31.285 --> 00:27:32.415
<00:27:31.285>Same <00:27:31.624>goes <00:27:31.963>for <00:27:32.302>scan.

559
00:27:32.615 --> 00:27:34.295
<00:27:32.615>I <00:27:32.848>just <00:27:33.081>used <00:27:33.315>the <00:27:33.548>reduce <00:27:33.781>example <00:27:34.015>here

560
00:27:35.295 --> 00:27:38.915
<00:27:35.295>and <00:27:35.435>one <00:27:35.575>very <00:27:35.715>last <00:27:35.855>cool <00:27:35.995>thing <00:27:36.135>that <00:27:36.275>we <00:27:36.415>implemented <00:27:36.555>is <00:27:36.695>having

561
00:27:39.695 --> 00:27:41.595
<00:27:39.695>the <00:27:40.161>filter <00:27:40.628>observable <00:27:41.095>operator

562
00:27:41.905 --> 00:27:43.595
<00:27:41.905>with <00:27:42.254>the <00:27:42.605>bullion <00:27:42.955>construction <00:27:43.305>function.

563
00:27:43.655 --> 00:27:47.155
<00:27:43.655>So <00:27:43.830>the <00:27:44.004>bullion <00:27:44.180>construction <00:27:44.355>function <00:27:44.530>will, <00:27:44.705>uh, <00:27:44.879>return <00:27:45.055>false

564
00:27:47.175 --> 00:27:48.915
<00:27:47.175>for <00:27:47.408>every <00:27:47.641>falsey <00:27:47.875>value <00:27:48.108>that <00:27:48.341>is <00:27:48.575>passed

565
00:27:49.015 --> 00:27:50.395
<00:27:49.015>and <00:27:49.263>true <00:27:49.511>for <00:27:49.760>every <00:27:50.008>truthy <00:27:50.257>value.

566
00:27:51.095 --> 00:27:55.275
<00:27:51.095>Uh, <00:27:51.270>so <00:27:51.445>therefore, <00:27:51.620>uh, <00:27:51.795>bullion <00:27:51.970>of <00:27:52.145>zero <00:27:52.320>is <00:27:52.495>false

567
00:27:56.105 --> 00:27:58.485
<00:27:56.105>and <00:27:56.280>all <00:27:56.455>the <00:27:56.630>others <00:27:56.805>would <00:27:56.980>be <00:27:57.155>true <00:27:57.330>before <00:27:57.505>that.

568
00:27:59.065 --> 00:28:00.965
<00:27:59.065>Um, <00:27:59.298>and <00:27:59.531>this <00:27:59.765>is <00:27:59.998>also <00:28:00.231>the <00:28:00.465>case

569
00:28:01.065 --> 00:28:04.325
<00:28:01.065>for <00:28:01.220>filter <00:28:01.376>right <00:28:01.531>now <00:28:01.687>is <00:28:01.842>when <00:28:01.998>you're <00:28:02.153>passing <00:28:02.309>the <00:28:02.465>bullion

570
00:28:04.485 --> 00:28:06.485
<00:28:04.485>construction <00:28:04.764>function <00:28:05.044>to <00:28:05.324>that <00:28:05.604>it'll <00:28:05.885>return

571
00:28:06.625 --> 00:28:07.805
<00:28:06.625>an <00:28:06.979>area <00:28:07.333>of <00:28:07.687>unknown.

572
00:28:09.105 --> 00:28:13.005
<00:28:09.105>And <00:28:09.260>with <00:28:09.416>the <00:28:09.571>next <00:28:09.727>version <00:28:09.882>of <00:28:10.038>IHS, <00:28:10.193>we <00:28:10.349>properly <00:28:10.505>infer

573
00:28:13.005 --> 00:28:15.565
<00:28:13.005>that <00:28:13.145>in <00:28:13.285>the <00:28:13.425>correct <00:28:13.565>way <00:28:13.705>so <00:28:13.845>that <00:28:13.985>it's <00:28:14.125>value <00:28:14.265>of <00:28:14.405>number

574
00:28:15.565 --> 00:28:19.525
<00:28:15.565>because <00:28:15.798>filter <00:28:16.031>also <00:28:16.265>doesn't <00:28:16.498>change <00:28:16.731>the <00:28:16.965>value,

575
00:28:19.905 --> 00:28:22.605
<00:28:19.905>it <00:28:20.060>just <00:28:20.216>changed <00:28:20.371>the <00:28:20.527>numbers <00:28:20.682>of <00:28:20.838>value <00:28:20.993>that <00:28:21.149>are <00:28:21.305>admitted.

576
00:28:24.345 --> 00:28:25.685
<00:28:24.345>So <00:28:24.546>these <00:28:24.747>are <00:28:24.948>the <00:28:25.149>things <00:28:25.350>that <00:28:25.551>we

577
00:28:26.285 --> 00:28:27.605
<00:28:26.285>improved <00:28:26.582>in <00:28:26.879>terms <00:28:27.176>of <00:28:27.473>typings.

578
00:28:28.415 --> 00:28:30.515
<00:28:28.415>Um, <00:28:28.881>as <00:28:29.348>I <00:28:29.815>mentioned

579
00:28:30.515 --> 00:28:33.195
<00:28:30.515>before <00:28:30.715>that <00:28:30.915>we <00:28:31.115>added <00:28:31.315>the <00:28:31.515>animation <00:28:31.715>frame <00:28:31.915>observable

580
00:28:33.735 --> 00:28:34.995
<00:28:33.735>and <00:28:34.018>you <00:28:34.302>can <00:28:34.585>use <00:28:34.869>that

581
00:28:35.015 --> 00:28:37.355
<00:28:35.015>to <00:28:35.295>build <00:28:35.575>very <00:28:35.855>smooth <00:28:36.135>animations <00:28:36.415>actually.

582
00:28:38.135 --> 00:28:41.315
<00:28:38.135>So <00:28:38.275>what <00:28:38.415>we <00:28:38.555>have <00:28:38.695>here <00:28:38.835>is <00:28:38.975>how <00:28:39.115>it <00:28:39.254>would <00:28:39.395>look <00:28:39.535>like.

583
00:28:42.095 --> 00:28:44.435
<00:28:42.095>So <00:28:42.375>using <00:28:42.655>that <00:28:42.935>animation <00:28:43.215>frames <00:28:43.495>observable

584
00:28:45.225 --> 00:28:47.715
<00:28:45.225>will <00:28:45.504>emit <00:28:45.784>all <00:28:46.064>the <00:28:46.344>ellipse <00:28:46.625>milliseconds

585
00:28:47.715 --> 00:28:49.275
<00:28:47.715>between <00:28:48.181>each <00:28:48.648>animation <00:28:49.115>frame.

586
00:28:49.855 --> 00:28:52.435
<00:28:49.855>And <00:28:49.995>you <00:28:50.135>could <00:28:50.275>use <00:28:50.415>that <00:28:50.555>for <00:28:50.695>example, <00:28:50.835>to <00:28:50.975>build <00:28:51.115>like <00:28:51.255>such

587
00:28:52.435 --> 00:28:54.915
<00:28:52.435>as <00:28:52.610>tween <00:28:52.784>function <00:28:52.960>or <00:28:53.135>I <00:28:53.310>will <00:28:53.485>see <00:28:53.659>how, <00:28:53.835>uh,

588
00:28:55.035 --> 00:28:56.435
<00:28:55.035>I <00:28:55.215>will <00:28:55.395>show <00:28:55.575>you <00:28:55.755>how <00:28:55.935>this <00:28:56.115>looks <00:28:56.295>like.

589
00:28:56.935 --> 00:29:00.115
<00:28:56.935>So <00:28:57.135>this <00:28:57.335>tween <00:28:57.534>pretty <00:28:57.735>much <00:28:57.935>calculate <00:28:58.135>the <00:28:58.335>duration

590
00:29:00.115 --> 00:29:03.635
<00:29:00.115>between <00:29:00.465>every <00:29:00.815>um, <00:29:01.165>other <00:29:01.515>percentage

591
00:29:04.215 --> 00:29:07.675
<00:29:04.215>and <00:29:04.355>then <00:29:04.495>say <00:29:04.635>how <00:29:04.774>much <00:29:04.915>you <00:29:05.054>have <00:29:05.195>to <00:29:05.334>animate <00:29:05.475>an <00:29:05.615>item

592
00:29:08.305 --> 00:29:09.955
<00:29:08.305>with <00:29:08.771>every <00:29:09.238>animation <00:29:09.705>frame.

593
00:29:10.215 --> 00:29:12.475
<00:29:10.215>The <00:29:10.355>result <00:29:10.495>of <00:29:10.635>this <00:29:10.774>is <00:29:10.915>that <00:29:11.054>you <00:29:11.195>will <00:29:11.334>get <00:29:11.475>very <00:29:11.615>smooth

594
00:29:12.475 --> 00:29:14.835
<00:29:12.475>animation <00:29:12.675>out <00:29:12.875>of <00:29:13.074>it <00:29:13.274>because <00:29:13.475>it, <00:29:13.675>it's <00:29:13.875>aligned

595
00:29:14.835 --> 00:29:18.745
<00:29:14.835>with <00:29:15.068>the <00:29:15.301>frame <00:29:15.535>number <00:29:15.768>more <00:29:16.001>or <00:29:16.235>less.

596
00:29:19.285 --> 00:29:21.305
<00:29:19.285>Uh, <00:29:19.460>you <00:29:19.635>could <00:29:19.810>use <00:29:19.985>this <00:29:20.160>in <00:29:20.335>such <00:29:20.510>a <00:29:20.685>way

597
00:29:21.615 --> 00:29:24.585
<00:29:21.615>that <00:29:21.742>you're <00:29:21.869>placing <00:29:21.996>a <00:29:22.124>diff <00:29:22.251>in <00:29:22.378>a <00:29:22.505>very <00:29:22.633>manual <00:29:22.760>manner <00:29:22.887>like <00:29:23.015>this

598
00:29:25.085 --> 00:29:27.985
<00:29:25.085>and <00:29:25.225>then <00:29:25.365>using <00:29:25.505>this <00:29:25.645>custom <00:29:25.785>tree <00:29:25.925>operator <00:29:26.065>that <00:29:26.205>I <00:29:26.345>created <00:29:26.485>here

599
00:29:28.285 --> 00:29:30.305
<00:29:28.285>to <00:29:28.518>transform <00:29:28.751>the <00:29:28.985>position <00:29:29.218>of <00:29:29.451>an <00:29:29.685>item

600
00:29:30.365 --> 00:29:32.345
<00:29:30.365>and <00:29:30.598>it <00:29:30.831>would <00:29:31.065>look <00:29:31.298>like <00:29:31.531>this, <00:29:31.765>it

601
00:29:33.095 --> 00:29:37.015
<00:29:33.095>might <00:29:33.270>not <00:29:33.445>look <00:29:33.620>super <00:29:33.795>smooth <00:29:33.970>due <00:29:34.145>to <00:29:34.320>the <00:29:34.495>remote

602
00:29:37.275 --> 00:29:39.975
<00:29:37.275>and <00:29:37.555>zoom <00:29:37.835>sharing <00:29:38.115>kind <00:29:38.395>of <00:29:38.675>thing,

603
00:29:40.315 --> 00:29:43.205
<00:29:40.315>but <00:29:40.442>just <00:29:40.569>have <00:29:40.696>to <00:29:40.824>believe <00:29:40.951>me <00:29:41.078>it's <00:29:41.205>super <00:29:41.333>smooth <00:29:41.460>on <00:29:41.587>my <00:29:41.715>screen.

604
00:29:44.005 --> 00:29:47.015
<00:29:44.005>Um, <00:29:44.238>so <00:29:44.471>this <00:29:44.705>is <00:29:44.938>one <00:29:45.171>cool, <00:29:45.405>uh,

605
00:29:47.275 --> 00:29:48.895
<00:29:47.275>one <00:29:47.508>thing <00:29:47.741>I'm <00:29:47.975>very <00:29:48.208>much <00:29:48.441>looking <00:29:48.675>forward,

606
00:29:49.185 --> 00:29:50.655
<00:29:49.185>especially <00:29:49.449>if <00:29:49.714>you <00:29:49.978>want <00:29:50.243>to <00:29:50.508>build

607
00:29:51.265 --> 00:29:52.735
<00:29:51.265>animations <00:29:51.595>in <00:29:51.926>a <00:29:52.257>reactive <00:29:52.588>manner.

608
00:29:52.765 --> 00:29:54.535
<00:29:52.765>This <00:29:52.965>is <00:29:53.165>a <00:29:53.365>very <00:29:53.565>cool <00:29:53.765>thing <00:29:53.965>that <00:29:54.165>you,

609
00:29:54.725 --> 00:29:57.535
<00:29:54.725>that <00:29:54.852>many <00:29:54.979>people <00:29:55.106>are <00:29:55.234>already <00:29:55.361>using <00:29:55.488>in <00:29:55.615>a <00:29:55.743>kind <00:29:55.870>of <00:29:55.997>hacky <00:29:56.125>way.

610
00:29:59.745 --> 00:30:03.075
<00:29:59.745>Last <00:29:59.919>thing <00:30:00.094>is <00:30:00.270>what <00:30:00.445>I <00:30:00.620>mentioned <00:30:00.794>this <00:30:00.969>concord <00:30:01.145>thingy

611
00:30:03.575 --> 00:30:07.075
<00:30:03.575>and <00:30:03.702>what <00:30:03.829>we <00:30:03.956>are <00:30:04.084>doing <00:30:04.211>here <00:30:04.338>is <00:30:04.465>we're <00:30:04.593>we <00:30:04.720>have <00:30:04.847>this <00:30:04.975>kind

612
00:30:07.075 --> 00:30:09.435
<00:30:07.075>of <00:30:07.275>situation <00:30:07.475>where <00:30:07.675>you <00:30:07.875>say <00:30:08.075>like, <00:30:08.275>okay, <00:30:08.475>Concord

613
00:30:10.235 --> 00:30:11.615
<00:30:10.235>and <00:30:10.649>group <00:30:11.062>two <00:30:11.477>observables

614
00:30:11.635 --> 00:30:14.695
<00:30:11.635>and <00:30:11.742>this <00:30:11.850>is <00:30:11.958>fine <00:30:12.065>if <00:30:12.173>you <00:30:12.281>have <00:30:12.388>them <00:30:12.496>already <00:30:12.604>split <00:30:12.711>up <00:30:12.819>in <00:30:12.927>such <00:30:13.035>a

615
00:30:14.695 --> 00:30:18.655
<00:30:14.695>way, <00:30:14.822>but <00:30:14.949>it <00:30:15.076>becomes <00:30:15.204>kind <00:30:15.331>of <00:30:15.458>tricky <00:30:15.585>if <00:30:15.713>you <00:30:15.840>want <00:30:15.967>to <00:30:16.095>uh,

616
00:30:19.145 --> 00:30:20.655
<00:30:19.145>apply <00:30:19.598>some <00:30:20.051>operators <00:30:20.504>just

617
00:30:20.655 --> 00:30:22.335
<00:30:20.655>to <00:30:20.855>one <00:30:21.055>observable <00:30:21.254>but <00:30:21.455>not <00:30:21.655>to <00:30:21.855>the <00:30:22.055>other.

618
00:30:23.405 --> 00:30:26.905
<00:30:23.405>Um, <00:30:23.560>so <00:30:23.716>that's <00:30:23.871>pretty <00:30:24.027>much <00:30:24.182>the <00:30:24.338>reasons <00:30:24.493>why <00:30:24.649>we <00:30:24.805>want

619
00:30:26.905 --> 00:30:29.585
<00:30:26.905>to <00:30:27.045>have <00:30:27.185>conquered <00:30:27.325>with <00:30:27.465>so <00:30:27.605>that <00:30:27.745>you <00:30:27.885>can <00:30:28.024>say <00:30:28.165>like, <00:30:28.305>okay,

620
00:30:29.675 --> 00:30:33.145
<00:30:29.675>apply <00:30:29.875>all <00:30:30.075>those <00:30:30.274>operators <00:30:30.475>to <00:30:30.675>the <00:30:30.875>hello <00:30:31.075>observable

621
00:30:33.845 --> 00:30:37.985
<00:30:33.845>and <00:30:34.000>as <00:30:34.156>soon <00:30:34.311>as <00:30:34.467>this <00:30:34.622>completes <00:30:34.778>subscribe <00:30:34.933>to <00:30:35.089>word <00:30:35.245>observable

622
00:30:38.005 --> 00:30:40.785
<00:30:38.005>so <00:30:38.180>you <00:30:38.355>can <00:30:38.530>pass <00:30:38.705>all <00:30:38.880>the <00:30:39.055>observe, <00:30:39.230>uh, <00:30:39.405>operators

623
00:30:40.845 --> 00:30:41.985
<00:30:40.845>before <00:30:41.358>Concur <00:30:41.870>with.

624
00:30:42.245 --> 00:30:43.825
<00:30:42.245>So <00:30:42.478>those <00:30:42.711>will <00:30:42.945>just <00:30:43.178>apply <00:30:43.411>to <00:30:43.645>hello

625
00:30:43.925 --> 00:30:45.865
<00:30:43.925>and <00:30:44.125>everything <00:30:44.325>afterwards <00:30:44.524>will <00:30:44.725>be <00:30:44.925>applied <00:30:45.125>to <00:30:45.325>both.

626
00:30:46.645 --> 00:30:49.825
<00:30:46.645>Um, <00:30:46.820>this <00:30:46.995>improves <00:30:47.170>the <00:30:47.345>developer <00:30:47.520>experience <00:30:47.695>for <00:30:47.870>those <00:30:48.045>kind

627
00:30:49.825 --> 00:30:52.105
<00:30:49.825>of <00:30:50.175>scenarios <00:30:50.525>a <00:30:50.875>lot <00:30:51.225>because

628
00:30:52.105 --> 00:30:55.945
<00:30:52.105>otherwise <00:30:52.245>you <00:30:52.385>always <00:30:52.525>had <00:30:52.665>to <00:30:52.805>uh, <00:30:52.945>save <00:30:53.085>that <00:30:53.225>in <00:30:53.365>some <00:30:53.505>kind

629
00:30:55.945 --> 00:30:59.535
<00:30:55.945>of <00:30:56.061>variable <00:30:56.178>and <00:30:56.294>now <00:30:56.411>you <00:30:56.528>can <00:30:56.645>just <00:30:56.761>have <00:30:56.878>it <00:30:56.995>in <00:30:57.111>a <00:30:57.228>proper <00:30:57.345>flow

630
00:30:59.555 --> 00:31:00.855
<00:30:59.555>and <00:30:59.847>it's <00:31:00.140>much <00:31:00.432>more <00:31:00.725>readable.

631
00:31:01.555 --> 00:31:05.575
<00:31:01.555>Um, <00:31:01.695>that <00:31:01.835>doesn't <00:31:01.975>mean <00:31:02.115>Concur <00:31:02.255>doesn't <00:31:02.395>has <00:31:02.535>its <00:31:02.675>user <00:31:02.815>U <00:31:02.955>usage.

632
00:31:05.835 --> 00:31:08.095
<00:31:05.835>So <00:31:05.975>this <00:31:06.115>kind <00:31:06.255>of <00:31:06.395>scenario <00:31:06.535>when <00:31:06.675>you <00:31:06.815>already <00:31:06.955>have <00:31:07.095>it <00:31:07.235>in

633
00:31:08.335 --> 00:31:09.775
<00:31:08.335>variables <00:31:08.767>is <00:31:09.199>totally <00:31:09.631>fine

634
00:31:09.775 --> 00:31:11.655
<00:31:09.775>and <00:31:09.915>you <00:31:10.055>want <00:31:10.195>just <00:31:10.335>to <00:31:10.475>create <00:31:10.615>an <00:31:10.755>observer <00:31:10.895>out <00:31:11.035>of <00:31:11.175>that.

635
00:31:12.235 --> 00:31:17.095
<00:31:12.235>But <00:31:12.390>they're <00:31:12.546>also <00:31:12.701>very, <00:31:12.857>there <00:31:13.012>are <00:31:13.168>proper <00:31:13.323>scenarios <00:31:13.479>for <00:31:13.635>Conka

636
00:31:17.095 --> 00:31:18.975
<00:31:17.095>and <00:31:17.295>Coco <00:31:17.495>with, <00:31:17.695>that's <00:31:17.895>just <00:31:18.095>what <00:31:18.295>I'm <00:31:18.495>saying.

637
00:31:21.965 --> 00:31:25.935
<00:31:21.965>Okay, <00:31:22.139>that's <00:31:22.314>pretty <00:31:22.490>much <00:31:22.665>all <00:31:22.840>I <00:31:23.014>got <00:31:23.189>so <00:31:23.365>far.

638
00:31:26.175 --> 00:31:27.415
<00:31:26.175>I <00:31:26.398>just <00:31:26.621>have <00:31:26.844>this <00:31:27.067>quick <00:31:27.291>summary

639
00:31:27.635 --> 00:31:30.215
<00:31:27.635>and <00:31:27.790>uh, <00:31:27.946>what <00:31:28.101>I <00:31:28.257>really <00:31:28.412>want <00:31:28.568>you <00:31:28.723>to <00:31:28.879>go <00:31:29.035>out

640
00:31:30.215 --> 00:31:32.775
<00:31:30.215>with <00:31:30.355>this <00:31:30.495>talk <00:31:30.635>is <00:31:30.774>like <00:31:30.915>if <00:31:31.054>you <00:31:31.195>want <00:31:31.334>to <00:31:31.475>get <00:31:31.615>better

641
00:31:32.775 --> 00:31:35.615
<00:31:32.775>with <00:31:33.008>r <00:31:33.241>just <00:31:33.475>just <00:31:33.708>practice, <00:31:33.941>practice, <00:31:34.175>practice.

642
00:31:36.075 --> 00:31:39.605
<00:31:36.075>And <00:31:36.275>there <00:31:36.475>are <00:31:36.675>several <00:31:36.875>things <00:31:37.075>you <00:31:37.275>can <00:31:37.475>build

643
00:31:39.755 --> 00:31:41.285
<00:31:39.755>with <00:31:40.214>RXS <00:31:40.673>very <00:31:41.132>good.

644
00:31:41.705 --> 00:31:44.165
<00:31:41.705>You <00:31:41.860>could <00:31:42.016>just <00:31:42.171>redo <00:31:42.327>the <00:31:42.482>same <00:31:42.638>for <00:31:42.793>example, <00:31:42.949>to <00:31:43.105>just,

645
00:31:44.855 --> 00:31:46.155
<00:31:44.855>um, <00:31:45.147>you <00:31:45.440>know, <00:31:45.732>the <00:31:46.025>code.

646
00:31:46.475 --> 00:31:48.475
<00:31:46.475>I <00:31:46.649>will <00:31:46.824>share <00:31:47.000>the <00:31:47.175>link <00:31:47.350>to <00:31:47.524>the <00:31:47.699>code <00:31:47.875>anyway,

647
00:31:48.575 --> 00:31:49.835
<00:31:48.575>so <00:31:48.801>you <00:31:49.028>can <00:31:49.255>refer <00:31:49.482>to <00:31:49.709>that.

648
00:31:49.835 --> 00:31:52.435
<00:31:49.835>You <00:31:49.990>could <00:31:50.146>ask <00:31:50.301>me <00:31:50.457>how <00:31:50.612>did <00:31:50.768>I <00:31:50.923>do <00:31:51.079>stuff, <00:31:51.235>uh,

649
00:31:52.785 --> 00:31:56.435
<00:31:52.785>when <00:31:52.940>very <00:31:53.096>common <00:31:53.251>examples <00:31:53.407>also <00:31:53.562>drag <00:31:53.718>and <00:31:53.873>drop <00:31:54.029>like <00:31:54.185>dragging

650
00:31:56.495 --> 00:31:58.675
<00:31:56.495>and <00:31:56.695>dropping <00:31:56.895>a <00:31:57.094>diff <00:31:57.294>or <00:31:57.495>something <00:31:57.695>like <00:31:57.895>that.

651
00:31:58.675 --> 00:32:02.275
<00:31:58.675>That's <00:31:58.802>also <00:31:58.929>very <00:31:59.056>similar <00:31:59.184>if <00:31:59.311>we <00:31:59.438>just <00:31:59.565>think <00:31:59.693>about <00:31:59.820>it <00:31:59.947>like <00:32:00.075>it's

652
00:32:02.275 --> 00:32:04.595
<00:32:02.275>still <00:32:02.508>mouse <00:32:02.741>click, <00:32:02.975>mouse <00:32:03.208>move <00:32:03.441>mouse <00:32:03.675>up.

653
00:32:04.945 --> 00:32:08.745
<00:32:04.945>It's <00:32:05.225>nothing <00:32:05.504>that <00:32:05.784>similar, <00:32:06.064>like <00:32:06.345>the

654
00:32:09.325 --> 00:32:11.945
<00:32:09.325>RXs <00:32:09.452>1 <00:32:09.579>0 <00:32:09.706>1 <00:32:09.834>example <00:32:09.961>is <00:32:10.088>like <00:32:10.215>a <00:32:10.343>type <00:32:10.470>of <00:32:10.597>head <00:32:10.725>search.

655
00:32:11.965 --> 00:32:14.465
<00:32:11.965>So <00:32:12.120>this <00:32:12.276>is <00:32:12.431>also <00:32:12.587>very <00:32:12.742>cool <00:32:12.898>to <00:32:13.053>build <00:32:13.209>with <00:32:13.365>s

656
00:32:15.125 --> 00:32:18.595
<00:32:15.125>and <00:32:15.358>will <00:32:15.591>also <00:32:15.825>be <00:32:16.058>the <00:32:16.291>future, <00:32:16.525>uh,

657
00:32:18.875 --> 00:32:21.075
<00:32:18.875>tutorial <00:32:19.225>in <00:32:19.575>the <00:32:19.925>documentation <00:32:20.275>website.

658
00:32:22.555 --> 00:32:24.965
<00:32:22.555>Also, <00:32:22.730>very <00:32:22.905>common <00:32:23.080>scenario <00:32:23.255>is <00:32:23.430>long <00:32:23.605>polling, <00:32:23.780>for <00:32:23.955>example.

659
00:32:25.025 --> 00:32:27.125
<00:32:25.025>And <00:32:25.200>there <00:32:25.375>are <00:32:25.550>so <00:32:25.725>many <00:32:25.900>different <00:32:26.075>kind, <00:32:26.250>uh, <00:32:26.425>ways

660
00:32:27.145 --> 00:32:29.905
<00:32:27.145>to <00:32:27.378>implement <00:32:27.611>long <00:32:27.845>polling <00:32:28.078>with <00:32:28.311>RXS, <00:32:28.545>um,

661
00:32:30.365 --> 00:32:34.785
<00:32:30.365>and <00:32:30.540>all <00:32:30.715>have <00:32:30.890>the <00:32:31.065>different <00:32:31.240>benefits, <00:32:31.415>reasons <00:32:31.590>and <00:32:31.765>approaches.

662
00:32:35.205 --> 00:32:36.705
<00:32:35.205>So <00:32:35.475>this <00:32:35.745>is <00:32:36.014>also <00:32:36.284>one <00:32:36.554>example

663
00:32:36.705 --> 00:32:38.225
<00:32:36.705>that <00:32:36.933>I <00:32:37.160>can <00:32:37.389>really <00:32:37.617>recommend <00:32:37.844>you <00:32:38.072>just

664
00:32:38.225 --> 00:32:40.245
<00:32:38.225>to <00:32:38.574>establish <00:32:38.925>this <00:32:39.274>reactive <00:32:39.625>mindset

665
00:32:40.505 --> 00:32:45.045
<00:32:40.505>and <00:32:40.632>learn <00:32:40.759>for <00:32:40.886>your <00:32:41.014>own <00:32:41.141>when <00:32:41.268>to <00:32:41.395>use <00:32:41.523>RX <00:32:41.650>s <00:32:41.777>when <00:32:41.905>not

666
00:32:45.045 --> 00:32:47.405
<00:32:45.045>what <00:32:45.325>is <00:32:45.605>a <00:32:45.885>proper <00:32:46.165>reactive <00:32:46.445>problem

667
00:32:47.435 --> 00:32:48.645
<00:32:47.435>that <00:32:47.652>you <00:32:47.870>could <00:32:48.088>fix <00:32:48.306>with <00:32:48.524>that.

668
00:32:50.445 --> 00:32:53.225
<00:32:50.445>Um, <00:32:50.620>so <00:32:50.794>here <00:32:50.970>are <00:32:51.145>the <00:32:51.320>links <00:32:51.495>to <00:32:51.669>the <00:32:51.845>slide.

669
00:32:53.285 --> 00:32:56.465
<00:32:53.285>The <00:32:53.425>first <00:32:53.565>one <00:32:53.705>is <00:32:53.845>the <00:32:53.985>slide, <00:32:54.125>the <00:32:54.265>second <00:32:54.405>one <00:32:54.545>is, <00:32:54.685>uh,

670
00:32:57.165 --> 00:32:58.585
<00:32:57.165>the <00:32:57.484>link <00:32:57.804>to <00:32:58.123>the <00:32:58.443>repository.

671
00:32:58.645 --> 00:32:59.985
<00:32:58.645>So <00:32:58.795>if <00:32:58.946>you <00:32:59.097>want <00:32:59.248>to <00:32:59.398>check <00:32:59.549>out <00:32:59.700>the <00:32:59.851>code.

672
00:33:00.005 --> 00:33:01.545
<00:33:00.005>So <00:33:00.203>there's <00:33:00.401>also <00:33:00.599>the <00:33:00.797>code <00:33:00.995>for <00:33:01.193>the <00:33:01.391>slide,

673
00:33:01.565 --> 00:33:03.585
<00:33:01.565>but <00:33:01.765>also <00:33:01.965>the <00:33:02.165>code <00:33:02.365>for <00:33:02.565>the <00:33:02.765>project <00:33:02.965>itself.

674
00:33:04.385 --> 00:33:07.285
<00:33:04.385>Uh, <00:33:04.525>so <00:33:04.665>these <00:33:04.805>two <00:33:04.945>I <00:33:05.085>can <00:33:05.225>really <00:33:05.365>recommend <00:33:05.504>you <00:33:05.645>to <00:33:05.785>check

675
00:33:07.285 --> 00:33:10.285
<00:33:07.285>that <00:33:07.412>out <00:33:07.539>if <00:33:07.666>you <00:33:07.794>have, <00:33:07.921>if <00:33:08.048>you <00:33:08.175>just <00:33:08.303>want <00:33:08.430>to <00:33:08.557>rewatch <00:33:08.685>it.

676
00:33:12.145 --> 00:33:16.005
<00:33:12.145>And <00:33:12.285>that's <00:33:12.425>all <00:33:12.565>I <00:33:12.705>got. <00:33:12.845>Thank <00:33:12.985>you <00:33:13.125>very <00:33:13.264>much <00:33:13.405>for <00:33:13.545>listening.

677
00:33:16.205 --> 00:33:18.845
<00:33:16.205>I <00:33:16.485>really <00:33:16.764>appreciate, <00:33:17.044>appreciate <00:33:17.324>being <00:33:17.605>here

678
00:33:19.345 --> 00:33:20.645
<00:33:19.345>and <00:33:19.637>I <00:33:19.930>really <00:33:20.222>enjoyed <00:33:20.514>it.

679
00:33:21.215 --> 00:33:21.645
<00:33:21.215>Thank <00:33:21.601>you.