WEBVTT

1
00:00:01.080 --> 00:00:03.000
<v Speaker 1>How'd you like to listen to dot net rocks with

2
00:00:03.040 --> 00:00:07.879
<v Speaker 1>no ads? Easy? Become a patron for just five dollars

3
00:00:07.919 --> 00:00:10.800
<v Speaker 1>a month. You get access to a private RSS feed

4
00:00:10.839 --> 00:00:14.279
<v Speaker 1>where all the shows have no ads. Twenty dollars a month,

5
00:00:14.279 --> 00:00:16.879
<v Speaker 1>we'll get you that and a special dot net Rocks

6
00:00:16.960 --> 00:00:21.000
<v Speaker 1>patron mug. Sign up now at Patreon dot dot NetRocks

7
00:00:21.120 --> 00:00:35.600
<v Speaker 1>dot com. We'll get down rock and roll. It's dot

8
00:00:35.759 --> 00:00:38.799
<v Speaker 1>net Rocks. I'm Carl Franklin and I'm Richard Cavell, and

9
00:00:39.119 --> 00:00:41.280
<v Speaker 1>it's gonna be a good show. Chris Woody Woodruff is

10
00:00:41.280 --> 00:00:44.880
<v Speaker 1>here with us, but before we talk to him, I

11
00:00:44.960 --> 00:00:46.960
<v Speaker 1>need to talk to you, Richard. What's up? You know,

12
00:00:47.399 --> 00:00:49.479
<v Speaker 1>this is the show that comes out during build. So

13
00:00:49.600 --> 00:00:51.880
<v Speaker 1>how is your build? Oh it's wonderful.

14
00:00:52.200 --> 00:00:53.640
<v Speaker 2>Yeah, you were having a great You've been having a

15
00:00:53.640 --> 00:00:56.200
<v Speaker 2>great time. I think you're flying back on Thursday, too,

16
00:00:56.280 --> 00:00:58.439
<v Speaker 2>so you should be in the air at this particular moment.

17
00:00:58.600 --> 00:01:00.600
<v Speaker 1>That's right. I need to fly back a little bit

18
00:01:00.600 --> 00:01:04.840
<v Speaker 1>early because my daughter is having a graduation party for

19
00:01:04.920 --> 00:01:08.879
<v Speaker 1>her masters So that's awesome. Well, and it looks like

20
00:01:09.280 --> 00:01:11.519
<v Speaker 1>Thursday's only a half day anyway, now, so yeah, not

21
00:01:11.599 --> 00:01:13.680
<v Speaker 1>a big deal. Well, this party is going to involve

22
00:01:13.719 --> 00:01:15.519
<v Speaker 1>lots of smoked meats.

23
00:01:15.560 --> 00:01:17.799
<v Speaker 2>Well, that's one of my favorite kinds of party.

24
00:01:17.959 --> 00:01:22.519
<v Speaker 1>Yeah, I've got something interesting for Better Know a Framework,

25
00:01:22.599 --> 00:01:32.959
<v Speaker 1>So let's roll the crazy music. All right, man, hit me? Yeah,

26
00:01:33.359 --> 00:01:38.599
<v Speaker 1>aspnut Corp dot Diagnostics dot health checks. Oh no, not again.

27
00:01:38.680 --> 00:01:41.560
<v Speaker 1>Are you actually doing the framework on Better Know a framework? Well,

28
00:01:41.560 --> 00:01:44.280
<v Speaker 1>it's not really a framework. It's a it's a third

29
00:01:44.359 --> 00:01:46.680
<v Speaker 1>party thing. It's oh, it's okay, it's as a get

30
00:01:46.799 --> 00:01:50.319
<v Speaker 1>up repo. Yeah, enterprise health checks for asp net Corp

31
00:01:50.920 --> 00:01:55.040
<v Speaker 1>diagnostics package. But that's awesome if you scroll down, like

32
00:01:55.359 --> 00:01:59.280
<v Speaker 1>when you look at all of the things that it's about,

33
00:01:59.359 --> 00:02:05.519
<v Speaker 1>all the package, just that it supports. It's like everything everything. No, wow,

34
00:02:05.799 --> 00:02:10.120
<v Speaker 1>but it's only just asp dot net corey toly yeah Toly,

35
00:02:11.000 --> 00:02:15.240
<v Speaker 1>But I mean, how unhealthy can core get? Yeah, so

36
00:02:15.400 --> 00:02:19.159
<v Speaker 1>it's it's too much for me to explain. I mean,

37
00:02:19.240 --> 00:02:22.280
<v Speaker 1>it's basically that's what it is. It's health checks but nice.

38
00:02:22.319 --> 00:02:25.360
<v Speaker 1>But it supports everything, so it's cool. I'm not going

39
00:02:25.400 --> 00:02:28.319
<v Speaker 1>to read the list. It's a long list. Check it out. Yeah.

40
00:02:29.000 --> 00:02:31.680
<v Speaker 2>But yeah, all right, you don't you a more importantly,

41
00:02:31.680 --> 00:02:33.960
<v Speaker 2>you don't have to write this stuff. Somebody's already built

42
00:02:33.960 --> 00:02:36.199
<v Speaker 2>a repository. It's got a bunch of contributors.

43
00:02:36.479 --> 00:02:36.759
<v Speaker 1>Yep.

44
00:02:36.960 --> 00:02:39.759
<v Speaker 2>So it's not up on nine yet. It's still dot

45
00:02:39.800 --> 00:02:41.319
<v Speaker 2>net eight. But who knows. By the time you hear

46
00:02:41.319 --> 00:02:42.240
<v Speaker 2>this than they I've already got it.

47
00:02:42.479 --> 00:02:44.599
<v Speaker 1>I've already got it. I can see the issue in

48
00:02:44.639 --> 00:02:48.039
<v Speaker 1>there being worked. So that's a good sign. Yep, good stuff. Awesome, No,

49
00:02:48.199 --> 00:02:51.439
<v Speaker 1>learn it, love it. Hey. Richard who's talking to us today.

50
00:02:51.280 --> 00:02:54.439
<v Speaker 2>Grabbed a show off of episode nineteen forty six, the

51
00:02:54.479 --> 00:02:56.280
<v Speaker 2>one we do with Elias Pirnin when we were talking

52
00:02:56.280 --> 00:02:59.719
<v Speaker 2>about audio, video and dot net, and this comment comes

53
00:02:59.759 --> 00:03:03.039
<v Speaker 2>from Kurt Nichols who said, it's just a few weeks ago.

54
00:03:03.120 --> 00:03:06.560
<v Speaker 2>He said, for what it's worth, Marshall dot alec h global,

55
00:03:06.800 --> 00:03:08.599
<v Speaker 2>which is something that we talked about on the show.

56
00:03:08.680 --> 00:03:13.319
<v Speaker 2>For doing dealing with video stuff is unmanaged memory allocation.

57
00:03:13.599 --> 00:03:16.039
<v Speaker 2>Unmanage memory is not involved in garbage collection, does not

58
00:03:16.159 --> 00:03:18.199
<v Speaker 2>move within the address space, and does not need to

59
00:03:18.240 --> 00:03:21.360
<v Speaker 2>be pinned, and span of tea is very handily for

60
00:03:21.479 --> 00:03:23.479
<v Speaker 2>manipulating a native buffer. If you're doing things like this,

61
00:03:23.599 --> 00:03:27.400
<v Speaker 2>consider implementing a safe handle that is safe handle zero

62
00:03:27.599 --> 00:03:32.039
<v Speaker 2>minus one is invalid for releasing the allocation. So actually

63
00:03:32.080 --> 00:03:34.840
<v Speaker 2>a very important clarification. And once again here we are

64
00:03:34.879 --> 00:03:38.520
<v Speaker 2>talking about old school yeah sockets and stuff, you know,

65
00:03:38.800 --> 00:03:43.280
<v Speaker 2>managed versus unmanaged behavior. Elias also responded to that comment.

66
00:03:43.319 --> 00:03:47.439
<v Speaker 2>He said, Span of Tea is awesome and this safe

67
00:03:47.800 --> 00:03:49.919
<v Speaker 2>and then I asked, this safe handle take care of

68
00:03:49.919 --> 00:03:51.840
<v Speaker 2>the allocation too, or just provide a wrapper of sorts

69
00:03:51.840 --> 00:03:54.400
<v Speaker 2>for the life cycle stuff and it just provides the rapper.

70
00:03:54.560 --> 00:03:57.439
<v Speaker 1>You have to deal with your own allocations. Cool.

71
00:03:57.520 --> 00:03:59.039
<v Speaker 2>So, Kurt, thank you so much for your comment in

72
00:03:59.080 --> 00:04:00.639
<v Speaker 2>a coffee. Music cod by on its way to you,

73
00:04:00.680 --> 00:04:02.039
<v Speaker 2>and if you'd like a copy of music go buy.

74
00:04:02.039 --> 00:04:03.520
<v Speaker 2>I right a comment on the website at dot net

75
00:04:03.599 --> 00:04:05.599
<v Speaker 2>rocks dot com or on Facebook, So publish every show

76
00:04:05.599 --> 00:04:06.759
<v Speaker 2>there and if you comment there and I reading on

77
00:04:06.759 --> 00:04:08.360
<v Speaker 2>the show, we'll send you copy of music to go buy.

78
00:04:08.560 --> 00:04:12.159
<v Speaker 1>Music two code my is still going strong, twenty two tracks.

79
00:04:12.360 --> 00:04:14.800
<v Speaker 1>I listened to it all the time still when I'm coding,

80
00:04:16.000 --> 00:04:19.160
<v Speaker 1>and you can download it well yeah, penny for it

81
00:04:19.240 --> 00:04:21.680
<v Speaker 1>of course, but you can get it at music to

82
00:04:21.800 --> 00:04:24.079
<v Speaker 1>code by dot net. You can get the collection in

83
00:04:24.240 --> 00:04:28.759
<v Speaker 1>MP three flack or wave or all three if you want.

84
00:04:29.040 --> 00:04:30.680
<v Speaker 1>Nice hey knock yourself out.

85
00:04:30.920 --> 00:04:33.839
<v Speaker 3>I have a done DVD, not DVD CD.

86
00:04:35.079 --> 00:04:39.120
<v Speaker 2>Yeah, that's right, school. Yeah, you burned it to CDR.

87
00:04:39.319 --> 00:04:41.879
<v Speaker 1>I love that. No, no, no no. When I came

88
00:04:41.959 --> 00:04:43.439
<v Speaker 1>out with it, you actually made a CD.

89
00:04:44.120 --> 00:04:44.319
<v Speaker 3>Yeah.

90
00:04:44.680 --> 00:04:48.079
<v Speaker 1>Yeah, so you have production CDs I have. I did.

91
00:04:48.240 --> 00:04:51.920
<v Speaker 1>That was the whole uh kickstarter. That also speaks to

92
00:04:51.959 --> 00:04:55.199
<v Speaker 1>the idea that Chris has a working CD player, which

93
00:04:55.279 --> 00:04:57.879
<v Speaker 1>is shocking to me. It is shocking to me too.

94
00:04:58.040 --> 00:05:02.680
<v Speaker 3>I have a couple my kids have CD players because

95
00:05:02.839 --> 00:05:05.279
<v Speaker 3>they like to play my old CDs.

96
00:05:05.839 --> 00:05:08.120
<v Speaker 1>I just bought a new car at VW Atlas and

97
00:05:08.560 --> 00:05:10.560
<v Speaker 1>it does not have a CD player in it, but

98
00:05:10.680 --> 00:05:14.600
<v Speaker 1>it has everything else. Yeah, just to just be key

99
00:05:14.680 --> 00:05:21.439
<v Speaker 1>in somewhere, yeah, sort of. Before that was Chris Woody

100
00:05:21.439 --> 00:05:23.720
<v Speaker 1>woodrowf our guest. But before I introduce him, let's talk

101
00:05:23.720 --> 00:05:26.399
<v Speaker 1>about nineteen fifty one. All right, where do you want

102
00:05:26.399 --> 00:05:29.839
<v Speaker 1>to go? So nineteen fifty one is the show number,

103
00:05:30.040 --> 00:05:32.319
<v Speaker 1>and so what we've been doing is highlighting what happened

104
00:05:32.360 --> 00:05:36.720
<v Speaker 1>that year. Major events include the continuation of the Korean War,

105
00:05:36.800 --> 00:05:40.600
<v Speaker 1>which we talked about last week, the Treaty of San Francisco,

106
00:05:40.680 --> 00:05:44.279
<v Speaker 1>which formerly ended the Pacific War with Japan, and the

107
00:05:44.360 --> 00:05:48.199
<v Speaker 1>beginnings of the Cold War with the Rosenberg Trial, also

108
00:05:48.360 --> 00:05:52.600
<v Speaker 1>the Schumann Plan. Six nations agreed to pool European coal

109
00:05:52.759 --> 00:05:57.759
<v Speaker 1>and steel resources, which was a precursor to the European Union. Yeah,

110
00:05:57.839 --> 00:06:03.319
<v Speaker 1>and let's see, that's the easy Cupean Eecy economic cooperation

111
00:06:03.839 --> 00:06:07.439
<v Speaker 1>is the beginning of that. In Libya gained independence from Italy.

112
00:06:07.639 --> 00:06:10.079
<v Speaker 1>I don't know if people knew that that Libya was

113
00:06:10.160 --> 00:06:12.560
<v Speaker 1>once part of Italy. Right, and then you sort of

114
00:06:12.600 --> 00:06:16.199
<v Speaker 1>actually mentioned the Rosenberg Trials. That's when supposedly the Rosenbergs

115
00:06:16.319 --> 00:06:19.279
<v Speaker 1>leaked the plans for the atomic bomb to the Soviets. Yeah,

116
00:06:20.160 --> 00:06:20.560
<v Speaker 1>not good.

117
00:06:21.240 --> 00:06:21.279
<v Speaker 3>No.

118
00:06:22.000 --> 00:06:28.360
<v Speaker 1>Technological advancements included the first transcontinental television broadcast, the introduction

119
00:06:28.480 --> 00:06:32.399
<v Speaker 1>of the first commercial color TV broadcast, and the first

120
00:06:32.600 --> 00:06:35.839
<v Speaker 1>direct dial telephone service. So up until then you had

121
00:06:35.879 --> 00:06:37.920
<v Speaker 1>to call an operator, yeah, to get a call put

122
00:06:37.959 --> 00:06:40.879
<v Speaker 1>through it. And how could we forget that UNIVAC one

123
00:06:41.079 --> 00:06:42.759
<v Speaker 1>was delivered by Remington Rand.

124
00:06:43.079 --> 00:06:46.120
<v Speaker 2>It wasn't actually delivered. There's a great story here. Oh

125
00:06:46.319 --> 00:06:49.680
<v Speaker 2>it's cool. So UNIVAC one the very first one he

126
00:06:49.720 --> 00:06:51.639
<v Speaker 2>gets sold to the Census Bureau, right, and that's the

127
00:06:51.680 --> 00:06:54.720
<v Speaker 2>one that comes that's available in nineteen fifty one, and

128
00:06:55.000 --> 00:06:57.800
<v Speaker 2>so the sense they do this big thing in March

129
00:06:57.879 --> 00:06:59.680
<v Speaker 2>of fifty one about hey, so the first computer is

130
00:06:59.680 --> 00:07:01.720
<v Speaker 2>going to say sypua da da da da da. The

131
00:07:01.839 --> 00:07:04.160
<v Speaker 2>party's over now, It's like, okay, it's time to deliver this.

132
00:07:04.160 --> 00:07:06.360
<v Speaker 2>And I'm like, listen, it's the only one we got.

133
00:07:06.959 --> 00:07:08.759
<v Speaker 2>We kind of wanted to use it as a demo unit,

134
00:07:09.199 --> 00:07:11.199
<v Speaker 2>and we're afraid to take it apart in case it

135
00:07:11.240 --> 00:07:12.560
<v Speaker 2>doesn't go back together again.

136
00:07:12.800 --> 00:07:13.199
<v Speaker 3>Oh man.

137
00:07:13.759 --> 00:07:17.759
<v Speaker 1>So the second one was actually for the Pentagon, and

138
00:07:17.879 --> 00:07:21.920
<v Speaker 1>that one they install at the Pentagon the same year.

139
00:07:22.360 --> 00:07:24.240
<v Speaker 1>They don't actually get up the nerve until they build

140
00:07:24.240 --> 00:07:25.600
<v Speaker 1>a couple more. They don't get up a nerve to

141
00:07:25.639 --> 00:07:27.439
<v Speaker 1>take apart the demo model and move it to the

142
00:07:27.480 --> 00:07:28.879
<v Speaker 1>census Buro till the end of the year. And this

143
00:07:29.040 --> 00:07:31.759
<v Speaker 1>thing is this the one that took up the city block. Well,

144
00:07:31.839 --> 00:07:33.920
<v Speaker 1>it wasn't quite that big, but it is big. But

145
00:07:34.040 --> 00:07:36.160
<v Speaker 1>the UNIVAC console, if you ever go look at this,

146
00:07:36.360 --> 00:07:38.079
<v Speaker 1>it's what you think of when you think of old

147
00:07:38.120 --> 00:07:40.720
<v Speaker 1>school computer. It's the great, big black panel with all

148
00:07:40.759 --> 00:07:42.480
<v Speaker 1>the switches and the knobs and stuff on it. Like

149
00:07:43.079 --> 00:07:45.759
<v Speaker 1>there's no CRTs at this point, right, we're ahead of

150
00:07:45.800 --> 00:07:46.560
<v Speaker 1>all of that, right.

151
00:07:47.160 --> 00:07:49.319
<v Speaker 2>What more important invention from nineteen fifty one, which is

152
00:07:49.439 --> 00:07:52.040
<v Speaker 2>this is the year that Bell Labs announces what they

153
00:07:52.120 --> 00:07:56.160
<v Speaker 2>call the grown junction transistor. So this is shockly you know,

154
00:07:56.439 --> 00:07:59.720
<v Speaker 2>the Bell Labs they had the point contact transistor, is

155
00:08:00.399 --> 00:08:04.839
<v Speaker 2>trying to develop an easier to make transistor, although it's

156
00:08:04.879 --> 00:08:07.800
<v Speaker 2>still not real easy to make, right. And what he's

157
00:08:07.839 --> 00:08:12.639
<v Speaker 2>doing is that he's melting semiconductor germanium as making into

158
00:08:12.680 --> 00:08:15.959
<v Speaker 2>a liquid it's very fairly high temperature, and then pulling

159
00:08:16.079 --> 00:08:20.439
<v Speaker 2>that out as a single crystal. And that the geranium

160
00:08:20.600 --> 00:08:24.399
<v Speaker 2>is actually doped, so there's a little bit of antimony

161
00:08:24.439 --> 00:08:26.040
<v Speaker 2>in it as well. That makes it what they call

162
00:08:26.079 --> 00:08:31.759
<v Speaker 2>an N type semiconductor. Why antimony, Because geranium has if

163
00:08:31.759 --> 00:08:33.159
<v Speaker 2>you go look at your periodic table and I know

164
00:08:33.240 --> 00:08:36.919
<v Speaker 2>you have one, it's right over there, has four outer

165
00:08:37.159 --> 00:08:40.399
<v Speaker 2>electrons on its outer electron shell, which is what makes

166
00:08:40.440 --> 00:08:45.159
<v Speaker 2>it a semiconductor, and antimony has five. So in the

167
00:08:45.240 --> 00:08:48.480
<v Speaker 2>natural crystal forming process, when all those electrons will lock

168
00:08:48.559 --> 00:08:52.240
<v Speaker 2>in with other ones, the doping material ends up with

169
00:08:52.279 --> 00:08:55.879
<v Speaker 2>a free electron and that makes it and type stepping conductor. Wow,

170
00:08:56.080 --> 00:08:59.279
<v Speaker 2>So you're drawing out the single crystal germanium. And about

171
00:08:59.480 --> 00:09:02.000
<v Speaker 2>Chris and I, our mouths are just hanging open here.

172
00:09:02.120 --> 00:09:03.799
<v Speaker 1>We're just like, what the heck.

173
00:09:04.159 --> 00:09:06.399
<v Speaker 2>So now you're literally talking in thousands of an inch,

174
00:09:06.519 --> 00:09:09.440
<v Speaker 2>but you're pulling a single crystal of this N type

175
00:09:09.519 --> 00:09:13.360
<v Speaker 2>geranium out of the liquid and as it's forming, it's

176
00:09:13.399 --> 00:09:15.200
<v Speaker 2>only going to be you know, maybe a quarter inch

177
00:09:15.279 --> 00:09:17.559
<v Speaker 2>long the whole thing. But as it's forming, you put

178
00:09:17.600 --> 00:09:22.720
<v Speaker 2>a droplet of P type on it, which is geranium

179
00:09:22.960 --> 00:09:27.879
<v Speaker 2>doped with gallium. And then you've cut off the crystal

180
00:09:28.440 --> 00:09:30.720
<v Speaker 2>and now you have to weld gold wires to it.

181
00:09:31.679 --> 00:09:33.799
<v Speaker 2>But you now have an N type rob with a

182
00:09:33.840 --> 00:09:36.360
<v Speaker 2>P type mount in the center of it. So you're

183
00:09:36.399 --> 00:09:38.639
<v Speaker 2>making an NP N transistor.

184
00:09:38.759 --> 00:09:41.360
<v Speaker 1>Somebody had to have a wild imagination to be able

185
00:09:41.440 --> 00:09:44.720
<v Speaker 1>to say, hey, if we did this, what would happen?

186
00:09:44.879 --> 00:09:47.519
<v Speaker 2>But this is how semiconductors. And again now now that

187
00:09:47.559 --> 00:09:50.320
<v Speaker 2>they've described a process to get idea of how expensive

188
00:09:50.360 --> 00:09:54.360
<v Speaker 2>these transistors were, like they were basically not commercially viable, right,

189
00:09:54.559 --> 00:09:57.919
<v Speaker 2>but that they worked and they were stabler even though

190
00:09:58.039 --> 00:10:01.200
<v Speaker 2>they were essentially handmade. Then the other types, although interestingly

191
00:10:01.360 --> 00:10:05.919
<v Speaker 2>in nineteen fifty one as well, ge and RCA because

192
00:10:05.919 --> 00:10:08.679
<v Speaker 2>that was Bell lads who were just talking about announced

193
00:10:08.759 --> 00:10:12.320
<v Speaker 2>a different kind of transistor called an alloyjunction transistor. So

194
00:10:12.440 --> 00:10:15.000
<v Speaker 2>here what they did was they made a geranium crystal

195
00:10:15.039 --> 00:10:17.000
<v Speaker 2>which was also dope with n antimony, so it was

196
00:10:17.159 --> 00:10:21.279
<v Speaker 2>ND type, and then they fused droplets of indium doped

197
00:10:22.000 --> 00:10:25.120
<v Speaker 2>gallium on each side of it to make what is

198
00:10:25.159 --> 00:10:28.399
<v Speaker 2>now known as a p NP transistor instead of an

199
00:10:28.559 --> 00:10:31.960
<v Speaker 2>NPN transistor. Was it cheaper, It was a little easier

200
00:10:32.000 --> 00:10:34.200
<v Speaker 2>to make, but not a lot easier to make, but

201
00:10:35.120 --> 00:10:37.720
<v Speaker 2>it also worked. It was faster to form because he

202
00:10:37.720 --> 00:10:39.480
<v Speaker 2>didn't have to actually draw a single crystal. At the

203
00:10:39.480 --> 00:10:44.159
<v Speaker 2>same time, all of these things become obsolete by nineteen sixty, right,

204
00:10:44.240 --> 00:10:47.360
<v Speaker 2>But there were stepping stones when the Planner. Yeah, when

205
00:10:47.399 --> 00:10:50.799
<v Speaker 2>the Planner transistor comes along because the planet, which is

206
00:10:50.840 --> 00:10:53.399
<v Speaker 2>actually a way to mass manufacturer transistors. Although there were

207
00:10:53.679 --> 00:10:56.440
<v Speaker 2>lower quality, they were cheap. And that was made by

208
00:10:56.600 --> 00:11:00.440
<v Speaker 2>fair Child Semiconductor, which was the company formed out of

209
00:11:00.799 --> 00:11:04.320
<v Speaker 2>Shockley's company that was formed to create these things. And

210
00:11:04.399 --> 00:11:06.240
<v Speaker 2>Shockley was a bit of a character, not a nice

211
00:11:06.240 --> 00:11:08.679
<v Speaker 2>man at all, and he called those eight that laughed

212
00:11:08.799 --> 00:11:12.519
<v Speaker 2>to form share Child the traitorous eight, though most of

213
00:11:12.639 --> 00:11:15.240
<v Speaker 2>those guys would go on to form a third company,

214
00:11:15.519 --> 00:11:15.840
<v Speaker 2>you know.

215
00:11:16.120 --> 00:11:18.360
<v Speaker 1>As Intel Intel. That's it. Yeah.

216
00:11:19.039 --> 00:11:19.200
<v Speaker 3>You know.

217
00:11:19.320 --> 00:11:22.399
<v Speaker 1>The thing that I know is that scientists, I think

218
00:11:22.480 --> 00:11:24.720
<v Speaker 1>it was in the fifties, found that if you group

219
00:11:24.879 --> 00:11:28.519
<v Speaker 1>two helium adams close enough together that they would actually laugh.

220
00:11:29.279 --> 00:11:36.320
<v Speaker 1>Yeah he he helium fusion. Is that what we're talking about? Okay, okay,

221
00:11:37.039 --> 00:11:39.679
<v Speaker 1>all right, all right, well that's all I got. All Right,

222
00:11:40.159 --> 00:11:42.039
<v Speaker 1>we're here to talk about dot net and I think

223
00:11:42.159 --> 00:11:45.080
<v Speaker 1>c sharp networking with Chris Woody Woodriff, So let me

224
00:11:45.159 --> 00:11:49.679
<v Speaker 1>introduce him. Chris Woodriff is a seasoned software developer with

225
00:11:49.759 --> 00:11:52.919
<v Speaker 1>a career that spans before the dot com boom, kind

226
00:11:52.960 --> 00:11:57.679
<v Speaker 1>of like us. He specializes in enterprise web development, cloud solutions,

227
00:11:57.759 --> 00:12:02.759
<v Speaker 1>and software analytics, is on API design and scalable architectures,

228
00:12:02.799 --> 00:12:06.080
<v Speaker 1>and is recognized as a Microsoft MVP and dot net

229
00:12:06.600 --> 00:12:11.840
<v Speaker 1>and web development. He's also a dedicated mentor, instructing courses

230
00:12:12.120 --> 00:12:16.240
<v Speaker 1>for aspiring tech professionals and speaking at international conferences on

231
00:12:16.399 --> 00:12:21.080
<v Speaker 1>database development, web APIs, and software architecture. Woody co hosts

232
00:12:21.159 --> 00:12:25.320
<v Speaker 1>the Breakpoint Show podcast and has previously led engineering teams

233
00:12:25.360 --> 00:12:29.919
<v Speaker 1>at Rocket Homes and Driven Developer relations at Rocket Mortgage.

234
00:12:30.600 --> 00:12:33.679
<v Speaker 1>His consulting work has benefited companies like Apartments dot Com

235
00:12:33.799 --> 00:12:36.960
<v Speaker 1>and Major League Baseball Advanced Media, right MLB.

236
00:12:37.240 --> 00:12:41.120
<v Speaker 3>MLB Advanced Media.

237
00:12:41.399 --> 00:12:45.000
<v Speaker 1>Yeah, they're a offshoot, all right, but it is Major Baseball,

238
00:12:45.279 --> 00:12:48.519
<v Speaker 1>not something else. Okay. Woody enjoys bourbon. And I know

239
00:12:48.639 --> 00:12:51.240
<v Speaker 1>this because he is the guy that introduced I think

240
00:12:51.440 --> 00:12:57.360
<v Speaker 1>Richard and myself to Blanton's maybe maybe definitely introduced me.

241
00:12:57.519 --> 00:12:58.399
<v Speaker 1>I don't know about Richard.

242
00:12:58.519 --> 00:13:02.039
<v Speaker 3>Yeah, I take bourbon everywhere with me when we go

243
00:13:02.159 --> 00:13:02.919
<v Speaker 3>to conferences.

244
00:13:03.279 --> 00:13:06.759
<v Speaker 1>Yeah, and he enjoys writing about his experience at Woodrift

245
00:13:06.799 --> 00:13:09.240
<v Speaker 1>dot dev outside of tech. You cannect with them on

246
00:13:09.279 --> 00:13:12.720
<v Speaker 1>Blue Sky at Woodrift dot dev in Macedon at Macedon

247
00:13:12.840 --> 00:13:18.279
<v Speaker 1>dot Social Slash at c Woodrift. I can't believe we've

248
00:13:18.360 --> 00:13:20.200
<v Speaker 1>never had you on the show before. We've talked to you.

249
00:13:20.559 --> 00:13:22.399
<v Speaker 1>Kind of embarrassing, isn't it talked to you so many

250
00:13:22.480 --> 00:13:24.639
<v Speaker 1>times at all these conferences going back years.

251
00:13:25.120 --> 00:13:28.120
<v Speaker 3>Yeah, it just it just never happened. It's okay. It

252
00:13:28.440 --> 00:13:31.799
<v Speaker 3>takes time, yeah, you know what. You know what, like bourbon,

253
00:13:32.399 --> 00:13:36.840
<v Speaker 3>it takes time to take time for for something a

254
00:13:36.960 --> 00:13:37.960
<v Speaker 3>good thing to come out.

255
00:13:38.279 --> 00:13:41.360
<v Speaker 1>So okay, I'll take that, but yep, we're sorry.

256
00:13:42.120 --> 00:13:43.039
<v Speaker 3>Yeah, no problem.

257
00:13:43.120 --> 00:13:44.679
<v Speaker 1>Well, like a Pappy twenty three.

258
00:13:45.039 --> 00:13:49.000
<v Speaker 3>Well, back in the day, we had a competing podcast,

259
00:13:50.039 --> 00:13:52.799
<v Speaker 3>you know we were doing. I was on deep Fried Bites.

260
00:13:53.120 --> 00:13:57.679
<v Speaker 1>Yeah yeah, I remember. So I never considered you guys competition.

261
00:13:57.799 --> 00:14:01.000
<v Speaker 3>I know. It was never all friendly. We're all friendly.

262
00:14:01.360 --> 00:14:04.039
<v Speaker 1>Yeah, so I do remember deep Fried Bites good stuff.

263
00:14:04.320 --> 00:14:07.840
<v Speaker 3>Yeah yeah so yeah.

264
00:14:08.000 --> 00:14:12.399
<v Speaker 1>Speaking of bourbon, I have a an unopened bottle of

265
00:14:12.600 --> 00:14:15.919
<v Speaker 1>Pappy van Winkle twenty three year old, still unopened. It's

266
00:14:16.000 --> 00:14:18.120
<v Speaker 1>still unopened. It's in a safe.

267
00:14:18.679 --> 00:14:20.519
<v Speaker 3>Richard hasn't seen it yet. Huh.

268
00:14:21.679 --> 00:14:24.639
<v Speaker 1>Well no, when I got this batch and then I

269
00:14:24.840 --> 00:14:27.919
<v Speaker 1>promise we'll talk about C sharp networking. When I got

270
00:14:27.960 --> 00:14:31.039
<v Speaker 1>this batch, it included a fifteen year old which I

271
00:14:31.120 --> 00:14:34.279
<v Speaker 1>gave Richard for his birthday, which has been drank and

272
00:14:34.399 --> 00:14:38.200
<v Speaker 1>it has it was drunk pretty quickly after I gave

273
00:14:38.240 --> 00:14:38.440
<v Speaker 1>it to you.

274
00:14:38.519 --> 00:14:42.759
<v Speaker 2>I think, listen, I do not collect whiskey. I drink whiskey.

275
00:14:43.039 --> 00:14:48.000
<v Speaker 3>Yeah yeah. So my brother's a doctor, so he buys

276
00:14:48.200 --> 00:14:51.559
<v Speaker 3>the uh Pappy in the family. But I do have

277
00:14:51.639 --> 00:14:57.000
<v Speaker 3>to say my first bottle of good bourbon was George T.

278
00:14:57.279 --> 00:15:02.799
<v Speaker 3>Stag Love It four two thousand and four and I

279
00:15:03.000 --> 00:15:07.240
<v Speaker 3>was living in Lexington at the time, and uh, one

280
00:15:07.279 --> 00:15:10.960
<v Speaker 3>of the guys in my church was a sales guy

281
00:15:11.159 --> 00:15:15.039
<v Speaker 3>for Buffalo Trace and said, hey, do you want a bottle?

282
00:15:15.840 --> 00:15:18.919
<v Speaker 3>And it was like forty five dollars or something, this

283
00:15:19.120 --> 00:15:25.799
<v Speaker 3>before Bourbon exploded. So yeah, And how that bottle got

284
00:15:25.960 --> 00:15:29.279
<v Speaker 3>killed was my brother in law. I saw him mixing

285
00:15:29.360 --> 00:15:35.399
<v Speaker 3>it with diet coke the last ounce or two. So yeah, yeah,

286
00:15:35.799 --> 00:15:37.080
<v Speaker 3>oh that broke my heart.

287
00:15:37.159 --> 00:15:39.200
<v Speaker 1>It's just it's shameful.

288
00:15:39.399 --> 00:15:41.240
<v Speaker 3>And I could feel everyone listening.

289
00:15:41.840 --> 00:15:43.840
<v Speaker 2>Just keep I keep a bottle of Maker's Marker. It's

290
00:15:43.919 --> 00:15:45.679
<v Speaker 2>like here, just go ahead, put your coke in this.

291
00:15:46.039 --> 00:15:50.759
<v Speaker 3>Yeah. Yeah, I always have a cheap bottle like Beam

292
00:15:50.960 --> 00:15:52.399
<v Speaker 3>or something around. Yeah.

293
00:15:52.720 --> 00:15:55.679
<v Speaker 1>So but yeah, nothing wrong with that. Well anyway, yeah,

294
00:15:55.720 --> 00:15:58.200
<v Speaker 1>you were the first one that introduced me to Blant

295
00:15:58.240 --> 00:16:00.360
<v Speaker 1>and said, have you ever had Blants? If you like

296
00:16:00.480 --> 00:16:04.559
<v Speaker 1>Makers mark you know, because it's weeded, it's weeded like Makers,

297
00:16:05.159 --> 00:16:09.600
<v Speaker 1>and I think it's better. And then it shortly thereafter

298
00:16:10.000 --> 00:16:14.600
<v Speaker 1>became very hard to find. And now that there was

299
00:16:14.639 --> 00:16:18.679
<v Speaker 1>a flood at Buffalo Trace, So do you know the

300
00:16:18.759 --> 00:16:21.039
<v Speaker 1>status of that? Are they are they back to production?

301
00:16:21.559 --> 00:16:24.080
<v Speaker 3>Yeah? It only took them a week to get back

302
00:16:24.679 --> 00:16:29.720
<v Speaker 3>to production. And all of the barrels that were submerged

303
00:16:30.159 --> 00:16:36.279
<v Speaker 3>or partially submerged in water, they actually sold because they

304
00:16:36.320 --> 00:16:40.720
<v Speaker 3>couldn't bottle them, so they actually sold them to collectors.

305
00:16:41.600 --> 00:16:46.320
<v Speaker 3>And I hear people are going to like bottle them

306
00:16:46.519 --> 00:16:50.480
<v Speaker 3>and sell them or you know, like orphan barrel. You know, sure,

307
00:16:51.000 --> 00:16:54.000
<v Speaker 3>orphan barrel came out. I think it's supposed to be

308
00:16:55.200 --> 00:16:57.399
<v Speaker 3>kind of like that. But no, they were back up

309
00:16:57.519 --> 00:16:58.320
<v Speaker 3>pretty quick.

310
00:16:59.159 --> 00:16:59.600
<v Speaker 1>That's good.

311
00:17:00.320 --> 00:17:04.400
<v Speaker 2>Yeah, yeah, so because the water directed quickly. But you

312
00:17:04.480 --> 00:17:09.960
<v Speaker 2>know that Pappy warehouse on the on the Buffalo Trace property,

313
00:17:10.039 --> 00:17:11.960
<v Speaker 2>it's on there. It's half underground, so I'm sure that

314
00:17:12.079 --> 00:17:14.119
<v Speaker 2>must have filled up with water. Yeah yeah, and then

315
00:17:14.160 --> 00:17:16.359
<v Speaker 2>they they did, you must have lost a lot.

316
00:17:16.440 --> 00:17:18.559
<v Speaker 3>You know. They had the story where they were digging

317
00:17:18.759 --> 00:17:20.960
<v Speaker 3>for a new a new rick house.

318
00:17:21.200 --> 00:17:23.759
<v Speaker 1>A rick house is where they store the barrel, right,

319
00:17:23.839 --> 00:17:26.160
<v Speaker 1>and and found the old old old distillery.

320
00:17:26.240 --> 00:17:30.119
<v Speaker 3>And they found the old old like before, like the original.

321
00:17:30.640 --> 00:17:34.680
<v Speaker 3>She's distilled, and I think that's still underwater. I think

322
00:17:34.680 --> 00:17:37.359
<v Speaker 3>they're trying to pump out water in that.

323
00:17:37.759 --> 00:17:41.880
<v Speaker 1>But such a shame, but yeah, yeah it is. Okay,

324
00:17:42.400 --> 00:17:45.200
<v Speaker 1>So we're here to talk about C sharp networking. And

325
00:17:45.599 --> 00:17:47.240
<v Speaker 1>this is a topic near and dear to my heart,

326
00:17:47.279 --> 00:17:50.599
<v Speaker 1>but only because many many, many, many many years ago

327
00:17:51.480 --> 00:17:54.599
<v Speaker 1>I wrote a book on socket's programming and visual Basic.

328
00:17:55.759 --> 00:17:59.920
<v Speaker 1>And it was even before visual Basic had a really

329
00:18:00.440 --> 00:18:04.400
<v Speaker 1>stable windsock control. I was actually using a third party

330
00:18:04.440 --> 00:18:07.160
<v Speaker 1>control because it was working better. I caught some flack

331
00:18:07.240 --> 00:18:13.920
<v Speaker 1>over that, but coming from serial communications programming before that,

332
00:18:14.720 --> 00:18:20.400
<v Speaker 1>which was a nightmare. The you know, the the TCP

333
00:18:20.519 --> 00:18:22.920
<v Speaker 1>IP stack and windsock on top of that was like

334
00:18:22.960 --> 00:18:25.599
<v Speaker 1>a dream come true. So I know, I know that

335
00:18:25.680 --> 00:18:28.599
<v Speaker 1>you do cover sockets in your your online book on

336
00:18:28.759 --> 00:18:32.200
<v Speaker 1>c sharp networking, but it's a vast topic and I

337
00:18:32.200 --> 00:18:33.240
<v Speaker 1>don't know where do you want to start.

338
00:18:33.400 --> 00:18:36.720
<v Speaker 3>I don't know we can start why, Like why did

339
00:18:36.759 --> 00:18:39.279
<v Speaker 3>I write? I mean, people ask like, why do you

340
00:18:39.359 --> 00:18:43.119
<v Speaker 3>write a book right these days when everything's online and.

341
00:18:43.200 --> 00:18:47.079
<v Speaker 1>Most people also don't care about the low level programming stuff.

342
00:18:47.359 --> 00:18:50.680
<v Speaker 1>Give me an HDP client, you know, give me some

343
00:18:50.880 --> 00:18:52.680
<v Speaker 1>poll exactly, and that's it.

344
00:18:53.119 --> 00:18:57.240
<v Speaker 3>Well, and in the second half of the book, so

345
00:18:57.680 --> 00:18:59.960
<v Speaker 3>the book is kind of broken up into two parts.

346
00:19:00.279 --> 00:19:04.359
<v Speaker 3>The first part is all the fundamental stuff that I

347
00:19:04.519 --> 00:19:08.759
<v Speaker 3>think people should know. Maybe they don't need to use

348
00:19:08.839 --> 00:19:13.480
<v Speaker 3>it every day, but you should understand like what the

349
00:19:14.200 --> 00:19:18.680
<v Speaker 3>dot net framework abstracts away. And then the second half

350
00:19:18.759 --> 00:19:23.559
<v Speaker 3>I go through all the different types of network communications.

351
00:19:23.599 --> 00:19:27.640
<v Speaker 3>So I talk about like rest APIs and web sockets

352
00:19:27.799 --> 00:19:36.160
<v Speaker 3>and MQTT and gr PC and message queueing and stuff.

353
00:19:36.640 --> 00:19:42.400
<v Speaker 3>But what the most the most fun I had in

354
00:19:42.559 --> 00:19:47.680
<v Speaker 3>writing the book was the fundamental stuff because I love HTTP,

355
00:19:48.519 --> 00:19:55.720
<v Speaker 3>Like I've actually read the full protocol and I don't

356
00:19:56.319 --> 00:19:59.359
<v Speaker 3>think anyone should. I just kind of did it to

357
00:20:00.480 --> 00:20:03.240
<v Speaker 3>to do it because I was so interested. I mean,

358
00:20:03.319 --> 00:20:07.119
<v Speaker 3>I've done conference talks where I just talk about HTTP,

359
00:20:08.240 --> 00:20:12.799
<v Speaker 3>and so that got me interested in this, and I

360
00:20:13.039 --> 00:20:17.079
<v Speaker 3>was like, man, I really want to dig down into

361
00:20:17.160 --> 00:20:21.319
<v Speaker 3>this and get something out so people can know a

362
00:20:21.359 --> 00:20:26.039
<v Speaker 3>little bit more about what it really takes to communicate

363
00:20:26.160 --> 00:20:27.559
<v Speaker 3>between two computers.

364
00:20:27.880 --> 00:20:31.200
<v Speaker 1>You wanted to inhabit the ghost of Tim berners Lee.

365
00:20:31.640 --> 00:20:33.359
<v Speaker 3>Sure, yes, Yeah.

366
00:20:33.680 --> 00:20:36.880
<v Speaker 2>It also occurs to me here that if you're trying

367
00:20:36.920 --> 00:20:39.599
<v Speaker 2>to to side on a particular connection process through any

368
00:20:39.640 --> 00:20:43.279
<v Speaker 2>one of these APIs, through MQTT ORGRPC and so forth,

369
00:20:43.319 --> 00:20:46.119
<v Speaker 2>at least knowing them all in context so that you

370
00:20:46.160 --> 00:20:49.079
<v Speaker 2>can make a more informed decision. Yeah, yeah, I mean

371
00:20:49.559 --> 00:20:51.559
<v Speaker 2>most of the time we don't care much about networking

372
00:20:51.559 --> 00:20:54.559
<v Speaker 2>because the defaults are good enough, but sometimes they're not.

373
00:20:55.400 --> 00:20:59.599
<v Speaker 3>Well, here's the thing. I mean. You have to know

374
00:20:59.680 --> 00:21:04.599
<v Speaker 3>about about asickerness, so I have a chapter on async.

375
00:21:05.599 --> 00:21:10.880
<v Speaker 3>When it's related to networking. You have to know about

376
00:21:11.440 --> 00:21:15.920
<v Speaker 3>multi threading, so I have a chapter on multi threading

377
00:21:16.240 --> 00:21:21.519
<v Speaker 3>in relations to networking. And down the line error handling,

378
00:21:22.559 --> 00:21:27.880
<v Speaker 3>data serialization, error handling, and fault tolerance. So you were

379
00:21:27.920 --> 00:21:31.759
<v Speaker 3>talking about Polly, I have a chapter on Polly that.

380
00:21:33.559 --> 00:21:37.400
<v Speaker 3>You know what, most people when they write their servers

381
00:21:37.480 --> 00:21:43.079
<v Speaker 3>and their clients never think about fault tolerances, never think

382
00:21:43.119 --> 00:21:46.599
<v Speaker 3>about what happens if I don't get anything back from

383
00:21:46.880 --> 00:21:49.119
<v Speaker 3>the other side. And you should.

384
00:21:49.000 --> 00:21:51.880
<v Speaker 1>Absolutely, yeah, and just lifting a error is not enough.

385
00:21:51.960 --> 00:21:54.359
<v Speaker 2>I mean the whole thing with Polly, and not to

386
00:21:54.400 --> 00:21:56.359
<v Speaker 2>plug your thing more, Carl, But I'm pluging your thing more.

387
00:21:56.400 --> 00:21:58.680
<v Speaker 2>But it's like, listen, there's a bunch of things you

388
00:21:58.759 --> 00:22:01.119
<v Speaker 2>could do, but you shouldn't write any of that because

389
00:22:01.119 --> 00:22:04.519
<v Speaker 2>it's written for you. Just go get the poly library

390
00:22:04.559 --> 00:22:05.279
<v Speaker 2>and you'll be fine.

391
00:22:05.559 --> 00:22:05.720
<v Speaker 1>Yeah.

392
00:22:05.839 --> 00:22:08.960
<v Speaker 3>Yeah, there's there's lots of patterns to Polly that that

393
00:22:09.240 --> 00:22:11.400
<v Speaker 3>will solve a lot of your problems.

394
00:22:12.480 --> 00:22:15.200
<v Speaker 1>Or just use the HDP Client Factory, which is sort

395
00:22:15.240 --> 00:22:16.839
<v Speaker 1>of Polly under it, but it's easier.

396
00:22:16.960 --> 00:22:21.720
<v Speaker 3>Yeah, yeah, yeah, And and Microsoft has come out with

397
00:22:22.160 --> 00:22:25.920
<v Speaker 3>their own Polly like like you said, so you don't

398
00:22:26.119 --> 00:22:30.400
<v Speaker 3>have to use Polly. I still think Polly is has

399
00:22:30.880 --> 00:22:34.000
<v Speaker 3>lots of edge cases that it covers. So it's it's

400
00:22:35.279 --> 00:22:37.680
<v Speaker 3>I think a little more breadth.

401
00:22:38.160 --> 00:22:41.960
<v Speaker 1>Yeah. So and also you know, it's it's good to understand.

402
00:22:42.799 --> 00:22:45.160
<v Speaker 1>For me, it was really good to understand just pure

403
00:22:45.200 --> 00:22:48.799
<v Speaker 1>windsock programming, pure sockets. Right, I have a client, I

404
00:22:48.880 --> 00:22:52.039
<v Speaker 1>have a server. Client connects to the server. That connection

405
00:22:52.240 --> 00:22:56.480
<v Speaker 1>stays open until one of them closes it, and so

406
00:22:57.240 --> 00:23:01.079
<v Speaker 1>during that time you can send and receive at the

407
00:23:01.160 --> 00:23:07.160
<v Speaker 1>same time asynchronously over that socket. And uh, but then

408
00:23:07.200 --> 00:23:09.759
<v Speaker 1>you quickly realize when you want to go to use this,

409
00:23:10.799 --> 00:23:14.200
<v Speaker 1>Oh I what if I, you know, want to define

410
00:23:14.720 --> 00:23:16.759
<v Speaker 1>some message that I want to send and have the

411
00:23:16.839 --> 00:23:18.799
<v Speaker 1>server understand it. Well, now how do I do that?

412
00:23:19.559 --> 00:23:22.720
<v Speaker 1>So now you've got to think about protocols and if

413
00:23:23.000 --> 00:23:26.400
<v Speaker 1>you're both not if both sides aren't using the same protocol,

414
00:23:26.519 --> 00:23:29.920
<v Speaker 1>hilarity ensues. You know, it's like pulling up to the

415
00:23:30.000 --> 00:23:34.400
<v Speaker 1>drive through and uh, you know Wendy's and can I

416
00:23:34.480 --> 00:23:35.720
<v Speaker 1>help you? And you say, yeah, I want to make

417
00:23:35.720 --> 00:23:39.000
<v Speaker 1>a deposit. Yeah right, what what are you talking about?

418
00:23:39.480 --> 00:23:43.000
<v Speaker 3>Yeah? Yeah, And that comes down to when you open

419
00:23:43.119 --> 00:23:48.680
<v Speaker 3>up a socket. There's really there's three types of protocols

420
00:23:48.799 --> 00:23:53.839
<v Speaker 3>that that you get. You get uh TCP, you get UDP,

421
00:23:54.559 --> 00:23:57.160
<v Speaker 3>and you can do your own you can have your

422
00:23:57.200 --> 00:24:01.680
<v Speaker 3>own custom protocol like do whatever wild things that you want.

423
00:24:02.039 --> 00:24:04.720
<v Speaker 3>Right and for a long time, I mean, most people

424
00:24:04.920 --> 00:24:09.759
<v Speaker 3>use TCP, but if you're streaming video or streaming audio,

425
00:24:10.759 --> 00:24:13.319
<v Speaker 3>UDP is the way to go. It's a much better

426
00:24:13.480 --> 00:24:15.200
<v Speaker 3>protocols the last week and.

427
00:24:15.240 --> 00:24:18.519
<v Speaker 1>See, yes, because TCP has error checking built in and

428
00:24:18.799 --> 00:24:24.359
<v Speaker 1>delivery guaranteed delivery basically exactly exactly so. And the thing

429
00:24:24.400 --> 00:24:26.319
<v Speaker 1>that a lot of people don't understand is routers and

430
00:24:26.400 --> 00:24:30.400
<v Speaker 1>TCP IP routers, and the whole protocol was built to

431
00:24:30.519 --> 00:24:33.960
<v Speaker 1>a stand nuclear war yep, dark now. It was built

432
00:24:34.039 --> 00:24:37.680
<v Speaker 1>so that, hey, if one set of routers goes down

433
00:24:38.039 --> 00:24:40.680
<v Speaker 1>in the network, we'll just find our way around.

434
00:24:41.079 --> 00:24:43.480
<v Speaker 2>Yeah yeah, which it still does to this day. You

435
00:24:43.519 --> 00:24:46.000
<v Speaker 2>don't even think about the fact that, yeah still does.

436
00:24:46.519 --> 00:24:48.920
<v Speaker 2>Undersea cables go down on a routine basis and most

437
00:24:48.960 --> 00:24:50.200
<v Speaker 2>people can barely tell.

438
00:24:50.359 --> 00:24:53.079
<v Speaker 1>Yeah, exactly, and we just find another way around.

439
00:24:53.240 --> 00:24:57.119
<v Speaker 3>Richard, when you were talking about transistors, I was really

440
00:24:57.200 --> 00:25:00.480
<v Speaker 3>thinking when you said in the sixties, but really what

441
00:25:00.799 --> 00:25:06.680
<v Speaker 3>made transistors so cheap? And uh is really the space program,

442
00:25:07.119 --> 00:25:10.839
<v Speaker 3>which is another government I mean they had to mentorize

443
00:25:10.880 --> 00:25:11.400
<v Speaker 3>to be clear.

444
00:25:11.480 --> 00:25:15.799
<v Speaker 1>Fairchild Semiconductor's original business was building navigation systems for i CBMs.

445
00:25:15.960 --> 00:25:16.160
<v Speaker 3>Yeah.

446
00:25:16.279 --> 00:25:19.519
<v Speaker 2>Yeah, and they needed to make the integrated circuit to

447
00:25:19.599 --> 00:25:22.519
<v Speaker 2>get that system down to be small enough and robust

448
00:25:22.680 --> 00:25:25.319
<v Speaker 2>enough to survive a launch into space.

449
00:25:25.519 --> 00:25:25.839
<v Speaker 3>Exactly.

450
00:25:26.000 --> 00:25:28.119
<v Speaker 1>Yeah. When life and death are on the line, you know,

451
00:25:28.200 --> 00:25:29.000
<v Speaker 1>we get innovative.

452
00:25:29.440 --> 00:25:34.240
<v Speaker 3>Yep, yep. And you know what, we have the Internet too,

453
00:25:34.960 --> 00:25:40.519
<v Speaker 3>and it's it's cool. I really love. I mean I

454
00:25:40.759 --> 00:25:44.200
<v Speaker 3>was programming when I was a kid with nothing I had.

455
00:25:44.759 --> 00:25:48.000
<v Speaker 3>I couldn't afford a modem, I couldn't afford the long

456
00:25:48.079 --> 00:25:53.240
<v Speaker 3>distance phone calls. So when I got to university, man,

457
00:25:53.400 --> 00:25:57.559
<v Speaker 3>I had so much fun, right because this weird thing

458
00:25:57.759 --> 00:26:02.119
<v Speaker 3>called Mosaic showed up on the on the Unix on

459
00:26:02.279 --> 00:26:03.640
<v Speaker 3>our solarist machines.

460
00:26:03.799 --> 00:26:05.680
<v Speaker 1>That's one of the first web browsers.

461
00:26:05.839 --> 00:26:08.880
<v Speaker 3>Yeah, it was. It was the first web browser mosaic.

462
00:26:09.039 --> 00:26:11.160
<v Speaker 1>I also remember Cello. You remember Cello?

463
00:26:11.400 --> 00:26:12.119
<v Speaker 3>Remember Cello?

464
00:26:12.319 --> 00:26:13.759
<v Speaker 1>It was ninety three something like that.

465
00:26:14.519 --> 00:26:20.200
<v Speaker 3>Yep. And I remember Gopher before yes, before uh, the Internet,

466
00:26:20.279 --> 00:26:24.359
<v Speaker 3>we were using Gopher for lots of research and stuff.

467
00:26:24.599 --> 00:26:28.440
<v Speaker 1>So Gopher is a very simple folder based protocol that

468
00:26:28.640 --> 00:26:31.880
<v Speaker 1>instead of having websites, you have Gopher sites and you'd

469
00:26:31.920 --> 00:26:36.240
<v Speaker 1>get a basically a menu of folders and you could,

470
00:26:36.559 --> 00:26:38.920
<v Speaker 1>you know, trans you know, navigate down. There was no

471
00:26:39.039 --> 00:26:41.519
<v Speaker 1>search or anything. You have to know where it was.

472
00:26:41.720 --> 00:26:46.440
<v Speaker 1>But if somebody published a paper in a published papers folder,

473
00:26:47.400 --> 00:26:50.319
<v Speaker 1>you know, and you you basically had a URL to

474
00:26:50.440 --> 00:26:53.480
<v Speaker 1>it and you can download it anywhere. And I used

475
00:26:53.480 --> 00:26:57.279
<v Speaker 1>to use Gopher for boy, this is going back, but

476
00:26:57.680 --> 00:26:59.400
<v Speaker 1>one of the first talks I did on the Internet

477
00:26:59.720 --> 00:27:06.839
<v Speaker 1>was ges satellite imaging Gopher server. And I can't remember

478
00:27:06.880 --> 00:27:09.519
<v Speaker 1>where it was. It was in California somewhere, but it

479
00:27:09.559 --> 00:27:14.240
<v Speaker 1>would their computers would download satellite images every five minutes

480
00:27:14.920 --> 00:27:18.400
<v Speaker 1>and populate these Gopher servers. And so here I am

481
00:27:18.559 --> 00:27:21.440
<v Speaker 1>doing a talk at vibits on the Live Internet and

482
00:27:21.599 --> 00:27:26.039
<v Speaker 1>I show this you know Pacific, because I was in

483
00:27:26.160 --> 00:27:28.759
<v Speaker 1>California and San Francisco. I showed a picture over the

484
00:27:28.839 --> 00:27:33.599
<v Speaker 1>Pacific and there was like this huge, huge storm cloud

485
00:27:33.680 --> 00:27:36.039
<v Speaker 1>coming and it was only five minutes ago that this

486
00:27:36.119 --> 00:27:39.559
<v Speaker 1>thing was posted, and people like ran out of the room. Yeah,

487
00:27:39.599 --> 00:27:43.240
<v Speaker 1>suddenly nobody cares about your talk anymore exactly. But the

488
00:27:43.400 --> 00:27:47.559
<v Speaker 1>power went out, like you know, and we were stranded

489
00:27:47.640 --> 00:27:49.680
<v Speaker 1>in the hotel for a while, like you know that,

490
00:27:49.920 --> 00:27:52.960
<v Speaker 1>and all people didn't know until they were unless they

491
00:27:53.000 --> 00:27:55.279
<v Speaker 1>were at my talk. Yeah that it was going to happen.

492
00:27:55.559 --> 00:28:01.319
<v Speaker 3>But that really shows that computers really didn't become a

493
00:28:01.480 --> 00:28:06.400
<v Speaker 3>thing until they were connected, right, I mean modems back

494
00:28:06.480 --> 00:28:10.279
<v Speaker 3>in the eighties where you would go to the well

495
00:28:10.880 --> 00:28:13.079
<v Speaker 3>or the well was kind of a.

496
00:28:14.680 --> 00:28:16.200
<v Speaker 1>Bb BBS site.

497
00:28:16.279 --> 00:28:21.079
<v Speaker 3>BBS in San Francisco that all and I would have

498
00:28:21.200 --> 00:28:25.720
<v Speaker 3>loved to have connected to that because it would have

499
00:28:25.799 --> 00:28:29.200
<v Speaker 3>been cool to meet to talk to people that were connected.

500
00:28:29.279 --> 00:28:34.640
<v Speaker 3>But like, yeah, it's back then. Long distance calls were expensive.

501
00:28:34.279 --> 00:28:36.519
<v Speaker 2>And it cost money and everything. And that's what's the

502
00:28:36.559 --> 00:28:39.119
<v Speaker 2>big deal for the Internet, right, was that, Yeah, suddenly

503
00:28:39.400 --> 00:28:41.920
<v Speaker 2>the distance didn't matter. Everything was already connected. But yeah,

504
00:28:42.079 --> 00:28:43.640
<v Speaker 2>we had our bbs is in Vancouver.

505
00:28:43.839 --> 00:28:47.279
<v Speaker 1>Yes, now we're all reminiscing and yeah, but welcome to

506
00:28:47.400 --> 00:28:50.759
<v Speaker 1>three guys Talk about technology and it doesn't exist anymore,

507
00:28:51.359 --> 00:28:54.480
<v Speaker 1>I know, but it's good for the young ins to

508
00:28:54.599 --> 00:28:57.200
<v Speaker 1>know that. You know, this is kind of your pedigree,

509
00:28:57.240 --> 00:28:59.039
<v Speaker 1>this is where all this stuff came from.

510
00:28:59.200 --> 00:29:01.680
<v Speaker 3>Yeah, and I'm just trying to share. I'm just trying

511
00:29:01.720 --> 00:29:04.759
<v Speaker 3>to pay it forward. I'm trying to give a little

512
00:29:04.759 --> 00:29:09.599
<v Speaker 3>bit back because I got a lot of help twenty

513
00:29:10.519 --> 00:29:15.039
<v Speaker 3>twenty five years ago. I mean, I'm all I think

514
00:29:16.079 --> 00:29:22.839
<v Speaker 3>this December. I know, I've been working professionally for thirty

515
00:29:22.920 --> 00:29:28.880
<v Speaker 3>years now. Yeah, time flies. I banged my head against

516
00:29:28.880 --> 00:29:31.119
<v Speaker 3>the wall so much that all my hair fell out.

517
00:29:32.279 --> 00:29:35.720
<v Speaker 3>That was back in the nineties when there wasn't really

518
00:29:35.839 --> 00:29:41.279
<v Speaker 3>any good internet connections and what like. You didn't you

519
00:29:41.400 --> 00:29:44.920
<v Speaker 3>couldn't ask chat, GPT, how like write some code to

520
00:29:45.000 --> 00:29:49.200
<v Speaker 3>do this, or even even go the stack overflow. But

521
00:29:50.640 --> 00:29:54.680
<v Speaker 3>I think we're going off, We're going off into everything.

522
00:29:55.119 --> 00:29:57.039
<v Speaker 1>Well, well, that's okay, We're going to take a quick

523
00:29:57.079 --> 00:29:58.920
<v Speaker 1>break when we come back. Here's a question you can

524
00:29:59.000 --> 00:30:00.680
<v Speaker 1>think about, what are some of the and gems and

525
00:30:00.759 --> 00:30:04.759
<v Speaker 1>networking that people may not know about? And you can

526
00:30:04.839 --> 00:30:08.000
<v Speaker 1>answer that question right after these very important messages. We'll

527
00:30:08.039 --> 00:30:11.559
<v Speaker 1>be right back. Did you know there's a dot net

528
00:30:11.680 --> 00:30:16.960
<v Speaker 1>on aws community, follow the social media blogs, YouTube influencers,

529
00:30:17.000 --> 00:30:20.720
<v Speaker 1>and open source projects, and add your own voice. Get

530
00:30:20.799 --> 00:30:24.480
<v Speaker 1>plugged into the dot net on aws community at aws

531
00:30:24.640 --> 00:30:31.759
<v Speaker 1>dot Amazon dot com, slash dot net. And we're back.

532
00:30:31.839 --> 00:30:35.279
<v Speaker 1>It's dot NetRocks. I'm Carl, that's Richard Hey, and Chris Woody.

533
00:30:35.319 --> 00:30:38.200
<v Speaker 1>Woodruff is here. And before the break I asked them

534
00:30:38.200 --> 00:30:40.160
<v Speaker 1>to think about this. What are some of the hidden

535
00:30:40.200 --> 00:30:44.279
<v Speaker 1>gems in networking that people may not know about and

536
00:30:44.440 --> 00:30:47.559
<v Speaker 1>then typically go unnoticed.

537
00:30:47.799 --> 00:30:52.400
<v Speaker 3>Yeah. I think one thing is we hit upon this

538
00:30:52.559 --> 00:30:55.319
<v Speaker 3>subject in the first half of the show, which is

539
00:30:55.920 --> 00:31:02.599
<v Speaker 3>fault tolerance and learning how to get your network back

540
00:31:02.960 --> 00:31:07.200
<v Speaker 3>communication back up and running so and that uses poly

541
00:31:07.599 --> 00:31:14.119
<v Speaker 3>and and some other different technologies and frameworks. And the

542
00:31:14.319 --> 00:31:22.319
<v Speaker 3>other one is you really have to For me, I

543
00:31:22.920 --> 00:31:30.559
<v Speaker 3>think it comes down to understanding what the best protocols

544
00:31:31.000 --> 00:31:37.519
<v Speaker 3>and frameworks to use. So so many people just go, oh,

545
00:31:37.640 --> 00:31:42.480
<v Speaker 3>we'll just do everything in rest APIs right, Well, that

546
00:31:42.759 --> 00:31:44.039
<v Speaker 3>might not be the best thing.

547
00:31:44.319 --> 00:31:46.599
<v Speaker 1>I don't even know if people know what rest is,

548
00:31:47.240 --> 00:31:50.240
<v Speaker 1>because first of all, it was a very hip term

549
00:31:50.359 --> 00:31:53.359
<v Speaker 1>to use. And then you know, when we first talked

550
00:31:53.400 --> 00:31:56.759
<v Speaker 1>to people, Richard, it was just like, well, it's just HDP.

551
00:31:56.960 --> 00:31:59.119
<v Speaker 1>You just get a request and it comes back. And

552
00:31:59.640 --> 00:32:02.359
<v Speaker 1>but there really talking about API endpoints and how to

553
00:32:02.400 --> 00:32:06.680
<v Speaker 1>handle them and how to structure the data that comes

554
00:32:06.720 --> 00:32:09.119
<v Speaker 1>back from an API endpoint and getting a little more

555
00:32:09.880 --> 00:32:11.839
<v Speaker 1>goo around that that's standardized.

556
00:32:11.960 --> 00:32:12.160
<v Speaker 3>Yep.

557
00:32:12.319 --> 00:32:16.400
<v Speaker 2>But it almost became that a buzzword thing. It's like, well, yeah,

558
00:32:16.519 --> 00:32:17.359
<v Speaker 2>that's not RESTful.

559
00:32:17.480 --> 00:32:21.920
<v Speaker 1>Yeah it's right. Well well I'm sorry, but yeah it works.

560
00:32:23.039 --> 00:32:28.400
<v Speaker 3>Finally, I finally have used the sixth law or sixth

561
00:32:28.599 --> 00:32:36.160
<v Speaker 3>rule of rest. So so there's six constraints that Roy

562
00:32:36.279 --> 00:32:41.839
<v Speaker 3>Felding when he wrote his PhD thesis, which rest was

563
00:32:41.960 --> 00:32:47.720
<v Speaker 3>part of, just a small part. He said six constraints

564
00:32:47.759 --> 00:32:51.880
<v Speaker 3>that you had to do like client server, and there's

565
00:32:51.960 --> 00:32:55.400
<v Speaker 3>a bunch of things, right, but the sixth one is

566
00:32:55.480 --> 00:33:01.279
<v Speaker 3>where no one really knew how to cross over that

567
00:33:01.559 --> 00:33:07.599
<v Speaker 3>and that is when giving code in your response. So

568
00:33:07.720 --> 00:33:13.440
<v Speaker 3>when you when you call a rest API endpoint to

569
00:33:13.559 --> 00:33:19.759
<v Speaker 3>be RESTful, it should return code or something that that

570
00:33:20.200 --> 00:33:25.880
<v Speaker 3>you use to uh change the state of your client.

571
00:33:26.599 --> 00:33:31.799
<v Speaker 3>And I finally learned I'm finally using and crossing that law,

572
00:33:32.160 --> 00:33:36.680
<v Speaker 3>and I'm doing it with HTMX, which I'm actually writing

573
00:33:36.759 --> 00:33:43.960
<v Speaker 3>another online book about HTMX is a very small Java

574
00:33:44.640 --> 00:33:47.680
<v Speaker 3>script framework. But I kind of digress.

575
00:33:48.160 --> 00:33:52.480
<v Speaker 1>But so the question is is is that smart is

576
00:33:53.079 --> 00:33:56.960
<v Speaker 1>is using code's earning code? Is a response? Is that

577
00:33:57.119 --> 00:34:00.079
<v Speaker 1>sneak it is? I'm also sure I want to be

578
00:34:00.160 --> 00:34:02.759
<v Speaker 1>in charge of every line of code that I execute.

579
00:34:03.200 --> 00:34:05.920
<v Speaker 3>Well, why not have the server tell you what?

580
00:34:06.640 --> 00:34:06.680
<v Speaker 1>What?

581
00:34:07.160 --> 00:34:12.840
<v Speaker 3>Uh? Based on a based on a HTTP request, you

582
00:34:12.960 --> 00:34:19.880
<v Speaker 3>get back some HTML that then you replace other HTML

583
00:34:20.000 --> 00:34:23.199
<v Speaker 3>in the dom and you have you have a new

584
00:34:23.920 --> 00:34:26.840
<v Speaker 3>UI without refreshing the whole page.

585
00:34:27.480 --> 00:34:30.280
<v Speaker 1>And that gives Well I use Blazer, so that's not

586
00:34:30.360 --> 00:34:32.559
<v Speaker 1>an issue for me. But anyway, I can't see what

587
00:34:32.639 --> 00:34:33.000
<v Speaker 1>I did there.

588
00:34:33.159 --> 00:34:36.239
<v Speaker 3>I know, I know, I know, I do server I'm

589
00:34:36.280 --> 00:34:39.280
<v Speaker 3>more old school. I like server side stuff.

590
00:34:39.360 --> 00:34:43.679
<v Speaker 1>But but but in general, though, I think that opens uh.

591
00:34:43.880 --> 00:34:48.760
<v Speaker 1>That increases my attack surface. If what you're bringing down

592
00:34:49.000 --> 00:34:52.119
<v Speaker 1>executes code, you can bring down some bad code.

593
00:34:53.360 --> 00:34:55.039
<v Speaker 3>Yeah you could. You could know.

594
00:34:55.199 --> 00:34:57.760
<v Speaker 1>So that's why I say I like, I know, I

595
00:34:57.920 --> 00:34:59.960
<v Speaker 1>like when when I do rest or when somebody says,

596
00:35:00.119 --> 00:35:02.239
<v Speaker 1>you know, make this RESTful. What I do is I

597
00:35:02.360 --> 00:35:06.599
<v Speaker 1>create a response class and that response has like a

598
00:35:06.679 --> 00:35:09.159
<v Speaker 1>list of errors, and it has a success and failure,

599
00:35:09.639 --> 00:35:13.840
<v Speaker 1>and then it has either an entity or a list

600
00:35:13.920 --> 00:35:18.119
<v Speaker 1>of entities, collection of entities, and that's it, you know,

601
00:35:18.760 --> 00:35:21.840
<v Speaker 1>just the response code and all of that stuff. So

602
00:35:21.960 --> 00:35:24.239
<v Speaker 1>then my code figures out what to do with that.

603
00:35:24.480 --> 00:35:24.679
<v Speaker 3>Yeah.

604
00:35:24.880 --> 00:35:29.519
<v Speaker 1>I like having the transport that the client, the API

605
00:35:29.679 --> 00:35:33.880
<v Speaker 1>client and the server just doing what they should be doing.

606
00:35:33.920 --> 00:35:34.840
<v Speaker 1>I don't want to mess in it.

607
00:35:34.960 --> 00:35:38.000
<v Speaker 3>My you, I know, and we're really geeking out.

608
00:35:38.880 --> 00:35:42.400
<v Speaker 1>I'll include a copy of Fielding's dissertation because you see

609
00:35:42.639 --> 00:35:43.639
<v Speaker 1>Irving published it.

610
00:35:44.679 --> 00:35:47.559
<v Speaker 2>Because one of the options in REST and it just

611
00:35:47.639 --> 00:35:52.039
<v Speaker 2>say it's optional is code on demand. Yep, that's the

612
00:35:52.239 --> 00:35:54.800
<v Speaker 2>sixth yep to I mean, to your point there, Chris

613
00:35:55.199 --> 00:35:57.239
<v Speaker 2>is like, you decided to do the weird one.

614
00:35:57.960 --> 00:36:00.960
<v Speaker 1>Yeah. I guess it's cool, but it's just not It

615
00:36:01.039 --> 00:36:02.360
<v Speaker 1>doesn't smell good to me.

616
00:36:03.079 --> 00:36:08.039
<v Speaker 3>I know, you do have to be careful and everything,

617
00:36:08.199 --> 00:36:12.000
<v Speaker 3>but when you were talking about response codes and stuff,

618
00:36:12.159 --> 00:36:14.920
<v Speaker 3>I was my mind was like, oh, the language of

619
00:36:15.320 --> 00:36:20.519
<v Speaker 3>httph and and that's another thing I kind of talk

620
00:36:20.599 --> 00:36:24.239
<v Speaker 3>a little bit about in the book. Is in the

621
00:36:25.800 --> 00:36:32.239
<v Speaker 3>the introduction to everything, I talk about HTTP is a language.

622
00:36:33.000 --> 00:36:35.960
<v Speaker 3>It's a protocol, but it's a language between the server

623
00:36:36.119 --> 00:36:38.039
<v Speaker 3>and the and the clients that calls it.

624
00:36:38.760 --> 00:36:41.639
<v Speaker 2>And as all protocols effectively are.

625
00:36:42.079 --> 00:36:46.840
<v Speaker 3>Yes, and it communicates devices. Yeah, it communicates through the

626
00:36:46.960 --> 00:36:51.000
<v Speaker 3>response codes. Because I mean, so many people go, I'll

627
00:36:51.199 --> 00:36:56.400
<v Speaker 3>just pass back a two hundred when when there's when

628
00:36:56.480 --> 00:37:01.679
<v Speaker 3>it's successful, Well, know what what happens in the when

629
00:37:01.760 --> 00:37:05.840
<v Speaker 3>you do a delete When you when you send over

630
00:37:05.960 --> 00:37:10.840
<v Speaker 3>a delete request and it deletes a resource on the

631
00:37:11.119 --> 00:37:15.559
<v Speaker 3>server side and it doesn't return anything back in the

632
00:37:16.079 --> 00:37:20.559
<v Speaker 3>in the HTTP response body, you should always send back

633
00:37:20.599 --> 00:37:24.360
<v Speaker 3>a two oh four because that tells the client that

634
00:37:24.480 --> 00:37:27.400
<v Speaker 3>there's nothing in the in the response body.

635
00:37:27.840 --> 00:37:29.800
<v Speaker 1>Right, if you think about it, the response code are

636
00:37:29.840 --> 00:37:34.199
<v Speaker 1>for HTTP, right, Like for example, if you get a

637
00:37:34.280 --> 00:37:38.480
<v Speaker 1>five hundred, that doesn't mean that your API end point

638
00:37:38.679 --> 00:37:41.800
<v Speaker 1>ran and there was an error. You shouldn't set the

639
00:37:41.880 --> 00:37:44.760
<v Speaker 1>code to five hundred. That's not for you. Yes, five

640
00:37:44.880 --> 00:37:47.800
<v Speaker 1>hundred is the I don't know where I can't even

641
00:37:47.840 --> 00:37:48.599
<v Speaker 1>reach the sendpoint.

642
00:37:48.719 --> 00:37:48.920
<v Speaker 3>Yep.

643
00:37:49.039 --> 00:37:52.639
<v Speaker 1>Yeah, only four hundreds for you, Yes, four hundreds the

644
00:37:52.719 --> 00:37:54.400
<v Speaker 1>last and the year can set.

645
00:37:55.920 --> 00:38:00.159
<v Speaker 3>So but there's there's a whole thing like in in

646
00:38:02.159 --> 00:38:05.920
<v Speaker 3>the first couple chapters of the book, I talk I

647
00:38:06.119 --> 00:38:11.840
<v Speaker 3>just geek out on HTTP and talk about that and stuff.

648
00:38:12.159 --> 00:38:16.960
<v Speaker 3>But the most interesting chapter I think is the last one,

649
00:38:17.599 --> 00:38:22.960
<v Speaker 3>and it's looking to the future with quick HDP three Yeah,

650
00:38:23.239 --> 00:38:28.159
<v Speaker 3>HTTP three q U I see, and that that is

651
00:38:28.360 --> 00:38:35.679
<v Speaker 3>the protocol that soon will replace TCP, and it will

652
00:38:35.800 --> 00:38:40.119
<v Speaker 3>because TCP is slow, because it does, like Carl said

653
00:38:40.159 --> 00:38:43.639
<v Speaker 3>in the beginning, it does have to do error checking

654
00:38:43.960 --> 00:38:51.119
<v Speaker 3>and everything. Quick is going to replace that and we're

655
00:38:51.159 --> 00:38:57.719
<v Speaker 3>going to have a much quicker Internet in the future soon.

656
00:38:58.039 --> 00:39:01.119
<v Speaker 2>Over on run as we because server twenty twenty five

657
00:39:01.199 --> 00:39:05.159
<v Speaker 2>now implements h TWB three. We've been talking about these ideas,

658
00:39:05.239 --> 00:39:08.760
<v Speaker 2>although you really upset administrators when you talk about this

659
00:39:08.800 --> 00:39:11.400
<v Speaker 2>stuff because it's integrated with TLS one point three and

660
00:39:11.400 --> 00:39:14.239
<v Speaker 2>so forth, Like it's inherently support secure approach. So it's

661
00:39:14.320 --> 00:39:17.320
<v Speaker 2>like quick end points should be exposed on the Internet.

662
00:39:17.440 --> 00:39:21.599
<v Speaker 2>It's designed to be. But you still have most administrators

663
00:39:21.679 --> 00:39:23.119
<v Speaker 2>everything's behind a firewall.

664
00:39:23.440 --> 00:39:26.280
<v Speaker 1>This is enough, you're moving. They're cheese man. Yeah, now

665
00:39:26.519 --> 00:39:28.599
<v Speaker 1>they're scared. But you know the other part Quick is

666
00:39:28.719 --> 00:39:34.960
<v Speaker 1>really about TEA about IBV six. Yeah, right, all addresses

667
00:39:35.000 --> 00:39:37.599
<v Speaker 1>being routable, Like we've just gotten to this weird place

668
00:39:37.679 --> 00:39:40.840
<v Speaker 1>because we didn't move to six and still largely haven't,

669
00:39:41.239 --> 00:39:43.559
<v Speaker 1>and so we've done all this network translation, all these

670
00:39:43.639 --> 00:39:46.239
<v Speaker 1>years trying to stretch all the IP four addresses out,

671
00:39:46.239 --> 00:39:48.880
<v Speaker 1>which we've done still. But so we just don't have

672
00:39:48.960 --> 00:39:53.000
<v Speaker 1>this mindset of stuff shraudible. But also just because you're

673
00:39:53.199 --> 00:39:56.440
<v Speaker 1>behind ant firewall doesn't mean you're safe. No, no, none

674
00:39:56.480 --> 00:39:58.360
<v Speaker 1>of this has anything to do with safe. Absolutely not.

675
00:39:58.800 --> 00:40:02.199
<v Speaker 1>Somebody gets into your net work, your toast.

676
00:40:03.119 --> 00:40:06.119
<v Speaker 3>But but like quick is going to going to go

677
00:40:06.360 --> 00:40:12.360
<v Speaker 3>from multi step handshakes, you know when when a website,

678
00:40:12.519 --> 00:40:15.760
<v Speaker 3>when you get to a website, there's multiple handshakes and stuff,

679
00:40:16.320 --> 00:40:18.599
<v Speaker 3>there's gonna be a single handshake, which is going to

680
00:40:18.639 --> 00:40:22.840
<v Speaker 3>be good. We're going to get rid of the headline

681
00:40:22.920 --> 00:40:27.679
<v Speaker 3>blocking with multiplexing. I mean, there's there's lots of different

682
00:40:27.719 --> 00:40:31.199
<v Speaker 3>stuff that I go through in the in that chapter

683
00:40:31.920 --> 00:40:35.400
<v Speaker 3>to set people up and uh I even have code,

684
00:40:35.679 --> 00:40:39.320
<v Speaker 3>so every chapter in the book also has code out

685
00:40:40.760 --> 00:40:45.039
<v Speaker 3>in the UH in the same GitHub repo that the

686
00:40:45.159 --> 00:40:47.360
<v Speaker 3>book is published from.

687
00:40:48.159 --> 00:40:53.199
<v Speaker 1>So there's multiplexing. If I remember correctly, that was basically

688
00:40:53.400 --> 00:40:56.000
<v Speaker 1>to send to one IP address and then it gets

689
00:40:56.199 --> 00:40:59.519
<v Speaker 1>multi cast multi casting, I guess is what it is, right,

690
00:41:00.079 --> 00:41:02.880
<v Speaker 1>And that's just to get around the limitations of the

691
00:41:03.039 --> 00:41:05.559
<v Speaker 1>hardware of the time and the network connection speeds and

692
00:41:05.599 --> 00:41:08.679
<v Speaker 1>all that stuff. Now everybody's got a gig or two

693
00:41:08.760 --> 00:41:14.480
<v Speaker 1>gigs in their house, right, And are those protocols still relevant?

694
00:41:15.480 --> 00:41:16.719
<v Speaker 1>Are they still being used?

695
00:41:17.360 --> 00:41:24.000
<v Speaker 3>Well? But like HTTP one and two still they have

696
00:41:24.599 --> 00:41:30.119
<v Speaker 3>pseudo multiplexing from what I've been able to determine, not

697
00:41:31.000 --> 00:41:39.440
<v Speaker 3>a real modern multiplexing like built into the protocol. I

698
00:41:39.480 --> 00:41:45.079
<v Speaker 3>don't think it was ever built into TCP or even UDP. Yeah,

699
00:41:45.559 --> 00:41:47.480
<v Speaker 3>Richard might know because he knows everything.

700
00:41:48.119 --> 00:41:51.840
<v Speaker 1>So I was confusing multicasting and multiplexing. I think multiplexing

701
00:41:51.920 --> 00:41:54.119
<v Speaker 1>is where you can just send a bunch of data

702
00:41:54.280 --> 00:41:56.920
<v Speaker 1>out the pipe and it goes to different people because

703
00:41:57.199 --> 00:42:00.960
<v Speaker 1>it's all combined in the same wire, right, Yeah, I

704
00:42:01.039 --> 00:42:04.960
<v Speaker 1>mean multicasting was part of specification for the longest time. Yeah.

705
00:42:05.320 --> 00:42:07.519
<v Speaker 2>The problem is that routers did didn't implement it, or

706
00:42:07.519 --> 00:42:10.480
<v Speaker 2>often it turned off, right, It had a bunch of limitations,

707
00:42:11.159 --> 00:42:13.599
<v Speaker 2>like it's never really gone where it's supposed to do.

708
00:42:13.679 --> 00:42:16.679
<v Speaker 2>There are these address blocks for both IVV FORORE and

709
00:42:16.880 --> 00:42:18.159
<v Speaker 2>V six for multicasting.

710
00:42:18.320 --> 00:42:19.679
<v Speaker 1>It's just rare.

711
00:42:19.840 --> 00:42:22.199
<v Speaker 2>The only place I ever saw of multicast being used

712
00:42:22.280 --> 00:42:26.480
<v Speaker 2>is internally internal networks with large volumes of video data.

713
00:42:26.760 --> 00:42:26.960
<v Speaker 1>Yeah.

714
00:42:27.079 --> 00:42:30.639
<v Speaker 3>Well, the other interesting thing with that we'll get with

715
00:42:33.199 --> 00:42:39.440
<v Speaker 3>with HTTP three and quick is it we won't have

716
00:42:40.719 --> 00:42:44.280
<v Speaker 3>drops because of connections. We'll be able to move those

717
00:42:44.360 --> 00:42:51.519
<v Speaker 3>connections very freely. Two different ideas, So hopefully that will

718
00:42:51.639 --> 00:42:57.199
<v Speaker 3>solve some of the like drop connections that we experience

719
00:42:58.000 --> 00:43:00.559
<v Speaker 3>and network programming all the time.

720
00:43:01.239 --> 00:43:04.519
<v Speaker 1>So do you see any security implications for this new

721
00:43:05.119 --> 00:43:06.000
<v Speaker 1>set of protocols?

722
00:43:06.599 --> 00:43:13.000
<v Speaker 3>Yep. Uh So instead of having a uh separate t

723
00:43:13.159 --> 00:43:19.320
<v Speaker 3>OS layer, this has uh, this has integrated t OS

724
00:43:19.480 --> 00:43:23.440
<v Speaker 3>one point three encryption into the protocol.

725
00:43:23.719 --> 00:43:25.559
<v Speaker 1>Do you see t L S or t O S,

726
00:43:26.199 --> 00:43:27.760
<v Speaker 1>t L S c L S.

727
00:43:28.199 --> 00:43:28.480
<v Speaker 3>Okay.

728
00:43:29.360 --> 00:43:32.800
<v Speaker 1>And because that way it's not optional, like you can't

729
00:43:33.159 --> 00:43:33.760
<v Speaker 1>use security.

730
00:43:34.440 --> 00:43:36.280
<v Speaker 3>Everything is is encrypted?

731
00:43:36.559 --> 00:43:40.159
<v Speaker 1>Good with quick? And what about crypto and not crypto?

732
00:43:40.239 --> 00:43:42.880
<v Speaker 1>What about quantum? Is quantum going to come along and

733
00:43:42.920 --> 00:43:45.159
<v Speaker 1>squash it? Is it quantum safe?

734
00:43:45.440 --> 00:43:49.000
<v Speaker 3>Quantum? And yeah, I don't know. We were talking to

735
00:43:49.719 --> 00:43:54.920
<v Speaker 3>uh one of the Europe's MVPs in.

736
00:43:55.000 --> 00:43:59.599
<v Speaker 1>Quantum, uh Cyprian Hannah, And.

737
00:44:02.000 --> 00:44:05.719
<v Speaker 3>I think quantum. I think quantum will be good for

738
00:44:06.079 --> 00:44:13.440
<v Speaker 3>certain certain needs, but not for like an application like

739
00:44:13.719 --> 00:44:18.639
<v Speaker 3>we built today. It's still we'll still be having what

740
00:44:18.840 --> 00:44:22.800
<v Speaker 3>we're doing. Now, we'll just have quantum kind of giving

741
00:44:22.920 --> 00:44:26.679
<v Speaker 3>information to the application, which then probably will pass it on.

742
00:44:27.079 --> 00:44:27.320
<v Speaker 1>Yeah.

743
00:44:27.480 --> 00:44:31.800
<v Speaker 2>But the concern here is someday the biggest quantum computers

744
00:44:31.840 --> 00:44:33.400
<v Speaker 2>not the ones that will actually be useful, because that

745
00:44:33.519 --> 00:44:36.599
<v Speaker 2>those are simpler, we'll be able to crack prime key

746
00:44:36.719 --> 00:44:43.239
<v Speaker 2>based in friptions. Yeah, but TLS has a cipher registry,

747
00:44:43.360 --> 00:44:46.320
<v Speaker 2>so you can switch protocol so you don't have to

748
00:44:46.440 --> 00:44:49.760
<v Speaker 2>use an RSA. You could be moving to a lattice

749
00:44:49.760 --> 00:44:53.079
<v Speaker 2>algorithm or any one of these non prime key algorithms,

750
00:44:53.079 --> 00:44:55.159
<v Speaker 2>so you don't have to change TLS, you just have

751
00:44:55.199 --> 00:44:55.960
<v Speaker 2>to switch the cipher.

752
00:44:56.320 --> 00:44:56.599
<v Speaker 1>Okay.

753
00:44:57.000 --> 00:45:00.639
<v Speaker 3>But so in the end, I I really did the

754
00:45:00.679 --> 00:45:03.920
<v Speaker 3>book for me so I could learn all this stuff. Nice,

755
00:45:04.800 --> 00:45:08.119
<v Speaker 3>and I think that's what most people write books about.

756
00:45:08.239 --> 00:45:11.360
<v Speaker 3>Because I learned more about this stuff than probably anyone

757
00:45:12.639 --> 00:45:16.760
<v Speaker 3>that reads it is going to learn. So it's awesome.

758
00:45:16.800 --> 00:45:17.719
<v Speaker 1>But it was.

759
00:45:18.159 --> 00:45:20.079
<v Speaker 2>Yeah, you get to drill into each of these things

760
00:45:20.159 --> 00:45:20.920
<v Speaker 2>in great detail.

761
00:45:21.079 --> 00:45:24.119
<v Speaker 3>Yeah, yeah, you do, and you get to uh and

762
00:45:24.199 --> 00:45:27.679
<v Speaker 3>then you get to release it and everyone tells you

763
00:45:27.920 --> 00:45:32.320
<v Speaker 3>you're wrong about certain things. Yeah, which is awesome because

764
00:45:32.360 --> 00:45:36.000
<v Speaker 3>then I can argue, and I love to argue. From

765
00:45:36.079 --> 00:45:40.599
<v Speaker 3>a family of lawyers, so I love the debate.

766
00:45:40.719 --> 00:45:43.039
<v Speaker 1>You always learn, I mean, whether you're right or wrong,

767
00:45:43.119 --> 00:45:46.880
<v Speaker 1>you always learn something. Yeah, well you get confirmation or

768
00:45:47.360 --> 00:45:48.800
<v Speaker 1>you learn something new. Yeah.

769
00:45:49.039 --> 00:45:53.800
<v Speaker 3>Yeah, and uh, there's even I even have a page

770
00:45:53.880 --> 00:45:58.840
<v Speaker 3>on this that if someone tells me a correction, I

771
00:45:59.039 --> 00:46:03.639
<v Speaker 3>actually will correct it and give them credit. So I

772
00:46:03.800 --> 00:46:07.039
<v Speaker 3>have a little updates and corrections where I give credit

773
00:46:07.159 --> 00:46:10.159
<v Speaker 3>to people that tell me I'm wrong and they and

774
00:46:10.239 --> 00:46:14.519
<v Speaker 3>they fix something in the book. So it's all yeah,

775
00:46:14.599 --> 00:46:17.559
<v Speaker 3>and it's all on GitHub, it's all on prs. So

776
00:46:18.119 --> 00:46:22.079
<v Speaker 3>you know what, I I am not a very smart person.

777
00:46:22.599 --> 00:46:26.039
<v Speaker 3>Come on, now, I've just been around. I've been around

778
00:46:26.280 --> 00:46:28.840
<v Speaker 3>long enough. Well, I had a I had a.

779
00:46:29.039 --> 00:46:33.119
<v Speaker 1>Professor, Brandon, you're gonna edit that out right, No, don't

780
00:46:33.239 --> 00:46:33.920
<v Speaker 1>edit that out.

781
00:46:34.480 --> 00:46:37.400
<v Speaker 3>I'm not. I mean, there are so many smart people,

782
00:46:37.920 --> 00:46:41.119
<v Speaker 3>and that that's why I love going to conferences and

783
00:46:41.239 --> 00:46:45.320
<v Speaker 3>I love being around because I get to learn so much.

784
00:46:46.360 --> 00:46:47.960
<v Speaker 1>Like it's just.

785
00:46:49.480 --> 00:46:55.800
<v Speaker 3>No, I'm smart, but in the crowds that we.

786
00:46:55.920 --> 00:46:59.679
<v Speaker 1>All, you're like, you're smart enough to know what you

787
00:46:59.760 --> 00:47:00.159
<v Speaker 1>don't know.

788
00:47:01.119 --> 00:47:03.599
<v Speaker 3>Well, and that's the thing I mean, I think that's

789
00:47:03.960 --> 00:47:07.440
<v Speaker 3>that is being smart. As what you said it's knowing

790
00:47:07.599 --> 00:47:12.280
<v Speaker 3>that you don't know everything, right, and I don't know everything.

791
00:47:12.000 --> 00:47:12.079
<v Speaker 1>So.

792
00:47:14.920 --> 00:47:17.639
<v Speaker 2>Nobody knows everything close.

793
00:47:18.119 --> 00:47:20.599
<v Speaker 3>I don't know. Richard's pretty close close.

794
00:47:21.480 --> 00:47:24.639
<v Speaker 2>I have a very good memory, as you both know. Yes, yeah,

795
00:47:25.000 --> 00:47:25.440
<v Speaker 2>I haven't.

796
00:47:25.639 --> 00:47:30.800
<v Speaker 3>I haven't stumped Richard too much about about anything.

797
00:47:31.079 --> 00:47:34.039
<v Speaker 1>So, but you know, we also run with a group

798
00:47:34.119 --> 00:47:36.000
<v Speaker 1>of people who are inventing the things that we all

799
00:47:36.119 --> 00:47:39.599
<v Speaker 1>count on, right, you know, the Mads, targets of the

800
00:47:39.719 --> 00:47:42.639
<v Speaker 1>world and the like. Who are I think a you know,

801
00:47:42.760 --> 00:47:45.880
<v Speaker 1>different kind of intelligence again that they to be able

802
00:47:45.960 --> 00:47:49.199
<v Speaker 1>to to take everything that's going on and envision the

803
00:47:49.320 --> 00:47:52.320
<v Speaker 1>next version, envision what's possible. It's extraordinary.

804
00:47:53.079 --> 00:47:57.639
<v Speaker 3>Yeah, yeah, exactly, and and it's it's amazing. That's why

805
00:47:57.679 --> 00:48:02.159
<v Speaker 3>I like computer science and this our industry is because

806
00:48:03.960 --> 00:48:12.559
<v Speaker 3>nothing ever is set in like stone. We're always moving.

807
00:48:14.639 --> 00:48:18.800
<v Speaker 3>And if you take a look at accounting or any

808
00:48:18.880 --> 00:48:23.239
<v Speaker 3>other kind of industry, they're pretty much all set I

809
00:48:23.400 --> 00:48:27.559
<v Speaker 3>will for the most part, but we have a we have.

810
00:48:28.119 --> 00:48:30.119
<v Speaker 2>That being said, I presume your book ends with in

811
00:48:30.159 --> 00:48:31.679
<v Speaker 2>The correct answer is gr PC.

812
00:48:32.960 --> 00:48:36.079
<v Speaker 3>Doesn't end in g r PC GRP.

813
00:48:36.440 --> 00:48:39.960
<v Speaker 1>It's pretty freakin' awesome though, it is because it is.

814
00:48:40.360 --> 00:48:43.320
<v Speaker 2>It is built on HDP two, right, Like most of

815
00:48:43.360 --> 00:48:47.280
<v Speaker 2>these protocols are are pretty much agnostic. They really we

816
00:48:47.360 --> 00:48:49.440
<v Speaker 2>want to just fine on one point one. But g

817
00:48:49.639 --> 00:48:50.679
<v Speaker 2>RPC needed to.

818
00:48:51.119 --> 00:48:52.239
<v Speaker 3>Well, yeah, it needed to.

819
00:48:52.679 --> 00:48:55.800
<v Speaker 1>James Newton King came around and made gRPC web which

820
00:48:55.920 --> 00:48:59.239
<v Speaker 1>runs on HDP one so you can use it in

821
00:48:59.360 --> 00:49:02.760
<v Speaker 1>dot net and it's still awesome. Yeah, yeah, I'm sure

822
00:49:02.760 --> 00:49:03.679
<v Speaker 1>it uses two if it can.

823
00:49:04.159 --> 00:49:09.239
<v Speaker 3>Yeah. My last chapter is is quick, Yeah, just to

824
00:49:09.519 --> 00:49:11.960
<v Speaker 3>look towards the future. But the one before that is

825
00:49:12.480 --> 00:49:17.000
<v Speaker 3>Someone asked me to do a signal R chapter and

826
00:49:17.159 --> 00:49:21.119
<v Speaker 3>I said okay, because they convinced me that it it

827
00:49:21.280 --> 00:49:28.880
<v Speaker 3>fell in line with all the other kind of networking technologies.

828
00:49:29.039 --> 00:49:31.760
<v Speaker 2>Because wasn't it just once just a wrapper over web socket.

829
00:49:31.840 --> 00:49:34.159
<v Speaker 2>I mean, I know it's involved into the yeah pretty

830
00:49:34.239 --> 00:49:37.039
<v Speaker 2>much things like that, but once for time socket.

831
00:49:37.039 --> 00:49:39.320
<v Speaker 1>But here's here's what I don't like about SIGNALARE. I

832
00:49:39.440 --> 00:49:41.719
<v Speaker 1>love signalare and I use it all the time, but

833
00:49:41.880 --> 00:49:45.840
<v Speaker 1>you can't use it in replacement for a robust messaging

834
00:49:45.960 --> 00:49:50.760
<v Speaker 1>system because there's no queue. Right. If you're not there

835
00:49:50.840 --> 00:49:55.360
<v Speaker 1>to receive a message, you missed it, it's lost. You

836
00:49:55.480 --> 00:49:57.480
<v Speaker 1>can't come back online and say, hey, what were the

837
00:49:57.599 --> 00:50:01.480
<v Speaker 1>messages that I missed, right, So you can't just use

838
00:50:01.519 --> 00:50:03.559
<v Speaker 1>it in place of a really robust queuing system.

839
00:50:04.159 --> 00:50:04.360
<v Speaker 3>Yeah.

840
00:50:04.440 --> 00:50:06.440
<v Speaker 2>No, that being said, you could use it to call

841
00:50:06.519 --> 00:50:08.239
<v Speaker 2>to a queue, absolutely, you could.

842
00:50:08.559 --> 00:50:10.320
<v Speaker 1>You could, but you can also.

843
00:50:11.840 --> 00:50:14.360
<v Speaker 3>Yeah, and that's a great thing about like something like

844
00:50:14.519 --> 00:50:20.159
<v Speaker 3>Kafta or Azure as your messaging queue.

845
00:50:20.599 --> 00:50:23.360
<v Speaker 1>There's a million of them. Yeah, see, I see our

846
00:50:23.400 --> 00:50:24.239
<v Speaker 1>talk with clements.

847
00:50:25.280 --> 00:50:26.760
<v Speaker 3>Yeah, yeah, I.

848
00:50:26.800 --> 00:50:30.039
<v Speaker 1>Think so he's stopped in nine not a million, but yeah,

849
00:50:30.760 --> 00:50:31.519
<v Speaker 1>that's a lot.

850
00:50:32.559 --> 00:50:35.119
<v Speaker 3>If you want, if you want to guarantee one hundred

851
00:50:35.159 --> 00:50:41.440
<v Speaker 3>percent or ninety nine point of your messages getting to

852
00:50:41.559 --> 00:50:44.679
<v Speaker 3>where they need to go, you need to do message

853
00:50:44.760 --> 00:50:47.239
<v Speaker 3>queueing and have that.

854
00:50:48.599 --> 00:50:52.159
<v Speaker 2>Just recognize that the internet's not five nine, so you

855
00:50:52.199 --> 00:50:54.719
<v Speaker 2>know you've got to have a mechanism for recovery.

856
00:50:55.159 --> 00:50:56.480
<v Speaker 3>Yep, yep, exactly.

857
00:50:56.880 --> 00:51:00.920
<v Speaker 1>Show enough. What's the next thing that you're going to

858
00:51:00.960 --> 00:51:03.000
<v Speaker 1>be working on? Are you done with networking and c

859
00:51:03.199 --> 00:51:04.440
<v Speaker 1>Sharp or is there always more?

860
00:51:05.840 --> 00:51:10.719
<v Speaker 3>I don't know. I'm done with that right now. I'm

861
00:51:11.559 --> 00:51:14.239
<v Speaker 3>I have two things I'm kind of doing. I'm in

862
00:51:14.360 --> 00:51:17.800
<v Speaker 3>the middle of a forty two day blog post series

863
00:51:18.920 --> 00:51:23.000
<v Speaker 3>explaining rust to c sharp developers.

864
00:51:23.199 --> 00:51:25.000
<v Speaker 1>Wow, I would love to read that.

865
00:51:25.320 --> 00:51:30.519
<v Speaker 3>Yeah, so I'm I'll send the link to you, but yeah,

866
00:51:30.559 --> 00:51:33.559
<v Speaker 3>it's out of my blog. Actually, this year I've got

867
00:51:33.760 --> 00:51:37.599
<v Speaker 3>a master plan to have a blog post every day

868
00:51:38.280 --> 00:51:42.880
<v Speaker 3>nice and it's a good idea. So for forty two days,

869
00:51:43.039 --> 00:51:47.920
<v Speaker 3>I think I'm up to day twenty nine. So today

870
00:51:48.199 --> 00:51:51.519
<v Speaker 3>was we were talking about traits in Rust.

871
00:51:52.320 --> 00:51:54.599
<v Speaker 1>So if you want to know more, you have to

872
00:51:54.880 --> 00:51:57.400
<v Speaker 1>go out, and I'm going to start with read chapter one.

873
00:51:57.519 --> 00:52:01.639
<v Speaker 3>But Rust is Rust is like my new kind of love.

874
00:52:01.760 --> 00:52:04.880
<v Speaker 3>So I've got two loves right now, Rust and HTMX,

875
00:52:05.480 --> 00:52:11.239
<v Speaker 3>and I'm writing the next quasi online book for HTMX

876
00:52:11.679 --> 00:52:15.719
<v Speaker 3>and then trying to learn Rust and share all this

877
00:52:15.760 --> 00:52:17.719
<v Speaker 3>stuff I'm learning about Rust.

878
00:52:17.840 --> 00:52:22.119
<v Speaker 1>All right, So real quick, what is your favorite thing

879
00:52:22.159 --> 00:52:24.199
<v Speaker 1>about Rust? What is so great about RUSS that we

880
00:52:24.239 --> 00:52:27.280
<v Speaker 1>should one sentence that you can convince the c sharp

881
00:52:27.320 --> 00:52:28.760
<v Speaker 1>developer to read your blog posts.

882
00:52:29.400 --> 00:52:33.920
<v Speaker 3>Yeah, so Rust will not let you compile.

883
00:52:35.320 --> 00:52:39.320
<v Speaker 1>Bad code, So stuff that c Sharp would would discover

884
00:52:39.440 --> 00:52:42.039
<v Speaker 1>at runtime, Rust will discover compile time.

885
00:52:42.440 --> 00:52:47.400
<v Speaker 3>Yeah, like if you if you write code to divide

886
00:52:48.000 --> 00:52:54.280
<v Speaker 3>one by zero rus, RUSS will not let you compile.

887
00:52:54.360 --> 00:52:56.840
<v Speaker 1>It will stop because you can do that in c Sharp.

888
00:52:56.920 --> 00:53:00.599
<v Speaker 1>You can make a variable zero zer with a value

889
00:53:00.599 --> 00:53:01.840
<v Speaker 1>of zero and then divide.

890
00:53:01.559 --> 00:53:03.360
<v Speaker 3>One by it, and that throws an exception.

891
00:53:03.519 --> 00:53:06.920
<v Speaker 1>Compiler says run time, but now compile time.

892
00:53:07.239 --> 00:53:13.280
<v Speaker 3>Yeah, yep. The other thing is everything is immutable, which

893
00:53:13.800 --> 00:53:19.199
<v Speaker 3>I think is really is really smart because it allows

894
00:53:19.280 --> 00:53:24.400
<v Speaker 3>you to do multi threading course much easier.

895
00:53:24.679 --> 00:53:27.119
<v Speaker 1>It's not functional, though, is it. It's not a functional language.

896
00:53:27.880 --> 00:53:35.199
<v Speaker 3>It can be functional. It's a very different object oriented language.

897
00:53:35.480 --> 00:53:37.639
<v Speaker 3>Like it doesn't have inheritance, so.

898
00:53:37.719 --> 00:53:41.079
<v Speaker 1>There's no ideas of nulls, right, which is the bugaboo

899
00:53:41.119 --> 00:53:41.639
<v Speaker 1>of C shark.

900
00:53:41.760 --> 00:53:45.679
<v Speaker 3>There is no nulls. You can't have a null because

901
00:53:46.199 --> 00:53:53.320
<v Speaker 3>whenever a variable is out of scope, it goes away.

902
00:53:54.559 --> 00:53:58.880
<v Speaker 3>And that's the other nice thing is like it doesn't

903
00:53:58.920 --> 00:54:04.960
<v Speaker 3>need a garbage collector because it just anything that's out

904
00:54:04.960 --> 00:54:06.239
<v Speaker 3>of scope goes away.

905
00:54:09.199 --> 00:54:09.519
<v Speaker 1>Hmm.

906
00:54:09.800 --> 00:54:15.039
<v Speaker 3>And there's It's just it makes you think differently. Sure,

907
00:54:16.280 --> 00:54:20.559
<v Speaker 3>it's kind of like when I learn React, like React

908
00:54:21.360 --> 00:54:27.519
<v Speaker 3>web development was for me very it was very different.

909
00:54:28.000 --> 00:54:32.440
<v Speaker 3>But but yeah, my thing is you have to keep

910
00:54:32.559 --> 00:54:35.719
<v Speaker 3>learning about new things. Even though I may not use

911
00:54:35.880 --> 00:54:38.320
<v Speaker 3>rust on anything, I want to learn it just to

912
00:54:39.239 --> 00:54:43.039
<v Speaker 3>just to see some different things that I can then

913
00:54:43.119 --> 00:54:49.599
<v Speaker 3>bring back potentially into c sharp and and and maybe

914
00:54:49.679 --> 00:54:55.280
<v Speaker 3>do smarter coding, have a smarter outlook on on my code.

915
00:54:55.360 --> 00:54:59.440
<v Speaker 3>But yeah, Rust is really cool. I'm building out some

916
00:55:00.440 --> 00:55:03.480
<v Speaker 3>some web APIs. I think I'm going to be pushing

917
00:55:03.599 --> 00:55:10.280
<v Speaker 3>some talks around around Rust and doing networking, like maybe

918
00:55:10.400 --> 00:55:15.679
<v Speaker 3>taking all of the chapters in the c Sharp networking

919
00:55:16.159 --> 00:55:19.199
<v Speaker 3>and doing Rust networking.

920
00:55:19.760 --> 00:55:24.000
<v Speaker 1>Yeah. Interesting. So these blog posts around woodruf dot dev.

921
00:55:24.320 --> 00:55:27.280
<v Speaker 3>Yeah, they are. And I'll send you guys the link

922
00:55:27.400 --> 00:55:30.360
<v Speaker 3>to I've got a one blog that links to all

923
00:55:30.840 --> 00:55:35.880
<v Speaker 3>forty two days as I am going through, So I'll

924
00:55:35.920 --> 00:55:38.440
<v Speaker 3>send you that page so people can kind of start

925
00:55:38.480 --> 00:55:40.920
<v Speaker 3>from the beginning and work their way down.

926
00:55:41.119 --> 00:55:44.480
<v Speaker 1>Awesome, I'm really looking forward to that. Cool Chris, what

927
00:55:44.719 --> 00:55:49.719
<v Speaker 1>is the what is what is the next bourbon that

928
00:55:49.840 --> 00:55:51.679
<v Speaker 1>you're going to pour yourself? Oh?

929
00:55:53.159 --> 00:55:57.360
<v Speaker 3>So, I love there's a there's a new two new

930
00:55:57.440 --> 00:56:04.320
<v Speaker 3>bourbons that I've discovered. RD one is a distillery close

931
00:56:04.480 --> 00:56:10.280
<v Speaker 3>to Lexington, Kentucky. They have a uh and I cannot

932
00:56:10.320 --> 00:56:12.880
<v Speaker 3>remember Richard will know the name of the wood. It's

933
00:56:12.960 --> 00:56:18.000
<v Speaker 3>this Brazilian wood that starts with A, the letter A

934
00:56:18.360 --> 00:56:23.320
<v Speaker 3>and I can't remember the name. But they finish their

935
00:56:23.960 --> 00:56:28.639
<v Speaker 3>their bourbon and barrels made of that wood and it.

936
00:56:28.880 --> 00:56:32.199
<v Speaker 2>Makes the not oh huh, that's pretty strange.

937
00:56:32.480 --> 00:56:35.280
<v Speaker 3>No, No, they start oak and then they finish the

938
00:56:35.440 --> 00:56:38.920
<v Speaker 3>last six months or a year in this in this

939
00:56:39.119 --> 00:56:45.360
<v Speaker 3>Brazilian wood, and it makes the bourbon tastes like cinnamon, toast, crunch, cereal.

940
00:56:46.320 --> 00:56:51.199
<v Speaker 3>It is amazing. So Richard, you're going to dev some.

941
00:56:52.320 --> 00:56:54.079
<v Speaker 2>I think you're talking about amberanna.

942
00:56:54.480 --> 00:56:56.480
<v Speaker 3>Yeah, Banna, Okay, that's it.

943
00:56:56.719 --> 00:56:58.599
<v Speaker 1>See you drink enough of it? Do you see the

944
00:56:58.719 --> 00:57:01.679
<v Speaker 1>three little sweetish chef dancing around with the hats on?

945
00:57:02.239 --> 00:57:04.280
<v Speaker 3>No? Maybe, no, you just pass out.

946
00:57:04.519 --> 00:57:05.960
<v Speaker 2>So well, it's the only one I can think of.

947
00:57:06.000 --> 00:57:10.199
<v Speaker 2>They usually make kosasha with it, which is their rub

948
00:57:10.280 --> 00:57:14.199
<v Speaker 2>and varry that it's a it's a sugarcane based alcohol. Yeah,

949
00:57:15.039 --> 00:57:17.239
<v Speaker 2>and I know that the high end versions were aged

950
00:57:17.960 --> 00:57:20.039
<v Speaker 2>in Mburanna. But that's the only thing I think of

951
00:57:20.119 --> 00:57:21.519
<v Speaker 2>that's a wood from Brazil.

952
00:57:22.079 --> 00:57:27.280
<v Speaker 3>Yeah, I think it is that. Okay, And so that bourbon.

953
00:57:27.480 --> 00:57:31.159
<v Speaker 3>And then the other one I've been drinking is one

954
00:57:31.280 --> 00:57:37.480
<v Speaker 3>from a Holiday distilleries and they make a sweet red

955
00:57:38.360 --> 00:57:44.960
<v Speaker 3>wheat using sweet red wheat to make le makers. And yeah,

956
00:57:45.599 --> 00:57:51.079
<v Speaker 3>but there's they have some America. They call it American

957
00:57:51.159 --> 00:57:56.599
<v Speaker 3>whiskies because they don't use fifty bourbon has to be

958
00:57:56.679 --> 00:58:00.559
<v Speaker 3>at least fifty one corn. Some of this is a

959
00:58:00.679 --> 00:58:06.440
<v Speaker 3>majority is wheat. So I'm really getting into They can't

960
00:58:06.480 --> 00:58:09.280
<v Speaker 3>call it bourbon, so they call it American whiskey. So

961
00:58:09.400 --> 00:58:14.239
<v Speaker 3>I'm really getting into the weeded American whiskeyes because they're

962
00:58:14.320 --> 00:58:18.760
<v Speaker 3>real sweet and uh, they're kind of the opposite of rise.

963
00:58:19.440 --> 00:58:23.519
<v Speaker 2>Yeah, and it's not like it's not like bourbons weren't sweet.

964
00:58:24.239 --> 00:58:26.320
<v Speaker 2>But yeah, I'm with you, so.

965
00:58:26.480 --> 00:58:31.519
<v Speaker 3>Yeah, yeah, So I'm I'm bringing two bottles over to Stockholm.

966
00:58:31.679 --> 00:58:32.920
<v Speaker 3>Def some you're gonna be there.

967
00:58:33.639 --> 00:58:34.119
<v Speaker 1>I'll be there.

968
00:58:34.719 --> 00:58:36.559
<v Speaker 3>Yeah, you'll be there, Richard, or you.

969
00:58:36.599 --> 00:58:37.199
<v Speaker 1>Can be I will.

970
00:58:37.199 --> 00:58:39.559
<v Speaker 2>I'll be coming straight up from South Africa, not going

971
00:58:39.599 --> 00:58:40.280
<v Speaker 2>to any os.

972
00:58:40.679 --> 00:58:43.440
<v Speaker 3>Okay, well, I've I've got two bottles. I've got a

973
00:58:43.519 --> 00:58:46.559
<v Speaker 3>bottle of this RD one that I want to share,

974
00:58:46.599 --> 00:58:49.440
<v Speaker 3>and then I need to figure out the other one

975
00:58:49.519 --> 00:58:51.199
<v Speaker 3>I'm going to share. I think I'm going to bring

976
00:58:52.039 --> 00:58:54.840
<v Speaker 3>one of these weeded whiskeys with me.

977
00:58:55.679 --> 00:58:58.199
<v Speaker 1>So we are going to see the three sweetish chefs

978
00:58:58.280 --> 00:58:59.760
<v Speaker 1>dancing around going see you know, I man?

979
00:59:01.840 --> 00:59:05.920
<v Speaker 3>Yeah, So but those are those are the new ones.

980
00:59:06.039 --> 00:59:10.400
<v Speaker 3>There's there's so many cool, new new bourbons and the

981
00:59:10.480 --> 00:59:13.760
<v Speaker 3>price is starting to come down to Because so.

982
00:59:13.840 --> 00:59:16.000
<v Speaker 1>You're in Lexington, did you say, supply.

983
00:59:16.639 --> 00:59:19.920
<v Speaker 3>I lived I lived in Lexington for three years. Now

984
00:59:20.000 --> 00:59:21.639
<v Speaker 3>I'm in Grand Rapids, Michigan.

985
00:59:21.960 --> 00:59:26.480
<v Speaker 1>Okay, so yeah, well, being in Kentucky, of course, we're

986
00:59:26.519 --> 00:59:28.960
<v Speaker 1>trying to educate people about bourbon a little bit, especially

987
00:59:29.119 --> 00:59:31.400
<v Speaker 1>those outside the United States, and we have a significant

988
00:59:32.199 --> 00:59:37.199
<v Speaker 1>number of European listeners. Bourbon doesn't have to be made

989
00:59:37.280 --> 00:59:40.079
<v Speaker 1>in Kentucky, as Chris was saying, it has to be

990
00:59:40.239 --> 00:59:42.480
<v Speaker 1>made in America. Has to be at least fifty one

991
00:59:42.519 --> 00:59:46.559
<v Speaker 1>percent corn, and it also has this weird rule that

992
00:59:46.719 --> 00:59:52.800
<v Speaker 1>it has to be aged in virgin white American oak

993
00:59:53.079 --> 00:59:56.840
<v Speaker 1>casks that have been charred for a certain amount of

994
00:59:56.920 --> 01:00:00.719
<v Speaker 1>time minimum three years, three years, and then after that

995
01:00:01.320 --> 01:00:06.440
<v Speaker 1>they can finish in anything like port wine barrels. It

996
01:00:06.599 --> 01:00:10.280
<v Speaker 1>used to be only but they yeah, Angels Envy started

997
01:00:10.320 --> 01:00:11.639
<v Speaker 1>doing the sherry finishes and.

998
01:00:11.840 --> 01:00:14.840
<v Speaker 3>Yeah and yep, yeah, yep.

999
01:00:15.400 --> 01:00:17.599
<v Speaker 1>So anyway, that is one of the one of the

1000
01:00:17.679 --> 01:00:20.079
<v Speaker 1>things that America has brought to the world is it's

1001
01:00:20.119 --> 01:00:23.360
<v Speaker 1>American whiskey. Right, You've got Scotch whiskey, got Irish Canadian.

1002
01:00:23.880 --> 01:00:27.679
<v Speaker 1>We have American whiskey. It's called Bourbon. There you go. Yeah,

1003
01:00:27.719 --> 01:00:29.760
<v Speaker 1>and if you go listen to the series I've done

1004
01:00:29.800 --> 01:00:32.400
<v Speaker 1>on Windows Weekly that they've clipped off his YouTube videos,

1005
01:00:32.440 --> 01:00:36.079
<v Speaker 1>I explain all of them. That's so cool. And we

1006
01:00:36.199 --> 01:00:39.599
<v Speaker 1>also did a show on Bourbon after we came back

1007
01:00:39.760 --> 01:00:43.039
<v Speaker 1>from the road trip or No Code Palooza. Yeah, we

1008
01:00:43.119 --> 01:00:44.199
<v Speaker 1>did a geek out on Bourbon.

1009
01:00:44.280 --> 01:00:46.599
<v Speaker 3>Oh I remember that. Yeah, that was a good episode.

1010
01:00:46.920 --> 01:00:49.880
<v Speaker 1>Yeah, good stuff. Chris Well, it's great to have you

1011
01:00:50.000 --> 01:00:51.760
<v Speaker 1>on the show finally after all these years.

1012
01:00:51.880 --> 01:00:52.719
<v Speaker 3>Finally, thank you.

1013
01:00:52.960 --> 01:00:54.239
<v Speaker 1>Yep, and we'll do it again.

1014
01:00:54.400 --> 01:00:57.320
<v Speaker 3>I feel I feel my life is complete now, so

1015
01:00:57.519 --> 01:01:03.000
<v Speaker 3>mine too. My career, my technical career is complete.

1016
01:01:02.719 --> 01:01:04.960
<v Speaker 1>So mine too. And I really mean that, like I

1017
01:01:05.159 --> 01:01:07.440
<v Speaker 1>really enjoyed sort of geeking out and going back in

1018
01:01:07.559 --> 01:01:10.360
<v Speaker 1>time with all of the stuff that I used to

1019
01:01:10.440 --> 01:01:13.599
<v Speaker 1>think about. And it's good to think about it again. Yeah,

1020
01:01:13.840 --> 01:01:15.119
<v Speaker 1>especially for the young kids.

1021
01:01:15.400 --> 01:01:19.039
<v Speaker 3>Everything comes around, everything comes around, that goes around.

1022
01:01:19.239 --> 01:01:22.400
<v Speaker 1>So good stuff. So yep, all right, thanks again, and

1023
01:01:22.880 --> 01:01:25.400
<v Speaker 1>we'll talk to you, dear listener next time on dot

1024
01:01:25.519 --> 01:01:48.039
<v Speaker 1>net rocks. Dot net Rocks is brought to you by

1025
01:01:48.159 --> 01:01:52.800
<v Speaker 1>Franklin's Net and produced by Pop Studios, a full service audio,

1026
01:01:52.960 --> 01:01:57.360
<v Speaker 1>video and post production facility located physically in New London, Connecticut,

1027
01:01:57.679 --> 01:02:01.840
<v Speaker 1>and of course in the cloud online at pwop dot com.

1028
01:02:02.679 --> 01:02:04.719
<v Speaker 1>Visit our website at d O T N E t

1029
01:02:05.039 --> 01:02:09.000
<v Speaker 1>R O c k S dot com for RSS feeds, downloads,

1030
01:02:09.199 --> 01:02:12.840
<v Speaker 1>mobile apps, comments, and access to the full archives going

1031
01:02:12.920 --> 01:02:16.320
<v Speaker 1>back to show number one, recorded in September two thousand

1032
01:02:16.320 --> 01:02:18.960
<v Speaker 1>and two. And make sure you check out our sponsors.

1033
01:02:19.159 --> 01:02:21.920
<v Speaker 1>They keep us in business. Now go write some code.

1034
01:02:22.519 --> 01:02:26.000
<v Speaker 1>See you next time you got Jamtlevans
