1
00:00:01,080 --> 00:00:03,000
Speaker 1: How'd you like to listen to dot net rocks with

2
00:00:03,040 --> 00:00:07,879
no ads? Easy? Become a patron for just five dollars

3
00:00:07,919 --> 00:00:10,800
a month. You get access to a private RSS feed

4
00:00:10,839 --> 00:00:14,279
where all the shows have no ads. Twenty dollars a month,

5
00:00:14,279 --> 00:00:16,879
we'll get you that and a special dot net Rocks

6
00:00:16,960 --> 00:00:21,000
patron mug. Sign up now at Patreon dot dot NetRocks

7
00:00:21,120 --> 00:00:35,600
dot com. We'll get down rock and roll. It's dot

8
00:00:35,759 --> 00:00:38,799
net Rocks. I'm Carl Franklin and I'm Richard Cavell, and

9
00:00:39,119 --> 00:00:41,280
it's gonna be a good show. Chris Woody Woodruff is

10
00:00:41,280 --> 00:00:44,880
here with us, but before we talk to him, I

11
00:00:44,960 --> 00:00:46,960
need to talk to you, Richard. What's up? You know,

12
00:00:47,399 --> 00:00:49,479
this is the show that comes out during build. So

13
00:00:49,600 --> 00:00:51,880
how is your build? Oh it's wonderful.

14
00:00:52,200 --> 00:00:53,640
Speaker 2: Yeah, you were having a great You've been having a

15
00:00:53,640 --> 00:00:56,200
great time. I think you're flying back on Thursday, too,

16
00:00:56,280 --> 00:00:58,439
so you should be in the air at this particular moment.

17
00:00:58,600 --> 00:01:00,600
Speaker 1: That's right. I need to fly back a little bit

18
00:01:00,600 --> 00:01:04,840
early because my daughter is having a graduation party for

19
00:01:04,920 --> 00:01:08,879
her masters So that's awesome. Well, and it looks like

20
00:01:09,280 --> 00:01:11,519
Thursday's only a half day anyway, now, so yeah, not

21
00:01:11,599 --> 00:01:13,680
a big deal. Well, this party is going to involve

22
00:01:13,719 --> 00:01:15,519
lots of smoked meats.

23
00:01:15,560 --> 00:01:17,799
Speaker 2: Well, that's one of my favorite kinds of party.

24
00:01:17,959 --> 00:01:22,519
Speaker 1: Yeah, I've got something interesting for Better Know a Framework,

25
00:01:22,599 --> 00:01:32,959
So let's roll the crazy music. All right, man, hit me? Yeah,

26
00:01:33,359 --> 00:01:38,599
aspnut Corp dot Diagnostics dot health checks. Oh no, not again.

27
00:01:38,680 --> 00:01:41,560
Are you actually doing the framework on Better Know a framework? Well,

28
00:01:41,560 --> 00:01:44,280
it's not really a framework. It's a it's a third

29
00:01:44,359 --> 00:01:46,680
party thing. It's oh, it's okay, it's as a get

30
00:01:46,799 --> 00:01:50,319
up repo. Yeah, enterprise health checks for asp net Corp

31
00:01:50,920 --> 00:01:55,040
diagnostics package. But that's awesome if you scroll down, like

32
00:01:55,359 --> 00:01:59,280
when you look at all of the things that it's about,

33
00:01:59,359 --> 00:02:05,519
all the package, just that it supports. It's like everything everything. No, wow,

34
00:02:05,799 --> 00:02:10,120
but it's only just asp dot net corey toly yeah Toly,

35
00:02:11,000 --> 00:02:15,240
But I mean, how unhealthy can core get? Yeah, so

36
00:02:15,400 --> 00:02:19,159
it's it's too much for me to explain. I mean,

37
00:02:19,240 --> 00:02:22,280
it's basically that's what it is. It's health checks but nice.

38
00:02:22,319 --> 00:02:25,360
But it supports everything, so it's cool. I'm not going

39
00:02:25,400 --> 00:02:28,319
to read the list. It's a long list. Check it out. Yeah.

40
00:02:29,000 --> 00:02:31,680
Speaker 2: But yeah, all right, you don't you a more importantly,

41
00:02:31,680 --> 00:02:33,960
you don't have to write this stuff. Somebody's already built

42
00:02:33,960 --> 00:02:36,199
a repository. It's got a bunch of contributors.

43
00:02:36,479 --> 00:02:36,759
Speaker 1: Yep.

44
00:02:36,960 --> 00:02:39,759
Speaker 2: So it's not up on nine yet. It's still dot

45
00:02:39,800 --> 00:02:41,319
net eight. But who knows. By the time you hear

46
00:02:41,319 --> 00:02:42,240
this than they I've already got it.

47
00:02:42,479 --> 00:02:44,599
Speaker 1: I've already got it. I can see the issue in

48
00:02:44,639 --> 00:02:48,039
there being worked. So that's a good sign. Yep, good stuff. Awesome, No,

49
00:02:48,199 --> 00:02:51,439
learn it, love it. Hey. Richard who's talking to us today.

50
00:02:51,280 --> 00:02:54,439
Speaker 2: Grabbed a show off of episode nineteen forty six, the

51
00:02:54,479 --> 00:02:56,280
one we do with Elias Pirnin when we were talking

52
00:02:56,280 --> 00:02:59,719
about audio, video and dot net, and this comment comes

53
00:02:59,759 --> 00:03:03,039
from Kurt Nichols who said, it's just a few weeks ago.

54
00:03:03,120 --> 00:03:06,560
He said, for what it's worth, Marshall dot alec h global,

55
00:03:06,800 --> 00:03:08,599
which is something that we talked about on the show.

56
00:03:08,680 --> 00:03:13,319
For doing dealing with video stuff is unmanaged memory allocation.

57
00:03:13,599 --> 00:03:16,039
Unmanage memory is not involved in garbage collection, does not

58
00:03:16,159 --> 00:03:18,199
move within the address space, and does not need to

59
00:03:18,240 --> 00:03:21,360
be pinned, and span of tea is very handily for

60
00:03:21,479 --> 00:03:23,479
manipulating a native buffer. If you're doing things like this,

61
00:03:23,599 --> 00:03:27,400
consider implementing a safe handle that is safe handle zero

62
00:03:27,599 --> 00:03:32,039
minus one is invalid for releasing the allocation. So actually

63
00:03:32,080 --> 00:03:34,840
a very important clarification. And once again here we are

64
00:03:34,879 --> 00:03:38,520
talking about old school yeah sockets and stuff, you know,

65
00:03:38,800 --> 00:03:43,280
managed versus unmanaged behavior. Elias also responded to that comment.

66
00:03:43,319 --> 00:03:47,439
He said, Span of Tea is awesome and this safe

67
00:03:47,800 --> 00:03:49,919
and then I asked, this safe handle take care of

68
00:03:49,919 --> 00:03:51,840
the allocation too, or just provide a wrapper of sorts

69
00:03:51,840 --> 00:03:54,400
for the life cycle stuff and it just provides the rapper.

70
00:03:54,560 --> 00:03:57,439
Speaker 1: You have to deal with your own allocations. Cool.

71
00:03:57,520 --> 00:03:59,039
Speaker 2: So, Kurt, thank you so much for your comment in

72
00:03:59,080 --> 00:04:00,639
a coffee. Music cod by on its way to you,

73
00:04:00,680 --> 00:04:02,039
and if you'd like a copy of music go buy.

74
00:04:02,039 --> 00:04:03,520
I right a comment on the website at dot net

75
00:04:03,599 --> 00:04:05,599
rocks dot com or on Facebook, So publish every show

76
00:04:05,599 --> 00:04:06,759
there and if you comment there and I reading on

77
00:04:06,759 --> 00:04:08,360
the show, we'll send you copy of music to go buy.

78
00:04:08,560 --> 00:04:12,159
Speaker 1: Music two code my is still going strong, twenty two tracks.

79
00:04:12,360 --> 00:04:14,800
I listened to it all the time still when I'm coding,

80
00:04:16,000 --> 00:04:19,160
and you can download it well yeah, penny for it

81
00:04:19,240 --> 00:04:21,680
of course, but you can get it at music to

82
00:04:21,800 --> 00:04:24,079
code by dot net. You can get the collection in

83
00:04:24,240 --> 00:04:28,759
MP three flack or wave or all three if you want.

84
00:04:29,040 --> 00:04:30,680
Nice hey knock yourself out.

85
00:04:30,920 --> 00:04:33,839
Speaker 3: I have a done DVD, not DVD CD.

86
00:04:35,079 --> 00:04:39,120
Speaker 2: Yeah, that's right, school. Yeah, you burned it to CDR.

87
00:04:39,319 --> 00:04:41,879
Speaker 1: I love that. No, no, no no. When I came

88
00:04:41,959 --> 00:04:43,439
out with it, you actually made a CD.

89
00:04:44,120 --> 00:04:44,319
Speaker 3: Yeah.

90
00:04:44,680 --> 00:04:48,079
Speaker 1: Yeah, so you have production CDs I have. I did.

91
00:04:48,240 --> 00:04:51,920
That was the whole uh kickstarter. That also speaks to

92
00:04:51,959 --> 00:04:55,199
the idea that Chris has a working CD player, which

93
00:04:55,279 --> 00:04:57,879
is shocking to me. It is shocking to me too.

94
00:04:58,040 --> 00:05:02,680
Speaker 3: I have a couple my kids have CD players because

95
00:05:02,839 --> 00:05:05,279
they like to play my old CDs.

96
00:05:05,839 --> 00:05:08,120
Speaker 1: I just bought a new car at VW Atlas and

97
00:05:08,560 --> 00:05:10,560
it does not have a CD player in it, but

98
00:05:10,680 --> 00:05:14,600
it has everything else. Yeah, just to just be key

99
00:05:14,680 --> 00:05:21,439
in somewhere, yeah, sort of. Before that was Chris Woody

100
00:05:21,439 --> 00:05:23,720
woodrowf our guest. But before I introduce him, let's talk

101
00:05:23,720 --> 00:05:26,399
about nineteen fifty one. All right, where do you want

102
00:05:26,399 --> 00:05:29,839
to go? So nineteen fifty one is the show number,

103
00:05:30,040 --> 00:05:32,319
and so what we've been doing is highlighting what happened

104
00:05:32,360 --> 00:05:36,720
that year. Major events include the continuation of the Korean War,

105
00:05:36,800 --> 00:05:40,600
which we talked about last week, the Treaty of San Francisco,

106
00:05:40,680 --> 00:05:44,279
which formerly ended the Pacific War with Japan, and the

107
00:05:44,360 --> 00:05:48,199
beginnings of the Cold War with the Rosenberg Trial, also

108
00:05:48,360 --> 00:05:52,600
the Schumann Plan. Six nations agreed to pool European coal

109
00:05:52,759 --> 00:05:57,759
and steel resources, which was a precursor to the European Union. Yeah,

110
00:05:57,839 --> 00:06:03,319
and let's see, that's the easy Cupean Eecy economic cooperation

111
00:06:03,839 --> 00:06:07,439
is the beginning of that. In Libya gained independence from Italy.

112
00:06:07,639 --> 00:06:10,079
I don't know if people knew that that Libya was

113
00:06:10,160 --> 00:06:12,560
once part of Italy. Right, and then you sort of

114
00:06:12,600 --> 00:06:16,199
actually mentioned the Rosenberg Trials. That's when supposedly the Rosenbergs

115
00:06:16,319 --> 00:06:19,279
leaked the plans for the atomic bomb to the Soviets. Yeah,

116
00:06:20,160 --> 00:06:20,560
not good.

117
00:06:21,240 --> 00:06:21,279
Speaker 3: No.

118
00:06:22,000 --> 00:06:28,360
Speaker 1: Technological advancements included the first transcontinental television broadcast, the introduction

119
00:06:28,480 --> 00:06:32,399
of the first commercial color TV broadcast, and the first

120
00:06:32,600 --> 00:06:35,839
direct dial telephone service. So up until then you had

121
00:06:35,879 --> 00:06:37,920
to call an operator, yeah, to get a call put

122
00:06:37,959 --> 00:06:40,879
through it. And how could we forget that UNIVAC one

123
00:06:41,079 --> 00:06:42,759
was delivered by Remington Rand.

124
00:06:43,079 --> 00:06:46,120
Speaker 2: It wasn't actually delivered. There's a great story here. Oh

125
00:06:46,319 --> 00:06:49,680
it's cool. So UNIVAC one the very first one he

126
00:06:49,720 --> 00:06:51,639
gets sold to the Census Bureau, right, and that's the

127
00:06:51,680 --> 00:06:54,720
one that comes that's available in nineteen fifty one, and

128
00:06:55,000 --> 00:06:57,800
so the sense they do this big thing in March

129
00:06:57,879 --> 00:06:59,680
of fifty one about hey, so the first computer is

130
00:06:59,680 --> 00:07:01,720
going to say sypua da da da da da. The

131
00:07:01,839 --> 00:07:04,160
party's over now, It's like, okay, it's time to deliver this.

132
00:07:04,160 --> 00:07:06,360
And I'm like, listen, it's the only one we got.

133
00:07:06,959 --> 00:07:08,759
We kind of wanted to use it as a demo unit,

134
00:07:09,199 --> 00:07:11,199
and we're afraid to take it apart in case it

135
00:07:11,240 --> 00:07:12,560
doesn't go back together again.

136
00:07:12,800 --> 00:07:13,199
Speaker 3: Oh man.

137
00:07:13,759 --> 00:07:17,759
Speaker 1: So the second one was actually for the Pentagon, and

138
00:07:17,879 --> 00:07:21,920
that one they install at the Pentagon the same year.

139
00:07:22,360 --> 00:07:24,240
They don't actually get up the nerve until they build

140
00:07:24,240 --> 00:07:25,600
a couple more. They don't get up a nerve to

141
00:07:25,639 --> 00:07:27,439
take apart the demo model and move it to the

142
00:07:27,480 --> 00:07:28,879
census Buro till the end of the year. And this

143
00:07:29,040 --> 00:07:31,759
thing is this the one that took up the city block. Well,

144
00:07:31,839 --> 00:07:33,920
it wasn't quite that big, but it is big. But

145
00:07:34,040 --> 00:07:36,160
the UNIVAC console, if you ever go look at this,

146
00:07:36,360 --> 00:07:38,079
it's what you think of when you think of old

147
00:07:38,120 --> 00:07:40,720
school computer. It's the great, big black panel with all

148
00:07:40,759 --> 00:07:42,480
the switches and the knobs and stuff on it. Like

149
00:07:43,079 --> 00:07:45,759
there's no CRTs at this point, right, we're ahead of

150
00:07:45,800 --> 00:07:46,560
all of that, right.

151
00:07:47,160 --> 00:07:49,319
Speaker 2: What more important invention from nineteen fifty one, which is

152
00:07:49,439 --> 00:07:52,040
this is the year that Bell Labs announces what they

153
00:07:52,120 --> 00:07:56,160
call the grown junction transistor. So this is shockly you know,

154
00:07:56,439 --> 00:07:59,720
the Bell Labs they had the point contact transistor, is

155
00:08:00,399 --> 00:08:04,839
trying to develop an easier to make transistor, although it's

156
00:08:04,879 --> 00:08:07,800
still not real easy to make, right. And what he's

157
00:08:07,839 --> 00:08:12,639
doing is that he's melting semiconductor germanium as making into

158
00:08:12,680 --> 00:08:15,959
a liquid it's very fairly high temperature, and then pulling

159
00:08:16,079 --> 00:08:20,439
that out as a single crystal. And that the geranium

160
00:08:20,600 --> 00:08:24,399
is actually doped, so there's a little bit of antimony

161
00:08:24,439 --> 00:08:26,040
in it as well. That makes it what they call

162
00:08:26,079 --> 00:08:31,759
an N type semiconductor. Why antimony, Because geranium has if

163
00:08:31,759 --> 00:08:33,159
you go look at your periodic table and I know

164
00:08:33,240 --> 00:08:36,919
you have one, it's right over there, has four outer

165
00:08:37,159 --> 00:08:40,399
electrons on its outer electron shell, which is what makes

166
00:08:40,440 --> 00:08:45,159
it a semiconductor, and antimony has five. So in the

167
00:08:45,240 --> 00:08:48,480
natural crystal forming process, when all those electrons will lock

168
00:08:48,559 --> 00:08:52,240
in with other ones, the doping material ends up with

169
00:08:52,279 --> 00:08:55,879
a free electron and that makes it and type stepping conductor. Wow,

170
00:08:56,080 --> 00:08:59,279
So you're drawing out the single crystal germanium. And about

171
00:08:59,480 --> 00:09:02,000
Chris and I, our mouths are just hanging open here.

172
00:09:02,120 --> 00:09:03,799
Speaker 1: We're just like, what the heck.

173
00:09:04,159 --> 00:09:06,399
Speaker 2: So now you're literally talking in thousands of an inch,

174
00:09:06,519 --> 00:09:09,440
but you're pulling a single crystal of this N type

175
00:09:09,519 --> 00:09:13,360
geranium out of the liquid and as it's forming, it's

176
00:09:13,399 --> 00:09:15,200
only going to be you know, maybe a quarter inch

177
00:09:15,279 --> 00:09:17,559
long the whole thing. But as it's forming, you put

178
00:09:17,600 --> 00:09:22,720
a droplet of P type on it, which is geranium

179
00:09:22,960 --> 00:09:27,879
doped with gallium. And then you've cut off the crystal

180
00:09:28,440 --> 00:09:30,720
and now you have to weld gold wires to it.

181
00:09:31,679 --> 00:09:33,799
But you now have an N type rob with a

182
00:09:33,840 --> 00:09:36,360
P type mount in the center of it. So you're

183
00:09:36,399 --> 00:09:38,639
making an NP N transistor.

184
00:09:38,759 --> 00:09:41,360
Speaker 1: Somebody had to have a wild imagination to be able

185
00:09:41,440 --> 00:09:44,720
to say, hey, if we did this, what would happen?

186
00:09:44,879 --> 00:09:47,519
Speaker 2: But this is how semiconductors. And again now now that

187
00:09:47,559 --> 00:09:50,320
they've described a process to get idea of how expensive

188
00:09:50,360 --> 00:09:54,360
these transistors were, like they were basically not commercially viable, right,

189
00:09:54,559 --> 00:09:57,919
but that they worked and they were stabler even though

190
00:09:58,039 --> 00:10:01,200
they were essentially handmade. Then the other types, although interestingly

191
00:10:01,360 --> 00:10:05,919
in nineteen fifty one as well, ge and RCA because

192
00:10:05,919 --> 00:10:08,679
that was Bell lads who were just talking about announced

193
00:10:08,759 --> 00:10:12,320
a different kind of transistor called an alloyjunction transistor. So

194
00:10:12,440 --> 00:10:15,000
here what they did was they made a geranium crystal

195
00:10:15,039 --> 00:10:17,000
which was also dope with n antimony, so it was

196
00:10:17,159 --> 00:10:21,279
ND type, and then they fused droplets of indium doped

197
00:10:22,000 --> 00:10:25,120
gallium on each side of it to make what is

198
00:10:25,159 --> 00:10:28,399
now known as a p NP transistor instead of an

199
00:10:28,559 --> 00:10:31,960
NPN transistor. Was it cheaper, It was a little easier

200
00:10:32,000 --> 00:10:34,200
to make, but not a lot easier to make, but

201
00:10:35,120 --> 00:10:37,720
it also worked. It was faster to form because he

202
00:10:37,720 --> 00:10:39,480
didn't have to actually draw a single crystal. At the

203
00:10:39,480 --> 00:10:44,159
same time, all of these things become obsolete by nineteen sixty, right,

204
00:10:44,240 --> 00:10:47,360
But there were stepping stones when the Planner. Yeah, when

205
00:10:47,399 --> 00:10:50,799
the Planner transistor comes along because the planet, which is

206
00:10:50,840 --> 00:10:53,399
actually a way to mass manufacturer transistors. Although there were

207
00:10:53,679 --> 00:10:56,440
lower quality, they were cheap. And that was made by

208
00:10:56,600 --> 00:11:00,440
fair Child Semiconductor, which was the company formed out of

209
00:11:00,799 --> 00:11:04,320
Shockley's company that was formed to create these things. And

210
00:11:04,399 --> 00:11:06,240
Shockley was a bit of a character, not a nice

211
00:11:06,240 --> 00:11:08,679
man at all, and he called those eight that laughed

212
00:11:08,799 --> 00:11:12,519
to form share Child the traitorous eight, though most of

213
00:11:12,639 --> 00:11:15,240
those guys would go on to form a third company,

214
00:11:15,519 --> 00:11:15,840
you know.

215
00:11:16,120 --> 00:11:18,360
Speaker 1: As Intel Intel. That's it. Yeah.

216
00:11:19,039 --> 00:11:19,200
Speaker 3: You know.

217
00:11:19,320 --> 00:11:22,399
Speaker 1: The thing that I know is that scientists, I think

218
00:11:22,480 --> 00:11:24,720
it was in the fifties, found that if you group

219
00:11:24,879 --> 00:11:28,519
two helium adams close enough together that they would actually laugh.

220
00:11:29,279 --> 00:11:36,320
Yeah he he helium fusion. Is that what we're talking about? Okay, okay,

221
00:11:37,039 --> 00:11:39,679
all right, all right, well that's all I got. All Right,

222
00:11:40,159 --> 00:11:42,039
we're here to talk about dot net and I think

223
00:11:42,159 --> 00:11:45,080
c sharp networking with Chris Woody Woodriff, So let me

224
00:11:45,159 --> 00:11:49,679
introduce him. Chris Woodriff is a seasoned software developer with

225
00:11:49,759 --> 00:11:52,919
a career that spans before the dot com boom, kind

226
00:11:52,960 --> 00:11:57,679
of like us. He specializes in enterprise web development, cloud solutions,

227
00:11:57,759 --> 00:12:02,759
and software analytics, is on API design and scalable architectures,

228
00:12:02,799 --> 00:12:06,080
and is recognized as a Microsoft MVP and dot net

229
00:12:06,600 --> 00:12:11,840
and web development. He's also a dedicated mentor, instructing courses

230
00:12:12,120 --> 00:12:16,240
for aspiring tech professionals and speaking at international conferences on

231
00:12:16,399 --> 00:12:21,080
database development, web APIs, and software architecture. Woody co hosts

232
00:12:21,159 --> 00:12:25,320
the Breakpoint Show podcast and has previously led engineering teams

233
00:12:25,360 --> 00:12:29,919
at Rocket Homes and Driven Developer relations at Rocket Mortgage.

234
00:12:30,600 --> 00:12:33,679
His consulting work has benefited companies like Apartments dot Com

235
00:12:33,799 --> 00:12:36,960
and Major League Baseball Advanced Media, right MLB.

236
00:12:37,240 --> 00:12:41,120
Speaker 3: MLB Advanced Media.

237
00:12:41,399 --> 00:12:45,000
Speaker 1: Yeah, they're a offshoot, all right, but it is Major Baseball,

238
00:12:45,279 --> 00:12:48,519
not something else. Okay. Woody enjoys bourbon. And I know

239
00:12:48,639 --> 00:12:51,240
this because he is the guy that introduced I think

240
00:12:51,440 --> 00:12:57,360
Richard and myself to Blanton's maybe maybe definitely introduced me.

241
00:12:57,519 --> 00:12:58,399
I don't know about Richard.

242
00:12:58,519 --> 00:13:02,039
Speaker 3: Yeah, I take bourbon everywhere with me when we go

243
00:13:02,159 --> 00:13:02,919
to conferences.

244
00:13:03,279 --> 00:13:06,759
Speaker 1: Yeah, and he enjoys writing about his experience at Woodrift

245
00:13:06,799 --> 00:13:09,240
dot dev outside of tech. You cannect with them on

246
00:13:09,279 --> 00:13:12,720
Blue Sky at Woodrift dot dev in Macedon at Macedon

247
00:13:12,840 --> 00:13:18,279
dot Social Slash at c Woodrift. I can't believe we've

248
00:13:18,360 --> 00:13:20,200
never had you on the show before. We've talked to you.

249
00:13:20,559 --> 00:13:22,399
Kind of embarrassing, isn't it talked to you so many

250
00:13:22,480 --> 00:13:24,639
times at all these conferences going back years.

251
00:13:25,120 --> 00:13:28,120
Speaker 3: Yeah, it just it just never happened. It's okay. It

252
00:13:28,440 --> 00:13:31,799
takes time, yeah, you know what. You know what, like bourbon,

253
00:13:32,399 --> 00:13:36,840
it takes time to take time for for something a

254
00:13:36,960 --> 00:13:37,960
good thing to come out.

255
00:13:38,279 --> 00:13:41,360
Speaker 1: So okay, I'll take that, but yep, we're sorry.

256
00:13:42,120 --> 00:13:43,039
Speaker 3: Yeah, no problem.

257
00:13:43,120 --> 00:13:44,679
Speaker 1: Well, like a Pappy twenty three.

258
00:13:45,039 --> 00:13:49,000
Speaker 3: Well, back in the day, we had a competing podcast,

259
00:13:50,039 --> 00:13:52,799
you know we were doing. I was on deep Fried Bites.

260
00:13:53,120 --> 00:13:57,679
Speaker 1: Yeah yeah, I remember. So I never considered you guys competition.

261
00:13:57,799 --> 00:14:01,000
Speaker 3: I know. It was never all friendly. We're all friendly.

262
00:14:01,360 --> 00:14:04,039
Speaker 1: Yeah, so I do remember deep Fried Bites good stuff.

263
00:14:04,320 --> 00:14:07,840
Speaker 3: Yeah yeah so yeah.

264
00:14:08,000 --> 00:14:12,399
Speaker 1: Speaking of bourbon, I have a an unopened bottle of

265
00:14:12,600 --> 00:14:15,919
Pappy van Winkle twenty three year old, still unopened. It's

266
00:14:16,000 --> 00:14:18,120
still unopened. It's in a safe.

267
00:14:18,679 --> 00:14:20,519
Speaker 3: Richard hasn't seen it yet. Huh.

268
00:14:21,679 --> 00:14:24,639
Speaker 1: Well no, when I got this batch and then I

269
00:14:24,840 --> 00:14:27,919
promise we'll talk about C sharp networking. When I got

270
00:14:27,960 --> 00:14:31,039
this batch, it included a fifteen year old which I

271
00:14:31,120 --> 00:14:34,279
gave Richard for his birthday, which has been drank and

272
00:14:34,399 --> 00:14:38,200
it has it was drunk pretty quickly after I gave

273
00:14:38,240 --> 00:14:38,440
it to you.

274
00:14:38,519 --> 00:14:42,759
Speaker 2: I think, listen, I do not collect whiskey. I drink whiskey.

275
00:14:43,039 --> 00:14:48,000
Speaker 3: Yeah yeah. So my brother's a doctor, so he buys

276
00:14:48,200 --> 00:14:51,559
the uh Pappy in the family. But I do have

277
00:14:51,639 --> 00:14:57,000
to say my first bottle of good bourbon was George T.

278
00:14:57,279 --> 00:15:02,799
Stag Love It four two thousand and four and I

279
00:15:03,000 --> 00:15:07,240
was living in Lexington at the time, and uh, one

280
00:15:07,279 --> 00:15:10,960
of the guys in my church was a sales guy

281
00:15:11,159 --> 00:15:15,039
for Buffalo Trace and said, hey, do you want a bottle?

282
00:15:15,840 --> 00:15:18,919
And it was like forty five dollars or something, this

283
00:15:19,120 --> 00:15:25,799
before Bourbon exploded. So yeah, And how that bottle got

284
00:15:25,960 --> 00:15:29,279
killed was my brother in law. I saw him mixing

285
00:15:29,360 --> 00:15:35,399
it with diet coke the last ounce or two. So yeah, yeah,

286
00:15:35,799 --> 00:15:37,080
oh that broke my heart.

287
00:15:37,159 --> 00:15:39,200
Speaker 1: It's just it's shameful.

288
00:15:39,399 --> 00:15:41,240
Speaker 3: And I could feel everyone listening.

289
00:15:41,840 --> 00:15:43,840
Speaker 2: Just keep I keep a bottle of Maker's Marker. It's

290
00:15:43,919 --> 00:15:45,679
like here, just go ahead, put your coke in this.

291
00:15:46,039 --> 00:15:50,759
Speaker 3: Yeah. Yeah, I always have a cheap bottle like Beam

292
00:15:50,960 --> 00:15:52,399
or something around. Yeah.

293
00:15:52,720 --> 00:15:55,679
Speaker 1: So but yeah, nothing wrong with that. Well anyway, yeah,

294
00:15:55,720 --> 00:15:58,200
you were the first one that introduced me to Blant

295
00:15:58,240 --> 00:16:00,360
and said, have you ever had Blants? If you like

296
00:16:00,480 --> 00:16:04,559
Makers mark you know, because it's weeded, it's weeded like Makers,

297
00:16:05,159 --> 00:16:09,600
and I think it's better. And then it shortly thereafter

298
00:16:10,000 --> 00:16:14,600
became very hard to find. And now that there was

299
00:16:14,639 --> 00:16:18,679
a flood at Buffalo Trace, So do you know the

300
00:16:18,759 --> 00:16:21,039
status of that? Are they are they back to production?

301
00:16:21,559 --> 00:16:24,080
Speaker 3: Yeah? It only took them a week to get back

302
00:16:24,679 --> 00:16:29,720
to production. And all of the barrels that were submerged

303
00:16:30,159 --> 00:16:36,279
or partially submerged in water, they actually sold because they

304
00:16:36,320 --> 00:16:40,720
couldn't bottle them, so they actually sold them to collectors.

305
00:16:41,600 --> 00:16:46,320
And I hear people are going to like bottle them

306
00:16:46,519 --> 00:16:50,480
and sell them or you know, like orphan barrel. You know, sure,

307
00:16:51,000 --> 00:16:54,000
orphan barrel came out. I think it's supposed to be

308
00:16:55,200 --> 00:16:57,399
kind of like that. But no, they were back up

309
00:16:57,519 --> 00:16:58,320
pretty quick.

310
00:16:59,159 --> 00:16:59,600
Speaker 1: That's good.

311
00:17:00,320 --> 00:17:04,400
Speaker 2: Yeah, yeah, so because the water directed quickly. But you

312
00:17:04,480 --> 00:17:09,960
know that Pappy warehouse on the on the Buffalo Trace property,

313
00:17:10,039 --> 00:17:11,960
it's on there. It's half underground, so I'm sure that

314
00:17:12,079 --> 00:17:14,119
must have filled up with water. Yeah yeah, and then

315
00:17:14,160 --> 00:17:16,359
they they did, you must have lost a lot.

316
00:17:16,440 --> 00:17:18,559
Speaker 3: You know. They had the story where they were digging

317
00:17:18,759 --> 00:17:20,960
for a new a new rick house.

318
00:17:21,200 --> 00:17:23,759
Speaker 1: A rick house is where they store the barrel, right,

319
00:17:23,839 --> 00:17:26,160
and and found the old old old distillery.

320
00:17:26,240 --> 00:17:30,119
Speaker 3: And they found the old old like before, like the original.

321
00:17:30,640 --> 00:17:34,680
She's distilled, and I think that's still underwater. I think

322
00:17:34,680 --> 00:17:37,359
they're trying to pump out water in that.

323
00:17:37,759 --> 00:17:41,880
Speaker 1: But such a shame, but yeah, yeah it is. Okay,

324
00:17:42,400 --> 00:17:45,200
So we're here to talk about C sharp networking. And

325
00:17:45,599 --> 00:17:47,240
this is a topic near and dear to my heart,

326
00:17:47,279 --> 00:17:50,599
but only because many many, many, many many years ago

327
00:17:51,480 --> 00:17:54,599
I wrote a book on socket's programming and visual Basic.

328
00:17:55,759 --> 00:17:59,920
And it was even before visual Basic had a really

329
00:18:00,440 --> 00:18:04,400
stable windsock control. I was actually using a third party

330
00:18:04,440 --> 00:18:07,160
control because it was working better. I caught some flack

331
00:18:07,240 --> 00:18:13,920
over that, but coming from serial communications programming before that,

332
00:18:14,720 --> 00:18:20,400
which was a nightmare. The you know, the the TCP

333
00:18:20,519 --> 00:18:22,920
IP stack and windsock on top of that was like

334
00:18:22,960 --> 00:18:25,599
a dream come true. So I know, I know that

335
00:18:25,680 --> 00:18:28,599
you do cover sockets in your your online book on

336
00:18:28,759 --> 00:18:32,200
c sharp networking, but it's a vast topic and I

337
00:18:32,200 --> 00:18:33,240
don't know where do you want to start.

338
00:18:33,400 --> 00:18:36,720
Speaker 3: I don't know we can start why, Like why did

339
00:18:36,759 --> 00:18:39,279
I write? I mean, people ask like, why do you

340
00:18:39,359 --> 00:18:43,119
write a book right these days when everything's online and.

341
00:18:43,200 --> 00:18:47,079
Speaker 1: Most people also don't care about the low level programming stuff.

342
00:18:47,359 --> 00:18:50,680
Give me an HDP client, you know, give me some

343
00:18:50,880 --> 00:18:52,680
poll exactly, and that's it.

344
00:18:53,119 --> 00:18:57,240
Speaker 3: Well, and in the second half of the book, so

345
00:18:57,680 --> 00:18:59,960
the book is kind of broken up into two parts.

346
00:19:00,279 --> 00:19:04,359
The first part is all the fundamental stuff that I

347
00:19:04,519 --> 00:19:08,759
think people should know. Maybe they don't need to use

348
00:19:08,839 --> 00:19:13,480
it every day, but you should understand like what the

349
00:19:14,200 --> 00:19:18,680
dot net framework abstracts away. And then the second half

350
00:19:18,759 --> 00:19:23,559
I go through all the different types of network communications.

351
00:19:23,599 --> 00:19:27,640
So I talk about like rest APIs and web sockets

352
00:19:27,799 --> 00:19:36,160
and MQTT and gr PC and message queueing and stuff.

353
00:19:36,640 --> 00:19:42,400
But what the most the most fun I had in

354
00:19:42,559 --> 00:19:47,680
writing the book was the fundamental stuff because I love HTTP,

355
00:19:48,519 --> 00:19:55,720
Like I've actually read the full protocol and I don't

356
00:19:56,319 --> 00:19:59,359
think anyone should. I just kind of did it to

357
00:20:00,480 --> 00:20:03,240
to do it because I was so interested. I mean,

358
00:20:03,319 --> 00:20:07,119
I've done conference talks where I just talk about HTTP,

359
00:20:08,240 --> 00:20:12,799
and so that got me interested in this, and I

360
00:20:13,039 --> 00:20:17,079
was like, man, I really want to dig down into

361
00:20:17,160 --> 00:20:21,319
this and get something out so people can know a

362
00:20:21,359 --> 00:20:26,039
little bit more about what it really takes to communicate

363
00:20:26,160 --> 00:20:27,559
between two computers.

364
00:20:27,880 --> 00:20:31,200
Speaker 1: You wanted to inhabit the ghost of Tim berners Lee.

365
00:20:31,640 --> 00:20:33,359
Speaker 3: Sure, yes, Yeah.

366
00:20:33,680 --> 00:20:36,880
Speaker 2: It also occurs to me here that if you're trying

367
00:20:36,920 --> 00:20:39,599
to to side on a particular connection process through any

368
00:20:39,640 --> 00:20:43,279
one of these APIs, through MQTT ORGRPC and so forth,

369
00:20:43,319 --> 00:20:46,119
at least knowing them all in context so that you

370
00:20:46,160 --> 00:20:49,079
can make a more informed decision. Yeah, yeah, I mean

371
00:20:49,559 --> 00:20:51,559
most of the time we don't care much about networking

372
00:20:51,559 --> 00:20:54,559
because the defaults are good enough, but sometimes they're not.

373
00:20:55,400 --> 00:20:59,599
Speaker 3: Well, here's the thing. I mean. You have to know

374
00:20:59,680 --> 00:21:04,599
about about asickerness, so I have a chapter on async.

375
00:21:05,599 --> 00:21:10,880
When it's related to networking. You have to know about

376
00:21:11,440 --> 00:21:15,920
multi threading, so I have a chapter on multi threading

377
00:21:16,240 --> 00:21:21,519
in relations to networking. And down the line error handling,

378
00:21:22,559 --> 00:21:27,880
data serialization, error handling, and fault tolerance. So you were

379
00:21:27,920 --> 00:21:31,759
talking about Polly, I have a chapter on Polly that.

380
00:21:33,559 --> 00:21:37,400
You know what, most people when they write their servers

381
00:21:37,480 --> 00:21:43,079
and their clients never think about fault tolerances, never think

382
00:21:43,119 --> 00:21:46,599
about what happens if I don't get anything back from

383
00:21:46,880 --> 00:21:49,119
the other side. And you should.

384
00:21:49,000 --> 00:21:51,880
Speaker 1: Absolutely, yeah, and just lifting a error is not enough.

385
00:21:51,960 --> 00:21:54,359
Speaker 2: I mean the whole thing with Polly, and not to

386
00:21:54,400 --> 00:21:56,359
plug your thing more, Carl, But I'm pluging your thing more.

387
00:21:56,400 --> 00:21:58,680
But it's like, listen, there's a bunch of things you

388
00:21:58,759 --> 00:22:01,119
could do, but you shouldn't write any of that because

389
00:22:01,119 --> 00:22:04,519
it's written for you. Just go get the poly library

390
00:22:04,559 --> 00:22:05,279
and you'll be fine.

391
00:22:05,559 --> 00:22:05,720
Speaker 1: Yeah.

392
00:22:05,839 --> 00:22:08,960
Speaker 3: Yeah, there's there's lots of patterns to Polly that that

393
00:22:09,240 --> 00:22:11,400
will solve a lot of your problems.

394
00:22:12,480 --> 00:22:15,200
Speaker 1: Or just use the HDP Client Factory, which is sort

395
00:22:15,240 --> 00:22:16,839
of Polly under it, but it's easier.

396
00:22:16,960 --> 00:22:21,720
Speaker 3: Yeah, yeah, yeah, And and Microsoft has come out with

397
00:22:22,160 --> 00:22:25,920
their own Polly like like you said, so you don't

398
00:22:26,119 --> 00:22:30,400
have to use Polly. I still think Polly is has

399
00:22:30,880 --> 00:22:34,000
lots of edge cases that it covers. So it's it's

400
00:22:35,279 --> 00:22:37,680
I think a little more breadth.

401
00:22:38,160 --> 00:22:41,960
Speaker 1: Yeah. So and also you know, it's it's good to understand.

402
00:22:42,799 --> 00:22:45,160
For me, it was really good to understand just pure

403
00:22:45,200 --> 00:22:48,799
windsock programming, pure sockets. Right, I have a client, I

404
00:22:48,880 --> 00:22:52,039
have a server. Client connects to the server. That connection

405
00:22:52,240 --> 00:22:56,480
stays open until one of them closes it, and so

406
00:22:57,240 --> 00:23:01,079
during that time you can send and receive at the

407
00:23:01,160 --> 00:23:07,160
same time asynchronously over that socket. And uh, but then

408
00:23:07,200 --> 00:23:09,759
you quickly realize when you want to go to use this,

409
00:23:10,799 --> 00:23:14,200
Oh I what if I, you know, want to define

410
00:23:14,720 --> 00:23:16,759
some message that I want to send and have the

411
00:23:16,839 --> 00:23:18,799
server understand it. Well, now how do I do that?

412
00:23:19,559 --> 00:23:22,720
So now you've got to think about protocols and if

413
00:23:23,000 --> 00:23:26,400
you're both not if both sides aren't using the same protocol,

414
00:23:26,519 --> 00:23:29,920
hilarity ensues. You know, it's like pulling up to the

415
00:23:30,000 --> 00:23:34,400
drive through and uh, you know Wendy's and can I

416
00:23:34,480 --> 00:23:35,720
help you? And you say, yeah, I want to make

417
00:23:35,720 --> 00:23:39,000
a deposit. Yeah right, what what are you talking about?

418
00:23:39,480 --> 00:23:43,000
Speaker 3: Yeah? Yeah, And that comes down to when you open

419
00:23:43,119 --> 00:23:48,680
up a socket. There's really there's three types of protocols

420
00:23:48,799 --> 00:23:53,839
that that you get. You get uh TCP, you get UDP,

421
00:23:54,559 --> 00:23:57,160
and you can do your own you can have your

422
00:23:57,200 --> 00:24:01,680
own custom protocol like do whatever wild things that you want.

423
00:24:02,039 --> 00:24:04,720
Right and for a long time, I mean, most people

424
00:24:04,920 --> 00:24:09,759
use TCP, but if you're streaming video or streaming audio,

425
00:24:10,759 --> 00:24:13,319
UDP is the way to go. It's a much better

426
00:24:13,480 --> 00:24:15,200
protocols the last week and.

427
00:24:15,240 --> 00:24:18,519
Speaker 1: See, yes, because TCP has error checking built in and

428
00:24:18,799 --> 00:24:24,359
delivery guaranteed delivery basically exactly exactly so. And the thing

429
00:24:24,400 --> 00:24:26,319
that a lot of people don't understand is routers and

430
00:24:26,400 --> 00:24:30,400
TCP IP routers, and the whole protocol was built to

431
00:24:30,519 --> 00:24:33,960
a stand nuclear war yep, dark now. It was built

432
00:24:34,039 --> 00:24:37,680
so that, hey, if one set of routers goes down

433
00:24:38,039 --> 00:24:40,680
in the network, we'll just find our way around.

434
00:24:41,079 --> 00:24:43,480
Speaker 2: Yeah yeah, which it still does to this day. You

435
00:24:43,519 --> 00:24:46,000
don't even think about the fact that, yeah still does.

436
00:24:46,519 --> 00:24:48,920
Undersea cables go down on a routine basis and most

437
00:24:48,960 --> 00:24:50,200
people can barely tell.

438
00:24:50,359 --> 00:24:53,079
Speaker 1: Yeah, exactly, and we just find another way around.

439
00:24:53,240 --> 00:24:57,119
Speaker 3: Richard, when you were talking about transistors, I was really

440
00:24:57,200 --> 00:25:00,480
thinking when you said in the sixties, but really what

441
00:25:00,799 --> 00:25:06,680
made transistors so cheap? And uh is really the space program,

442
00:25:07,119 --> 00:25:10,839
which is another government I mean they had to mentorize

443
00:25:10,880 --> 00:25:11,400
to be clear.

444
00:25:11,480 --> 00:25:15,799
Speaker 1: Fairchild Semiconductor's original business was building navigation systems for i CBMs.

445
00:25:15,960 --> 00:25:16,160
Speaker 3: Yeah.

446
00:25:16,279 --> 00:25:19,519
Speaker 2: Yeah, and they needed to make the integrated circuit to

447
00:25:19,599 --> 00:25:22,519
get that system down to be small enough and robust

448
00:25:22,680 --> 00:25:25,319
enough to survive a launch into space.

449
00:25:25,519 --> 00:25:25,839
Speaker 3: Exactly.

450
00:25:26,000 --> 00:25:28,119
Speaker 1: Yeah. When life and death are on the line, you know,

451
00:25:28,200 --> 00:25:29,000
we get innovative.

452
00:25:29,440 --> 00:25:34,240
Speaker 3: Yep, yep. And you know what, we have the Internet too,

453
00:25:34,960 --> 00:25:40,519
and it's it's cool. I really love. I mean I

454
00:25:40,759 --> 00:25:44,200
was programming when I was a kid with nothing I had.

455
00:25:44,759 --> 00:25:48,000
I couldn't afford a modem, I couldn't afford the long

456
00:25:48,079 --> 00:25:53,240
distance phone calls. So when I got to university, man,

457
00:25:53,400 --> 00:25:57,559
I had so much fun, right because this weird thing

458
00:25:57,759 --> 00:26:02,119
called Mosaic showed up on the on the Unix on

459
00:26:02,279 --> 00:26:03,640
our solarist machines.

460
00:26:03,799 --> 00:26:05,680
Speaker 1: That's one of the first web browsers.

461
00:26:05,839 --> 00:26:08,880
Speaker 3: Yeah, it was. It was the first web browser mosaic.

462
00:26:09,039 --> 00:26:11,160
Speaker 1: I also remember Cello. You remember Cello?

463
00:26:11,400 --> 00:26:12,119
Speaker 3: Remember Cello?

464
00:26:12,319 --> 00:26:13,759
Speaker 1: It was ninety three something like that.

465
00:26:14,519 --> 00:26:20,200
Speaker 3: Yep. And I remember Gopher before yes, before uh, the Internet,

466
00:26:20,279 --> 00:26:24,359
we were using Gopher for lots of research and stuff.

467
00:26:24,599 --> 00:26:28,440
Speaker 1: So Gopher is a very simple folder based protocol that

468
00:26:28,640 --> 00:26:31,880
instead of having websites, you have Gopher sites and you'd

469
00:26:31,920 --> 00:26:36,240
get a basically a menu of folders and you could,

470
00:26:36,559 --> 00:26:38,920
you know, trans you know, navigate down. There was no

471
00:26:39,039 --> 00:26:41,519
search or anything. You have to know where it was.

472
00:26:41,720 --> 00:26:46,440
But if somebody published a paper in a published papers folder,

473
00:26:47,400 --> 00:26:50,319
you know, and you you basically had a URL to

474
00:26:50,440 --> 00:26:53,480
it and you can download it anywhere. And I used

475
00:26:53,480 --> 00:26:57,279
to use Gopher for boy, this is going back, but

476
00:26:57,680 --> 00:26:59,400
one of the first talks I did on the Internet

477
00:26:59,720 --> 00:27:06,839
was ges satellite imaging Gopher server. And I can't remember

478
00:27:06,880 --> 00:27:09,519
where it was. It was in California somewhere, but it

479
00:27:09,559 --> 00:27:14,240
would their computers would download satellite images every five minutes

480
00:27:14,920 --> 00:27:18,400
and populate these Gopher servers. And so here I am

481
00:27:18,559 --> 00:27:21,440
doing a talk at vibits on the Live Internet and

482
00:27:21,599 --> 00:27:26,039
I show this you know Pacific, because I was in

483
00:27:26,160 --> 00:27:28,759
California and San Francisco. I showed a picture over the

484
00:27:28,839 --> 00:27:33,599
Pacific and there was like this huge, huge storm cloud

485
00:27:33,680 --> 00:27:36,039
coming and it was only five minutes ago that this

486
00:27:36,119 --> 00:27:39,559
thing was posted, and people like ran out of the room. Yeah,

487
00:27:39,599 --> 00:27:43,240
suddenly nobody cares about your talk anymore exactly. But the

488
00:27:43,400 --> 00:27:47,559
power went out, like you know, and we were stranded

489
00:27:47,640 --> 00:27:49,680
in the hotel for a while, like you know that,

490
00:27:49,920 --> 00:27:52,960
and all people didn't know until they were unless they

491
00:27:53,000 --> 00:27:55,279
were at my talk. Yeah that it was going to happen.

492
00:27:55,559 --> 00:28:01,319
Speaker 3: But that really shows that computers really didn't become a

493
00:28:01,480 --> 00:28:06,400
thing until they were connected, right, I mean modems back

494
00:28:06,480 --> 00:28:10,279
in the eighties where you would go to the well

495
00:28:10,880 --> 00:28:13,079
or the well was kind of a.

496
00:28:14,680 --> 00:28:16,200
Speaker 1: Bb BBS site.

497
00:28:16,279 --> 00:28:21,079
Speaker 3: BBS in San Francisco that all and I would have

498
00:28:21,200 --> 00:28:25,720
loved to have connected to that because it would have

499
00:28:25,799 --> 00:28:29,200
been cool to meet to talk to people that were connected.

500
00:28:29,279 --> 00:28:34,640
But like, yeah, it's back then. Long distance calls were expensive.

501
00:28:34,279 --> 00:28:36,519
Speaker 2: And it cost money and everything. And that's what's the

502
00:28:36,559 --> 00:28:39,119
big deal for the Internet, right, was that, Yeah, suddenly

503
00:28:39,400 --> 00:28:41,920
the distance didn't matter. Everything was already connected. But yeah,

504
00:28:42,079 --> 00:28:43,640
we had our bbs is in Vancouver.

505
00:28:43,839 --> 00:28:47,279
Speaker 1: Yes, now we're all reminiscing and yeah, but welcome to

506
00:28:47,400 --> 00:28:50,759
three guys Talk about technology and it doesn't exist anymore,

507
00:28:51,359 --> 00:28:54,480
I know, but it's good for the young ins to

508
00:28:54,599 --> 00:28:57,200
know that. You know, this is kind of your pedigree,

509
00:28:57,240 --> 00:28:59,039
this is where all this stuff came from.

510
00:28:59,200 --> 00:29:01,680
Speaker 3: Yeah, and I'm just trying to share. I'm just trying

511
00:29:01,720 --> 00:29:04,759
to pay it forward. I'm trying to give a little

512
00:29:04,759 --> 00:29:09,599
bit back because I got a lot of help twenty

513
00:29:10,519 --> 00:29:15,039
twenty five years ago. I mean, I'm all I think

514
00:29:16,079 --> 00:29:22,839
this December. I know, I've been working professionally for thirty

515
00:29:22,920 --> 00:29:28,880
years now. Yeah, time flies. I banged my head against

516
00:29:28,880 --> 00:29:31,119
the wall so much that all my hair fell out.

517
00:29:32,279 --> 00:29:35,720
That was back in the nineties when there wasn't really

518
00:29:35,839 --> 00:29:41,279
any good internet connections and what like. You didn't you

519
00:29:41,400 --> 00:29:44,920
couldn't ask chat, GPT, how like write some code to

520
00:29:45,000 --> 00:29:49,200
do this, or even even go the stack overflow. But

521
00:29:50,640 --> 00:29:54,680
I think we're going off, We're going off into everything.

522
00:29:55,119 --> 00:29:57,039
Speaker 1: Well, well, that's okay, We're going to take a quick

523
00:29:57,079 --> 00:29:58,920
break when we come back. Here's a question you can

524
00:29:59,000 --> 00:30:00,680
think about, what are some of the and gems and

525
00:30:00,759 --> 00:30:04,759
networking that people may not know about? And you can

526
00:30:04,839 --> 00:30:08,000
answer that question right after these very important messages. We'll

527
00:30:08,039 --> 00:30:11,559
be right back. Did you know there's a dot net

528
00:30:11,680 --> 00:30:16,960
on aws community, follow the social media blogs, YouTube influencers,

529
00:30:17,000 --> 00:30:20,720
and open source projects, and add your own voice. Get

530
00:30:20,799 --> 00:30:24,480
plugged into the dot net on aws community at aws

531
00:30:24,640 --> 00:30:31,759
dot Amazon dot com, slash dot net. And we're back.

532
00:30:31,839 --> 00:30:35,279
It's dot NetRocks. I'm Carl, that's Richard Hey, and Chris Woody.

533
00:30:35,319 --> 00:30:38,200
Woodruff is here. And before the break I asked them

534
00:30:38,200 --> 00:30:40,160
to think about this. What are some of the hidden

535
00:30:40,200 --> 00:30:44,279
gems in networking that people may not know about and

536
00:30:44,440 --> 00:30:47,559
then typically go unnoticed.

537
00:30:47,799 --> 00:30:52,400
Speaker 3: Yeah. I think one thing is we hit upon this

538
00:30:52,559 --> 00:30:55,319
subject in the first half of the show, which is

539
00:30:55,920 --> 00:31:02,599
fault tolerance and learning how to get your network back

540
00:31:02,960 --> 00:31:07,200
communication back up and running so and that uses poly

541
00:31:07,599 --> 00:31:14,119
and and some other different technologies and frameworks. And the

542
00:31:14,319 --> 00:31:22,319
other one is you really have to For me, I

543
00:31:22,920 --> 00:31:30,559
think it comes down to understanding what the best protocols

544
00:31:31,000 --> 00:31:37,519
and frameworks to use. So so many people just go, oh,

545
00:31:37,640 --> 00:31:42,480
we'll just do everything in rest APIs right, Well, that

546
00:31:42,759 --> 00:31:44,039
might not be the best thing.

547
00:31:44,319 --> 00:31:46,599
Speaker 1: I don't even know if people know what rest is,

548
00:31:47,240 --> 00:31:50,240
because first of all, it was a very hip term

549
00:31:50,359 --> 00:31:53,359
to use. And then you know, when we first talked

550
00:31:53,400 --> 00:31:56,759
to people, Richard, it was just like, well, it's just HDP.

551
00:31:56,960 --> 00:31:59,119
You just get a request and it comes back. And

552
00:31:59,640 --> 00:32:02,359
but there really talking about API endpoints and how to

553
00:32:02,400 --> 00:32:06,680
handle them and how to structure the data that comes

554
00:32:06,720 --> 00:32:09,119
back from an API endpoint and getting a little more

555
00:32:09,880 --> 00:32:11,839
goo around that that's standardized.

556
00:32:11,960 --> 00:32:12,160
Speaker 3: Yep.

557
00:32:12,319 --> 00:32:16,400
Speaker 2: But it almost became that a buzzword thing. It's like, well, yeah,

558
00:32:16,519 --> 00:32:17,359
that's not RESTful.

559
00:32:17,480 --> 00:32:21,920
Speaker 1: Yeah it's right. Well well I'm sorry, but yeah it works.

560
00:32:23,039 --> 00:32:28,400
Speaker 3: Finally, I finally have used the sixth law or sixth

561
00:32:28,599 --> 00:32:36,160
rule of rest. So so there's six constraints that Roy

562
00:32:36,279 --> 00:32:41,839
Felding when he wrote his PhD thesis, which rest was

563
00:32:41,960 --> 00:32:47,720
part of, just a small part. He said six constraints

564
00:32:47,759 --> 00:32:51,880
that you had to do like client server, and there's

565
00:32:51,960 --> 00:32:55,400
a bunch of things, right, but the sixth one is

566
00:32:55,480 --> 00:33:01,279
where no one really knew how to cross over that

567
00:33:01,559 --> 00:33:07,599
and that is when giving code in your response. So

568
00:33:07,720 --> 00:33:13,440
when you when you call a rest API endpoint to

569
00:33:13,559 --> 00:33:19,759
be RESTful, it should return code or something that that

570
00:33:20,200 --> 00:33:25,880
you use to uh change the state of your client.

571
00:33:26,599 --> 00:33:31,799
And I finally learned I'm finally using and crossing that law,

572
00:33:32,160 --> 00:33:36,680
and I'm doing it with HTMX, which I'm actually writing

573
00:33:36,759 --> 00:33:43,960
another online book about HTMX is a very small Java

574
00:33:44,640 --> 00:33:47,680
script framework. But I kind of digress.

575
00:33:48,160 --> 00:33:52,480
Speaker 1: But so the question is is is that smart is

576
00:33:53,079 --> 00:33:56,960
is using code's earning code? Is a response? Is that

577
00:33:57,119 --> 00:34:00,079
sneak it is? I'm also sure I want to be

578
00:34:00,160 --> 00:34:02,759
in charge of every line of code that I execute.

579
00:34:03,200 --> 00:34:05,920
Speaker 3: Well, why not have the server tell you what?

580
00:34:06,640 --> 00:34:06,680
Speaker 1: What?

581
00:34:07,160 --> 00:34:12,840
Speaker 3: Uh? Based on a based on a HTTP request, you

582
00:34:12,960 --> 00:34:19,880
get back some HTML that then you replace other HTML

583
00:34:20,000 --> 00:34:23,199
in the dom and you have you have a new

584
00:34:23,920 --> 00:34:26,840
UI without refreshing the whole page.

585
00:34:27,480 --> 00:34:30,280
Speaker 1: And that gives Well I use Blazer, so that's not

586
00:34:30,360 --> 00:34:32,559
an issue for me. But anyway, I can't see what

587
00:34:32,639 --> 00:34:33,000
I did there.

588
00:34:33,159 --> 00:34:36,239
Speaker 3: I know, I know, I know, I do server I'm

589
00:34:36,280 --> 00:34:39,280
more old school. I like server side stuff.

590
00:34:39,360 --> 00:34:43,679
Speaker 1: But but but in general, though, I think that opens uh.

591
00:34:43,880 --> 00:34:48,760
That increases my attack surface. If what you're bringing down

592
00:34:49,000 --> 00:34:52,119
executes code, you can bring down some bad code.

593
00:34:53,360 --> 00:34:55,039
Speaker 3: Yeah you could. You could know.

594
00:34:55,199 --> 00:34:57,760
Speaker 1: So that's why I say I like, I know, I

595
00:34:57,920 --> 00:34:59,960
like when when I do rest or when somebody says,

596
00:35:00,119 --> 00:35:02,239
you know, make this RESTful. What I do is I

597
00:35:02,360 --> 00:35:06,599
create a response class and that response has like a

598
00:35:06,679 --> 00:35:09,159
list of errors, and it has a success and failure,

599
00:35:09,639 --> 00:35:13,840
and then it has either an entity or a list

600
00:35:13,920 --> 00:35:18,119
of entities, collection of entities, and that's it, you know,

601
00:35:18,760 --> 00:35:21,840
just the response code and all of that stuff. So

602
00:35:21,960 --> 00:35:24,239
then my code figures out what to do with that.

603
00:35:24,480 --> 00:35:24,679
Speaker 3: Yeah.

604
00:35:24,880 --> 00:35:29,519
Speaker 1: I like having the transport that the client, the API

605
00:35:29,679 --> 00:35:33,880
client and the server just doing what they should be doing.

606
00:35:33,920 --> 00:35:34,840
I don't want to mess in it.

607
00:35:34,960 --> 00:35:38,000
Speaker 3: My you, I know, and we're really geeking out.

608
00:35:38,880 --> 00:35:42,400
Speaker 1: I'll include a copy of Fielding's dissertation because you see

609
00:35:42,639 --> 00:35:43,639
Irving published it.

610
00:35:44,679 --> 00:35:47,559
Speaker 2: Because one of the options in REST and it just

611
00:35:47,639 --> 00:35:52,039
say it's optional is code on demand. Yep, that's the

612
00:35:52,239 --> 00:35:54,800
sixth yep to I mean, to your point there, Chris

613
00:35:55,199 --> 00:35:57,239
is like, you decided to do the weird one.

614
00:35:57,960 --> 00:36:00,960
Speaker 1: Yeah. I guess it's cool, but it's just not It

615
00:36:01,039 --> 00:36:02,360
doesn't smell good to me.

616
00:36:03,079 --> 00:36:08,039
Speaker 3: I know, you do have to be careful and everything,

617
00:36:08,199 --> 00:36:12,000
but when you were talking about response codes and stuff,

618
00:36:12,159 --> 00:36:14,920
I was my mind was like, oh, the language of

619
00:36:15,320 --> 00:36:20,519
httph and and that's another thing I kind of talk

620
00:36:20,599 --> 00:36:24,239
a little bit about in the book. Is in the

621
00:36:25,800 --> 00:36:32,239
the introduction to everything, I talk about HTTP is a language.

622
00:36:33,000 --> 00:36:35,960
It's a protocol, but it's a language between the server

623
00:36:36,119 --> 00:36:38,039
and the and the clients that calls it.

624
00:36:38,760 --> 00:36:41,639
Speaker 2: And as all protocols effectively are.

625
00:36:42,079 --> 00:36:46,840
Speaker 3: Yes, and it communicates devices. Yeah, it communicates through the

626
00:36:46,960 --> 00:36:51,000
response codes. Because I mean, so many people go, I'll

627
00:36:51,199 --> 00:36:56,400
just pass back a two hundred when when there's when

628
00:36:56,480 --> 00:37:01,679
it's successful, Well, know what what happens in the when

629
00:37:01,760 --> 00:37:05,840
you do a delete When you when you send over

630
00:37:05,960 --> 00:37:10,840
a delete request and it deletes a resource on the

631
00:37:11,119 --> 00:37:15,559
server side and it doesn't return anything back in the

632
00:37:16,079 --> 00:37:20,559
in the HTTP response body, you should always send back

633
00:37:20,599 --> 00:37:24,360
a two oh four because that tells the client that

634
00:37:24,480 --> 00:37:27,400
there's nothing in the in the response body.

635
00:37:27,840 --> 00:37:29,800
Speaker 1: Right, if you think about it, the response code are

636
00:37:29,840 --> 00:37:34,199
for HTTP, right, Like for example, if you get a

637
00:37:34,280 --> 00:37:38,480
five hundred, that doesn't mean that your API end point

638
00:37:38,679 --> 00:37:41,800
ran and there was an error. You shouldn't set the

639
00:37:41,880 --> 00:37:44,760
code to five hundred. That's not for you. Yes, five

640
00:37:44,880 --> 00:37:47,800
hundred is the I don't know where I can't even

641
00:37:47,840 --> 00:37:48,599
reach the sendpoint.

642
00:37:48,719 --> 00:37:48,920
Speaker 3: Yep.

643
00:37:49,039 --> 00:37:52,639
Speaker 1: Yeah, only four hundreds for you, Yes, four hundreds the

644
00:37:52,719 --> 00:37:54,400
last and the year can set.

645
00:37:55,920 --> 00:38:00,159
Speaker 3: So but there's there's a whole thing like in in

646
00:38:02,159 --> 00:38:05,920
the first couple chapters of the book, I talk I

647
00:38:06,119 --> 00:38:11,840
just geek out on HTTP and talk about that and stuff.

648
00:38:12,159 --> 00:38:16,960
But the most interesting chapter I think is the last one,

649
00:38:17,599 --> 00:38:22,960
and it's looking to the future with quick HDP three Yeah,

650
00:38:23,239 --> 00:38:28,159
HTTP three q U I see, and that that is

651
00:38:28,360 --> 00:38:35,679
the protocol that soon will replace TCP, and it will

652
00:38:35,800 --> 00:38:40,119
because TCP is slow, because it does, like Carl said

653
00:38:40,159 --> 00:38:43,639
in the beginning, it does have to do error checking

654
00:38:43,960 --> 00:38:51,119
and everything. Quick is going to replace that and we're

655
00:38:51,159 --> 00:38:57,719
going to have a much quicker Internet in the future soon.

656
00:38:58,039 --> 00:39:01,119
Speaker 2: Over on run as we because server twenty twenty five

657
00:39:01,199 --> 00:39:05,159
now implements h TWB three. We've been talking about these ideas,

658
00:39:05,239 --> 00:39:08,760
although you really upset administrators when you talk about this

659
00:39:08,800 --> 00:39:11,400
stuff because it's integrated with TLS one point three and

660
00:39:11,400 --> 00:39:14,239
so forth, Like it's inherently support secure approach. So it's

661
00:39:14,320 --> 00:39:17,320
like quick end points should be exposed on the Internet.

662
00:39:17,440 --> 00:39:21,599
It's designed to be. But you still have most administrators

663
00:39:21,679 --> 00:39:23,119
everything's behind a firewall.

664
00:39:23,440 --> 00:39:26,280
Speaker 1: This is enough, you're moving. They're cheese man. Yeah, now

665
00:39:26,519 --> 00:39:28,599
they're scared. But you know the other part Quick is

666
00:39:28,719 --> 00:39:34,960
really about TEA about IBV six. Yeah, right, all addresses

667
00:39:35,000 --> 00:39:37,599
being routable, Like we've just gotten to this weird place

668
00:39:37,679 --> 00:39:40,840
because we didn't move to six and still largely haven't,

669
00:39:41,239 --> 00:39:43,559
and so we've done all this network translation, all these

670
00:39:43,639 --> 00:39:46,239
years trying to stretch all the IP four addresses out,

671
00:39:46,239 --> 00:39:48,880
which we've done still. But so we just don't have

672
00:39:48,960 --> 00:39:53,000
this mindset of stuff shraudible. But also just because you're

673
00:39:53,199 --> 00:39:56,440
behind ant firewall doesn't mean you're safe. No, no, none

674
00:39:56,480 --> 00:39:58,360
of this has anything to do with safe. Absolutely not.

675
00:39:58,800 --> 00:40:02,199
Somebody gets into your net work, your toast.

676
00:40:03,119 --> 00:40:06,119
Speaker 3: But but like quick is going to going to go

677
00:40:06,360 --> 00:40:12,360
from multi step handshakes, you know when when a website,

678
00:40:12,519 --> 00:40:15,760
when you get to a website, there's multiple handshakes and stuff,

679
00:40:16,320 --> 00:40:18,599
there's gonna be a single handshake, which is going to

680
00:40:18,639 --> 00:40:22,840
be good. We're going to get rid of the headline

681
00:40:22,920 --> 00:40:27,679
blocking with multiplexing. I mean, there's there's lots of different

682
00:40:27,719 --> 00:40:31,199
stuff that I go through in the in that chapter

683
00:40:31,920 --> 00:40:35,400
to set people up and uh I even have code,

684
00:40:35,679 --> 00:40:39,320
so every chapter in the book also has code out

685
00:40:40,760 --> 00:40:45,039
in the UH in the same GitHub repo that the

686
00:40:45,159 --> 00:40:47,360
book is published from.

687
00:40:48,159 --> 00:40:53,199
Speaker 1: So there's multiplexing. If I remember correctly, that was basically

688
00:40:53,400 --> 00:40:56,000
to send to one IP address and then it gets

689
00:40:56,199 --> 00:40:59,519
multi cast multi casting, I guess is what it is, right,

690
00:41:00,079 --> 00:41:02,880
And that's just to get around the limitations of the

691
00:41:03,039 --> 00:41:05,559
hardware of the time and the network connection speeds and

692
00:41:05,599 --> 00:41:08,679
all that stuff. Now everybody's got a gig or two

693
00:41:08,760 --> 00:41:14,480
gigs in their house, right, And are those protocols still relevant?

694
00:41:15,480 --> 00:41:16,719
Are they still being used?

695
00:41:17,360 --> 00:41:24,000
Speaker 3: Well? But like HTTP one and two still they have

696
00:41:24,599 --> 00:41:30,119
pseudo multiplexing from what I've been able to determine, not

697
00:41:31,000 --> 00:41:39,440
a real modern multiplexing like built into the protocol. I

698
00:41:39,480 --> 00:41:45,079
don't think it was ever built into TCP or even UDP. Yeah,

699
00:41:45,559 --> 00:41:47,480
Richard might know because he knows everything.

700
00:41:48,119 --> 00:41:51,840
Speaker 1: So I was confusing multicasting and multiplexing. I think multiplexing

701
00:41:51,920 --> 00:41:54,119
is where you can just send a bunch of data

702
00:41:54,280 --> 00:41:56,920
out the pipe and it goes to different people because

703
00:41:57,199 --> 00:42:00,960
it's all combined in the same wire, right, Yeah, I

704
00:42:01,039 --> 00:42:04,960
mean multicasting was part of specification for the longest time. Yeah.

705
00:42:05,320 --> 00:42:07,519
Speaker 2: The problem is that routers did didn't implement it, or

706
00:42:07,519 --> 00:42:10,480
often it turned off, right, It had a bunch of limitations,

707
00:42:11,159 --> 00:42:13,599
like it's never really gone where it's supposed to do.

708
00:42:13,679 --> 00:42:16,679
There are these address blocks for both IVV FORORE and

709
00:42:16,880 --> 00:42:18,159
V six for multicasting.

710
00:42:18,320 --> 00:42:19,679
Speaker 1: It's just rare.

711
00:42:19,840 --> 00:42:22,199
Speaker 2: The only place I ever saw of multicast being used

712
00:42:22,280 --> 00:42:26,480
is internally internal networks with large volumes of video data.

713
00:42:26,760 --> 00:42:26,960
Speaker 1: Yeah.

714
00:42:27,079 --> 00:42:30,639
Speaker 3: Well, the other interesting thing with that we'll get with

715
00:42:33,199 --> 00:42:39,440
with HTTP three and quick is it we won't have

716
00:42:40,719 --> 00:42:44,280
drops because of connections. We'll be able to move those

717
00:42:44,360 --> 00:42:51,519
connections very freely. Two different ideas, So hopefully that will

718
00:42:51,639 --> 00:42:57,199
solve some of the like drop connections that we experience

719
00:42:58,000 --> 00:43:00,559
and network programming all the time.

720
00:43:01,239 --> 00:43:04,519
Speaker 1: So do you see any security implications for this new

721
00:43:05,119 --> 00:43:06,000
set of protocols?

722
00:43:06,599 --> 00:43:13,000
Speaker 3: Yep. Uh So instead of having a uh separate t

723
00:43:13,159 --> 00:43:19,320
OS layer, this has uh, this has integrated t OS

724
00:43:19,480 --> 00:43:23,440
one point three encryption into the protocol.

725
00:43:23,719 --> 00:43:25,559
Speaker 1: Do you see t L S or t O S,

726
00:43:26,199 --> 00:43:27,760
t L S c L S.

727
00:43:28,199 --> 00:43:28,480
Speaker 3: Okay.

728
00:43:29,360 --> 00:43:32,800
Speaker 1: And because that way it's not optional, like you can't

729
00:43:33,159 --> 00:43:33,760
use security.

730
00:43:34,440 --> 00:43:36,280
Speaker 3: Everything is is encrypted?

731
00:43:36,559 --> 00:43:40,159
Speaker 1: Good with quick? And what about crypto and not crypto?

732
00:43:40,239 --> 00:43:42,880
What about quantum? Is quantum going to come along and

733
00:43:42,920 --> 00:43:45,159
squash it? Is it quantum safe?

734
00:43:45,440 --> 00:43:49,000
Speaker 3: Quantum? And yeah, I don't know. We were talking to

735
00:43:49,719 --> 00:43:54,920
uh one of the Europe's MVPs in.

736
00:43:55,000 --> 00:43:59,599
Speaker 1: Quantum, uh Cyprian Hannah, And.

737
00:44:02,000 --> 00:44:05,719
Speaker 3: I think quantum. I think quantum will be good for

738
00:44:06,079 --> 00:44:13,440
certain certain needs, but not for like an application like

739
00:44:13,719 --> 00:44:18,639
we built today. It's still we'll still be having what

740
00:44:18,840 --> 00:44:22,800
we're doing. Now, we'll just have quantum kind of giving

741
00:44:22,920 --> 00:44:26,679
information to the application, which then probably will pass it on.

742
00:44:27,079 --> 00:44:27,320
Speaker 1: Yeah.

743
00:44:27,480 --> 00:44:31,800
Speaker 2: But the concern here is someday the biggest quantum computers

744
00:44:31,840 --> 00:44:33,400
not the ones that will actually be useful, because that

745
00:44:33,519 --> 00:44:36,599
those are simpler, we'll be able to crack prime key

746
00:44:36,719 --> 00:44:43,239
based in friptions. Yeah, but TLS has a cipher registry,

747
00:44:43,360 --> 00:44:46,320
so you can switch protocol so you don't have to

748
00:44:46,440 --> 00:44:49,760
use an RSA. You could be moving to a lattice

749
00:44:49,760 --> 00:44:53,079
algorithm or any one of these non prime key algorithms,

750
00:44:53,079 --> 00:44:55,159
so you don't have to change TLS, you just have

751
00:44:55,199 --> 00:44:55,960
to switch the cipher.

752
00:44:56,320 --> 00:44:56,599
Speaker 1: Okay.

753
00:44:57,000 --> 00:45:00,639
Speaker 3: But so in the end, I I really did the

754
00:45:00,679 --> 00:45:03,920
book for me so I could learn all this stuff. Nice,

755
00:45:04,800 --> 00:45:08,119
and I think that's what most people write books about.

756
00:45:08,239 --> 00:45:11,360
Because I learned more about this stuff than probably anyone

757
00:45:12,639 --> 00:45:16,760
that reads it is going to learn. So it's awesome.

758
00:45:16,800 --> 00:45:17,719
Speaker 1: But it was.

759
00:45:18,159 --> 00:45:20,079
Speaker 2: Yeah, you get to drill into each of these things

760
00:45:20,159 --> 00:45:20,920
in great detail.

761
00:45:21,079 --> 00:45:24,119
Speaker 3: Yeah, yeah, you do, and you get to uh and

762
00:45:24,199 --> 00:45:27,679
then you get to release it and everyone tells you

763
00:45:27,920 --> 00:45:32,320
you're wrong about certain things. Yeah, which is awesome because

764
00:45:32,360 --> 00:45:36,000
then I can argue, and I love to argue. From

765
00:45:36,079 --> 00:45:40,599
a family of lawyers, so I love the debate.

766
00:45:40,719 --> 00:45:43,039
Speaker 1: You always learn, I mean, whether you're right or wrong,

767
00:45:43,119 --> 00:45:46,880
you always learn something. Yeah, well you get confirmation or

768
00:45:47,360 --> 00:45:48,800
you learn something new. Yeah.

769
00:45:49,039 --> 00:45:53,800
Speaker 3: Yeah, and uh, there's even I even have a page

770
00:45:53,880 --> 00:45:58,840
on this that if someone tells me a correction, I

771
00:45:59,039 --> 00:46:03,639
actually will correct it and give them credit. So I

772
00:46:03,800 --> 00:46:07,039
have a little updates and corrections where I give credit

773
00:46:07,159 --> 00:46:10,159
to people that tell me I'm wrong and they and

774
00:46:10,239 --> 00:46:14,519
they fix something in the book. So it's all yeah,

775
00:46:14,599 --> 00:46:17,559
and it's all on GitHub, it's all on prs. So

776
00:46:18,119 --> 00:46:22,079
you know what, I I am not a very smart person.

777
00:46:22,599 --> 00:46:26,039
Come on, now, I've just been around. I've been around

778
00:46:26,280 --> 00:46:28,840
long enough. Well, I had a I had a.

779
00:46:29,039 --> 00:46:33,119
Speaker 1: Professor, Brandon, you're gonna edit that out right, No, don't

780
00:46:33,239 --> 00:46:33,920
edit that out.

781
00:46:34,480 --> 00:46:37,400
Speaker 3: I'm not. I mean, there are so many smart people,

782
00:46:37,920 --> 00:46:41,119
and that that's why I love going to conferences and

783
00:46:41,239 --> 00:46:45,320
I love being around because I get to learn so much.

784
00:46:46,360 --> 00:46:47,960
Speaker 1: Like it's just.

785
00:46:49,480 --> 00:46:55,800
Speaker 3: No, I'm smart, but in the crowds that we.

786
00:46:55,920 --> 00:46:59,679
Speaker 1: All, you're like, you're smart enough to know what you

787
00:46:59,760 --> 00:47:00,159
don't know.

788
00:47:01,119 --> 00:47:03,599
Speaker 3: Well, and that's the thing I mean, I think that's

789
00:47:03,960 --> 00:47:07,440
that is being smart. As what you said it's knowing

790
00:47:07,599 --> 00:47:12,280
that you don't know everything, right, and I don't know everything.

791
00:47:12,000 --> 00:47:12,079
Speaker 1: So.

792
00:47:14,920 --> 00:47:17,639
Speaker 2: Nobody knows everything close.

793
00:47:18,119 --> 00:47:20,599
Speaker 3: I don't know. Richard's pretty close close.

794
00:47:21,480 --> 00:47:24,639
Speaker 2: I have a very good memory, as you both know. Yes, yeah,

795
00:47:25,000 --> 00:47:25,440
I haven't.

796
00:47:25,639 --> 00:47:30,800
Speaker 3: I haven't stumped Richard too much about about anything.

797
00:47:31,079 --> 00:47:34,039
Speaker 1: So, but you know, we also run with a group

798
00:47:34,119 --> 00:47:36,000
of people who are inventing the things that we all

799
00:47:36,119 --> 00:47:39,599
count on, right, you know, the Mads, targets of the

800
00:47:39,719 --> 00:47:42,639
world and the like. Who are I think a you know,

801
00:47:42,760 --> 00:47:45,880
different kind of intelligence again that they to be able

802
00:47:45,960 --> 00:47:49,199
to to take everything that's going on and envision the

803
00:47:49,320 --> 00:47:52,320
next version, envision what's possible. It's extraordinary.

804
00:47:53,079 --> 00:47:57,639
Speaker 3: Yeah, yeah, exactly, and and it's it's amazing. That's why

805
00:47:57,679 --> 00:48:02,159
I like computer science and this our industry is because

806
00:48:03,960 --> 00:48:12,559
nothing ever is set in like stone. We're always moving.

807
00:48:14,639 --> 00:48:18,800
And if you take a look at accounting or any

808
00:48:18,880 --> 00:48:23,239
other kind of industry, they're pretty much all set I

809
00:48:23,400 --> 00:48:27,559
will for the most part, but we have a we have.

810
00:48:28,119 --> 00:48:30,119
Speaker 2: That being said, I presume your book ends with in

811
00:48:30,159 --> 00:48:31,679
The correct answer is gr PC.

812
00:48:32,960 --> 00:48:36,079
Speaker 3: Doesn't end in g r PC GRP.

813
00:48:36,440 --> 00:48:39,960
Speaker 1: It's pretty freakin' awesome though, it is because it is.

814
00:48:40,360 --> 00:48:43,320
Speaker 2: It is built on HDP two, right, Like most of

815
00:48:43,360 --> 00:48:47,280
these protocols are are pretty much agnostic. They really we

816
00:48:47,360 --> 00:48:49,440
want to just fine on one point one. But g

817
00:48:49,639 --> 00:48:50,679
RPC needed to.

818
00:48:51,119 --> 00:48:52,239
Speaker 3: Well, yeah, it needed to.

819
00:48:52,679 --> 00:48:55,800
Speaker 1: James Newton King came around and made gRPC web which

820
00:48:55,920 --> 00:48:59,239
runs on HDP one so you can use it in

821
00:48:59,360 --> 00:49:02,760
dot net and it's still awesome. Yeah, yeah, I'm sure

822
00:49:02,760 --> 00:49:03,679
it uses two if it can.

823
00:49:04,159 --> 00:49:09,239
Speaker 3: Yeah. My last chapter is is quick, Yeah, just to

824
00:49:09,519 --> 00:49:11,960
look towards the future. But the one before that is

825
00:49:12,480 --> 00:49:17,000
Someone asked me to do a signal R chapter and

826
00:49:17,159 --> 00:49:21,119
I said okay, because they convinced me that it it

827
00:49:21,280 --> 00:49:28,880
fell in line with all the other kind of networking technologies.

828
00:49:29,039 --> 00:49:31,760
Speaker 2: Because wasn't it just once just a wrapper over web socket.

829
00:49:31,840 --> 00:49:34,159
I mean, I know it's involved into the yeah pretty

830
00:49:34,239 --> 00:49:37,039
much things like that, but once for time socket.

831
00:49:37,039 --> 00:49:39,320
Speaker 1: But here's here's what I don't like about SIGNALARE. I

832
00:49:39,440 --> 00:49:41,719
love signalare and I use it all the time, but

833
00:49:41,880 --> 00:49:45,840
you can't use it in replacement for a robust messaging

834
00:49:45,960 --> 00:49:50,760
system because there's no queue. Right. If you're not there

835
00:49:50,840 --> 00:49:55,360
to receive a message, you missed it, it's lost. You

836
00:49:55,480 --> 00:49:57,480
can't come back online and say, hey, what were the

837
00:49:57,599 --> 00:50:01,480
messages that I missed, right, So you can't just use

838
00:50:01,519 --> 00:50:03,559
it in place of a really robust queuing system.

839
00:50:04,159 --> 00:50:04,360
Speaker 3: Yeah.

840
00:50:04,440 --> 00:50:06,440
Speaker 2: No, that being said, you could use it to call

841
00:50:06,519 --> 00:50:08,239
to a queue, absolutely, you could.

842
00:50:08,559 --> 00:50:10,320
Speaker 1: You could, but you can also.

843
00:50:11,840 --> 00:50:14,360
Speaker 3: Yeah, and that's a great thing about like something like

844
00:50:14,519 --> 00:50:20,159
Kafta or Azure as your messaging queue.

845
00:50:20,599 --> 00:50:23,360
Speaker 1: There's a million of them. Yeah, see, I see our

846
00:50:23,400 --> 00:50:24,239
talk with clements.

847
00:50:25,280 --> 00:50:26,760
Speaker 3: Yeah, yeah, I.

848
00:50:26,800 --> 00:50:30,039
Speaker 1: Think so he's stopped in nine not a million, but yeah,

849
00:50:30,760 --> 00:50:31,519
that's a lot.

850
00:50:32,559 --> 00:50:35,119
Speaker 3: If you want, if you want to guarantee one hundred

851
00:50:35,159 --> 00:50:41,440
percent or ninety nine point of your messages getting to

852
00:50:41,559 --> 00:50:44,679
where they need to go, you need to do message

853
00:50:44,760 --> 00:50:47,239
queueing and have that.

854
00:50:48,599 --> 00:50:52,159
Speaker 2: Just recognize that the internet's not five nine, so you

855
00:50:52,199 --> 00:50:54,719
know you've got to have a mechanism for recovery.

856
00:50:55,159 --> 00:50:56,480
Speaker 3: Yep, yep, exactly.

857
00:50:56,880 --> 00:51:00,920
Speaker 1: Show enough. What's the next thing that you're going to

858
00:51:00,960 --> 00:51:03,000
be working on? Are you done with networking and c

859
00:51:03,199 --> 00:51:04,440
Sharp or is there always more?

860
00:51:05,840 --> 00:51:10,719
Speaker 3: I don't know. I'm done with that right now. I'm

861
00:51:11,559 --> 00:51:14,239
I have two things I'm kind of doing. I'm in

862
00:51:14,360 --> 00:51:17,800
the middle of a forty two day blog post series

863
00:51:18,920 --> 00:51:23,000
explaining rust to c sharp developers.

864
00:51:23,199 --> 00:51:25,000
Speaker 1: Wow, I would love to read that.

865
00:51:25,320 --> 00:51:30,519
Speaker 3: Yeah, so I'm I'll send the link to you, but yeah,

866
00:51:30,559 --> 00:51:33,559
it's out of my blog. Actually, this year I've got

867
00:51:33,760 --> 00:51:37,599
a master plan to have a blog post every day

868
00:51:38,280 --> 00:51:42,880
nice and it's a good idea. So for forty two days,

869
00:51:43,039 --> 00:51:47,920
I think I'm up to day twenty nine. So today

870
00:51:48,199 --> 00:51:51,519
was we were talking about traits in Rust.

871
00:51:52,320 --> 00:51:54,599
Speaker 1: So if you want to know more, you have to

872
00:51:54,880 --> 00:51:57,400
go out, and I'm going to start with read chapter one.

873
00:51:57,519 --> 00:52:01,639
Speaker 3: But Rust is Rust is like my new kind of love.

874
00:52:01,760 --> 00:52:04,880
So I've got two loves right now, Rust and HTMX,

875
00:52:05,480 --> 00:52:11,239
and I'm writing the next quasi online book for HTMX

876
00:52:11,679 --> 00:52:15,719
and then trying to learn Rust and share all this

877
00:52:15,760 --> 00:52:17,719
stuff I'm learning about Rust.

878
00:52:17,840 --> 00:52:22,119
Speaker 1: All right, So real quick, what is your favorite thing

879
00:52:22,159 --> 00:52:24,199
about Rust? What is so great about RUSS that we

880
00:52:24,239 --> 00:52:27,280
should one sentence that you can convince the c sharp

881
00:52:27,320 --> 00:52:28,760
developer to read your blog posts.

882
00:52:29,400 --> 00:52:33,920
Speaker 3: Yeah, so Rust will not let you compile.

883
00:52:35,320 --> 00:52:39,320
Speaker 1: Bad code, So stuff that c Sharp would would discover

884
00:52:39,440 --> 00:52:42,039
at runtime, Rust will discover compile time.

885
00:52:42,440 --> 00:52:47,400
Speaker 3: Yeah, like if you if you write code to divide

886
00:52:48,000 --> 00:52:54,280
one by zero rus, RUSS will not let you compile.

887
00:52:54,360 --> 00:52:56,840
Speaker 1: It will stop because you can do that in c Sharp.

888
00:52:56,920 --> 00:53:00,599
You can make a variable zero zer with a value

889
00:53:00,599 --> 00:53:01,840
of zero and then divide.

890
00:53:01,559 --> 00:53:03,360
Speaker 3: One by it, and that throws an exception.

891
00:53:03,519 --> 00:53:06,920
Speaker 1: Compiler says run time, but now compile time.

892
00:53:07,239 --> 00:53:13,280
Speaker 3: Yeah, yep. The other thing is everything is immutable, which

893
00:53:13,800 --> 00:53:19,199
I think is really is really smart because it allows

894
00:53:19,280 --> 00:53:24,400
you to do multi threading course much easier.

895
00:53:24,679 --> 00:53:27,119
Speaker 1: It's not functional, though, is it. It's not a functional language.

896
00:53:27,880 --> 00:53:35,199
Speaker 3: It can be functional. It's a very different object oriented language.

897
00:53:35,480 --> 00:53:37,639
Like it doesn't have inheritance, so.

898
00:53:37,719 --> 00:53:41,079
Speaker 1: There's no ideas of nulls, right, which is the bugaboo

899
00:53:41,119 --> 00:53:41,639
of C shark.

900
00:53:41,760 --> 00:53:45,679
Speaker 3: There is no nulls. You can't have a null because

901
00:53:46,199 --> 00:53:53,320
whenever a variable is out of scope, it goes away.

902
00:53:54,559 --> 00:53:58,880
And that's the other nice thing is like it doesn't

903
00:53:58,920 --> 00:54:04,960
need a garbage collector because it just anything that's out

904
00:54:04,960 --> 00:54:06,239
of scope goes away.

905
00:54:09,199 --> 00:54:09,519
Speaker 1: Hmm.

906
00:54:09,800 --> 00:54:15,039
Speaker 3: And there's It's just it makes you think differently. Sure,

907
00:54:16,280 --> 00:54:20,559
it's kind of like when I learn React, like React

908
00:54:21,360 --> 00:54:27,519
web development was for me very it was very different.

909
00:54:28,000 --> 00:54:32,440
But but yeah, my thing is you have to keep

910
00:54:32,559 --> 00:54:35,719
learning about new things. Even though I may not use

911
00:54:35,880 --> 00:54:38,320
rust on anything, I want to learn it just to

912
00:54:39,239 --> 00:54:43,039
just to see some different things that I can then

913
00:54:43,119 --> 00:54:49,599
bring back potentially into c sharp and and and maybe

914
00:54:49,679 --> 00:54:55,280
do smarter coding, have a smarter outlook on on my code.

915
00:54:55,360 --> 00:54:59,440
But yeah, Rust is really cool. I'm building out some

916
00:55:00,440 --> 00:55:03,480
some web APIs. I think I'm going to be pushing

917
00:55:03,599 --> 00:55:10,280
some talks around around Rust and doing networking, like maybe

918
00:55:10,400 --> 00:55:15,679
taking all of the chapters in the c Sharp networking

919
00:55:16,159 --> 00:55:19,199
and doing Rust networking.

920
00:55:19,760 --> 00:55:24,000
Speaker 1: Yeah. Interesting. So these blog posts around woodruf dot dev.

921
00:55:24,320 --> 00:55:27,280
Speaker 3: Yeah, they are. And I'll send you guys the link

922
00:55:27,400 --> 00:55:30,360
to I've got a one blog that links to all

923
00:55:30,840 --> 00:55:35,880
forty two days as I am going through, So I'll

924
00:55:35,920 --> 00:55:38,440
send you that page so people can kind of start

925
00:55:38,480 --> 00:55:40,920
from the beginning and work their way down.

926
00:55:41,119 --> 00:55:44,480
Speaker 1: Awesome, I'm really looking forward to that. Cool Chris, what

927
00:55:44,719 --> 00:55:49,719
is the what is what is the next bourbon that

928
00:55:49,840 --> 00:55:51,679
you're going to pour yourself? Oh?

929
00:55:53,159 --> 00:55:57,360
Speaker 3: So, I love there's a there's a new two new

930
00:55:57,440 --> 00:56:04,320
bourbons that I've discovered. RD one is a distillery close

931
00:56:04,480 --> 00:56:10,280
to Lexington, Kentucky. They have a uh and I cannot

932
00:56:10,320 --> 00:56:12,880
remember Richard will know the name of the wood. It's

933
00:56:12,960 --> 00:56:18,000
this Brazilian wood that starts with A, the letter A

934
00:56:18,360 --> 00:56:23,320
and I can't remember the name. But they finish their

935
00:56:23,960 --> 00:56:28,639
their bourbon and barrels made of that wood and it.

936
00:56:28,880 --> 00:56:32,199
Speaker 2: Makes the not oh huh, that's pretty strange.

937
00:56:32,480 --> 00:56:35,280
Speaker 3: No, No, they start oak and then they finish the

938
00:56:35,440 --> 00:56:38,920
last six months or a year in this in this

939
00:56:39,119 --> 00:56:45,360
Brazilian wood, and it makes the bourbon tastes like cinnamon, toast, crunch, cereal.

940
00:56:46,320 --> 00:56:51,199
It is amazing. So Richard, you're going to dev some.

941
00:56:52,320 --> 00:56:54,079
Speaker 2: I think you're talking about amberanna.

942
00:56:54,480 --> 00:56:56,480
Speaker 3: Yeah, Banna, Okay, that's it.

943
00:56:56,719 --> 00:56:58,599
Speaker 1: See you drink enough of it? Do you see the

944
00:56:58,719 --> 00:57:01,679
three little sweetish chef dancing around with the hats on?

945
00:57:02,239 --> 00:57:04,280
Speaker 3: No? Maybe, no, you just pass out.

946
00:57:04,519 --> 00:57:05,960
Speaker 2: So well, it's the only one I can think of.

947
00:57:06,000 --> 00:57:10,199
They usually make kosasha with it, which is their rub

948
00:57:10,280 --> 00:57:14,199
and varry that it's a it's a sugarcane based alcohol. Yeah,

949
00:57:15,039 --> 00:57:17,239
and I know that the high end versions were aged

950
00:57:17,960 --> 00:57:20,039
in Mburanna. But that's the only thing I think of

951
00:57:20,119 --> 00:57:21,519
that's a wood from Brazil.

952
00:57:22,079 --> 00:57:27,280
Speaker 3: Yeah, I think it is that. Okay, And so that bourbon.

953
00:57:27,480 --> 00:57:31,159
And then the other one I've been drinking is one

954
00:57:31,280 --> 00:57:37,480
from a Holiday distilleries and they make a sweet red

955
00:57:38,360 --> 00:57:44,960
wheat using sweet red wheat to make le makers. And yeah,

956
00:57:45,599 --> 00:57:51,079
but there's they have some America. They call it American

957
00:57:51,159 --> 00:57:56,599
whiskies because they don't use fifty bourbon has to be

958
00:57:56,679 --> 00:58:00,559
at least fifty one corn. Some of this is a

959
00:58:00,679 --> 00:58:06,440
majority is wheat. So I'm really getting into They can't

960
00:58:06,480 --> 00:58:09,280
call it bourbon, so they call it American whiskey. So

961
00:58:09,400 --> 00:58:14,239
I'm really getting into the weeded American whiskeyes because they're

962
00:58:14,320 --> 00:58:18,760
real sweet and uh, they're kind of the opposite of rise.

963
00:58:19,440 --> 00:58:23,519
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
But yeah, I'm with you, so.

965
00:58:26,480 --> 00:58:31,519
Speaker 3: Yeah, yeah, So I'm I'm bringing two bottles over to Stockholm.

966
00:58:31,679 --> 00:58:32,920
Def some you're gonna be there.

967
00:58:33,639 --> 00:58:34,119
Speaker 1: I'll be there.

968
00:58:34,719 --> 00:58:36,559
Speaker 3: Yeah, you'll be there, Richard, or you.

969
00:58:36,599 --> 00:58:37,199
Speaker 1: Can be I will.

970
00:58:37,199 --> 00:58:39,559
Speaker 2: I'll be coming straight up from South Africa, not going

971
00:58:39,599 --> 00:58:40,280
to any os.

972
00:58:40,679 --> 00:58:43,440
Speaker 3: Okay, well, I've I've got two bottles. I've got a

973
00:58:43,519 --> 00:58:46,559
bottle of this RD one that I want to share,

974
00:58:46,599 --> 00:58:49,440
and then I need to figure out the other one

975
00:58:49,519 --> 00:58:51,199
I'm going to share. I think I'm going to bring

976
00:58:52,039 --> 00:58:54,840
one of these weeded whiskeys with me.

977
00:58:55,679 --> 00:58:58,199
Speaker 1: So we are going to see the three sweetish chefs

978
00:58:58,280 --> 00:58:59,760
dancing around going see you know, I man?

979
00:59:01,840 --> 00:59:05,920
Speaker 3: Yeah, So but those are those are the new ones.

980
00:59:06,039 --> 00:59:10,400
There's there's so many cool, new new bourbons and the

981
00:59:10,480 --> 00:59:13,760
price is starting to come down to Because so.

982
00:59:13,840 --> 00:59:16,000
Speaker 1: You're in Lexington, did you say, supply.

983
00:59:16,639 --> 00:59:19,920
Speaker 3: I lived I lived in Lexington for three years. Now

984
00:59:20,000 --> 00:59:21,639
I'm in Grand Rapids, Michigan.

985
00:59:21,960 --> 00:59:26,480
Speaker 1: Okay, so yeah, well, being in Kentucky, of course, we're

986
00:59:26,519 --> 00:59:28,960
trying to educate people about bourbon a little bit, especially

987
00:59:29,119 --> 00:59:31,400
those outside the United States, and we have a significant

988
00:59:32,199 --> 00:59:37,199
number of European listeners. Bourbon doesn't have to be made

989
00:59:37,280 --> 00:59:40,079
in Kentucky, as Chris was saying, it has to be

990
00:59:40,239 --> 00:59:42,480
made in America. Has to be at least fifty one

991
00:59:42,519 --> 00:59:46,559
percent corn, and it also has this weird rule that

992
00:59:46,719 --> 00:59:52,800
it has to be aged in virgin white American oak

993
00:59:53,079 --> 00:59:56,840
casks that have been charred for a certain amount of

994
00:59:56,920 --> 01:00:00,719
time minimum three years, three years, and then after that

995
01:00:01,320 --> 01:00:06,440
they can finish in anything like port wine barrels. It

996
01:00:06,599 --> 01:00:10,280
used to be only but they yeah, Angels Envy started

997
01:00:10,320 --> 01:00:11,639
doing the sherry finishes and.

998
01:00:11,840 --> 01:00:14,840
Speaker 3: Yeah and yep, yeah, yep.

999
01:00:15,400 --> 01:00:17,599
Speaker 1: So anyway, that is one of the one of the

1000
01:00:17,679 --> 01:00:20,079
things that America has brought to the world is it's

1001
01:00:20,119 --> 01:00:23,360
American whiskey. Right, You've got Scotch whiskey, got Irish Canadian.

1002
01:00:23,880 --> 01:00:27,679
We have American whiskey. It's called Bourbon. There you go. Yeah,

1003
01:00:27,719 --> 01:00:29,760
and if you go listen to the series I've done

1004
01:00:29,800 --> 01:00:32,400
on Windows Weekly that they've clipped off his YouTube videos,

1005
01:00:32,440 --> 01:00:36,079
I explain all of them. That's so cool. And we

1006
01:00:36,199 --> 01:00:39,599
also did a show on Bourbon after we came back

1007
01:00:39,760 --> 01:00:43,039
from the road trip or No Code Palooza. Yeah, we

1008
01:00:43,119 --> 01:00:44,199
did a geek out on Bourbon.

1009
01:00:44,280 --> 01:00:46,599
Speaker 3: Oh I remember that. Yeah, that was a good episode.

1010
01:00:46,920 --> 01:00:49,880
Speaker 1: Yeah, good stuff. Chris Well, it's great to have you

1011
01:00:50,000 --> 01:00:51,760
on the show finally after all these years.

1012
01:00:51,880 --> 01:00:52,719
Speaker 3: Finally, thank you.

1013
01:00:52,960 --> 01:00:54,239
Speaker 1: Yep, and we'll do it again.

1014
01:00:54,400 --> 01:00:57,320
Speaker 3: I feel I feel my life is complete now, so

1015
01:00:57,519 --> 01:01:03,000
mine too. My career, my technical career is complete.

1016
01:01:02,719 --> 01:01:04,960
Speaker 1: So mine too. And I really mean that, like I

1017
01:01:05,159 --> 01:01:07,440
really enjoyed sort of geeking out and going back in

1018
01:01:07,559 --> 01:01:10,360
time with all of the stuff that I used to

1019
01:01:10,440 --> 01:01:13,599
think about. And it's good to think about it again. Yeah,

1020
01:01:13,840 --> 01:01:15,119
especially for the young kids.

1021
01:01:15,400 --> 01:01:19,039
Speaker 3: Everything comes around, everything comes around, that goes around.

1022
01:01:19,239 --> 01:01:22,400
Speaker 1: So good stuff. So yep, all right, thanks again, and

1023
01:01:22,880 --> 01:01:25,400
we'll talk to you, dear listener next time on dot

1024
01:01:25,519 --> 01:01:48,039
net rocks. Dot net Rocks is brought to you by

1025
01:01:48,159 --> 01:01:52,800
Franklin's Net and produced by Pop Studios, a full service audio,

1026
01:01:52,960 --> 01:01:57,360
video and post production facility located physically in New London, Connecticut,

1027
01:01:57,679 --> 01:02:01,840
and of course in the cloud online at pwop dot com.

1028
01:02:02,679 --> 01:02:04,719
Visit our website at d O T N E t

1029
01:02:05,039 --> 01:02:09,000
R O c k S dot com for RSS feeds, downloads,

1030
01:02:09,199 --> 01:02:12,840
mobile apps, comments, and access to the full archives going

1031
01:02:12,920 --> 01:02:16,320
back to show number one, recorded in September two thousand

1032
01:02:16,320 --> 01:02:18,960
and two. And make sure you check out our sponsors.

1033
01:02:19,159 --> 01:02:21,920
They keep us in business. Now go write some code.

1034
01:02:22,519 --> 01:02:26,000
See you next time you got Jamtlevans

