1
00:00:01,080 --> 00:00:04,799
How'd you like to listen to dot
net rocks with no ads? Easy?

2
00:00:05,360 --> 00:00:09,480
Become a patron for just five dollars
a month. You get access to a

3
00:00:09,480 --> 00:00:14,279
private RSS feed where all the shows
have no ads. Twenty dollars a month.

4
00:00:14,279 --> 00:00:18,440
We'll get you that and a special
dot net Rocks patron mug. Sign

5
00:00:18,519 --> 00:00:36,000
up now at Patreon dot dot NetRocks
dot com. Welcome back to dot net

6
00:00:36,119 --> 00:00:39,000
rocks. This is Carl Franklin and
this is Richard Campbell. We're here in

7
00:00:39,039 --> 00:00:45,359
our respective studios. I saw you
on Windows Weekly yesterday. Oh yeah,

8
00:00:45,399 --> 00:00:47,960
you watched the live stream of that. I did, So tell me what

9
00:00:48,000 --> 00:00:52,399
you're doing on Windows Weekly besides you
know, stirring up hat and discontent and

10
00:00:52,399 --> 00:00:56,640
whiskey. Yet I mean, in
the end, I've come to appreciate that

11
00:00:56,719 --> 00:01:00,600
Window. This all happened because Mary
Joe Foley left zd net. She went

12
00:01:00,640 --> 00:01:07,799
to work for Directions on Microsoft,
which is an analyst group mostly ex microsofties,

13
00:01:07,959 --> 00:01:14,000
and she's really their sort of lead
writer organizer, does the blogs and

14
00:01:14,000 --> 00:01:17,400
things like that. She super loves
the new roles like super Happy, but

15
00:01:17,439 --> 00:01:19,959
Windows Weekly was intmpatible with that,
and so Paul and Leo were doing it

16
00:01:21,000 --> 00:01:25,239
on their own for a few weeks, and Paul was so sad. You

17
00:01:25,239 --> 00:01:27,040
guys are buddies from way. We've
been buzzy for a long time. And

18
00:01:27,120 --> 00:01:30,719
so I came in and guested a
couple of times, and actually it was

19
00:01:30,799 --> 00:01:33,560
Leo. He said, like,
what are we going to do to make

20
00:01:33,599 --> 00:01:36,359
it permanent? That's kind of how
it worked with you and me and Dot

21
00:01:36,439 --> 00:01:40,680
Rocks. Isn't it that you were
Richard the toy boy? And then it's

22
00:01:40,719 --> 00:01:47,680
like, you know, how about
Yeah, that's very cool. I really

23
00:01:47,760 --> 00:01:49,519
enjoyed a conversation. It was great. Yeah, you know, Paul is

24
00:01:49,560 --> 00:01:53,000
a prolific writer, like a dozen
articles a week. It's insane, and

25
00:01:53,079 --> 00:01:57,879
in a lot of ways, the
show is basically going over what Paul's written

26
00:01:57,879 --> 00:02:00,239
that week, which is fine.
You know, I'm familiar with most of

27
00:02:00,239 --> 00:02:04,200
the subjects. I have opinions,
and it's easy to make fun of Paul.

28
00:02:05,680 --> 00:02:08,039
And then they added the you know, MJ used to do this closing

29
00:02:08,080 --> 00:02:12,000
bit on her malt liquor of the
week, her beer of the week.

30
00:02:12,199 --> 00:02:15,120
She has, like her craft beer. So they asked if I could put

31
00:02:15,120 --> 00:02:16,360
something there, and it's like,
how about brown liquor? And of course

32
00:02:16,400 --> 00:02:22,680
he's never forgotten you and I And
he refers to this day as the Bourbon

33
00:02:22,759 --> 00:02:30,560
Brothers going up there after a build
and they cracked that abler abunda the cask

34
00:02:30,639 --> 00:02:35,039
string. Oh my gosh, yeah, that stuff. He was gooned by

35
00:02:35,080 --> 00:02:37,840
the time we were done. Yeah, they ran a couple of clips of

36
00:02:37,919 --> 00:02:40,960
that day right where I think Paul
said something along the lines of I feel

37
00:02:40,960 --> 00:02:49,120
like I've been shot in the tongue. Anyway, So every week now I

38
00:02:49,240 --> 00:02:53,000
do a different thing on whiskey,
and they'd been clipping them and picking him

39
00:02:53,000 --> 00:02:59,439
into a playlist on YouTube as well, including over eight parts I described Scottish

40
00:02:59,439 --> 00:03:02,639
whiskey creation in detail, and if
you can buy those eight bits together two

41
00:03:02,680 --> 00:03:06,240
and a half hours. So basically, there's a two and a half hour

42
00:03:06,319 --> 00:03:08,599
geek out on making Scottish whiskey out
there if you want it. So you

43
00:03:08,759 --> 00:03:14,080
sent me a link to the live
recording. Yeah, but you guys don't

44
00:03:14,199 --> 00:03:17,120
publish a lot a live recording.
You publish an edited recording, right,

45
00:03:17,199 --> 00:03:21,520
Yeah, Yeah, they publish a
podcast essentially. Yeah, but yeah,

46
00:03:21,599 --> 00:03:24,120
it's still it's just that they also
stream it in some respects, and like

47
00:03:24,199 --> 00:03:29,159
every podcast, they're struggling financially Yeah. So they where they used to literally

48
00:03:29,159 --> 00:03:30,639
have a twenty four hour stream with
inter socials and stuff. They've cut that

49
00:03:30,719 --> 00:03:35,240
back to we just stream their recordings. Well, it's really fun, and

50
00:03:35,319 --> 00:03:38,560
I encourage all the dot ne Rocks
listeners to go check out Windows Weekly,

51
00:03:38,919 --> 00:03:43,400
just google it. It's at twit
dot tv and you can get more Richard

52
00:03:43,439 --> 00:03:57,719
Cammell that way, let's let's get
into better no framework. Awesome, All

53
00:03:57,800 --> 00:04:00,159
right, man, what do you
got? So a friend of mine said,

54
00:04:00,240 --> 00:04:04,280
have you seen this? It's a
YouTube channel YouTube dot com slash at

55
00:04:04,439 --> 00:04:11,719
Jim Browning. Jim Browning is a
is a faux name, a nom de

56
00:04:11,800 --> 00:04:16,800
plume. This is an anonymous guy
who finds scammers. Oh yeah, and

57
00:04:17,639 --> 00:04:25,800
and confronts them and in some cases
gets them convicted. Yeah, so tracking

58
00:04:25,800 --> 00:04:29,519
and identifying scammers who knock on my
front door, call me or shove pop

59
00:04:29,639 --> 00:04:33,399
ups onto my computer screen. Yeah. And there's a series of amazing videos

60
00:04:33,439 --> 00:04:36,839
here where he does just that.
Yeah, I know. And he's been

61
00:04:38,040 --> 00:04:43,240
like literally unraveled a huge scam group
in India. Like it's amazing, it's

62
00:04:43,399 --> 00:04:46,120
remarkable the work, But there is
a certain amount of just the shoden froud

63
00:04:46,160 --> 00:04:51,839
of the scammer being scam Absolutely,
I love it. You know, schadenfreud

64
00:04:51,959 --> 00:04:58,800
is the perfect word here. Yeah, so anyway, I really do appreciate

65
00:04:58,839 --> 00:05:00,759
that. And I have also noticed, and you may have noticed this,

66
00:05:00,839 --> 00:05:05,399
and I'm going to bring it up
on security this week later today that if

67
00:05:05,399 --> 00:05:10,720
you have any kind of Facebook page, not a personal page, but a

68
00:05:10,720 --> 00:05:15,279
Facebook page, a business page.
Irene is already nodding her head. She

69
00:05:15,360 --> 00:05:18,800
knows exactly what I'm talking about.
There's this scam that is going on where

70
00:05:19,040 --> 00:05:25,920
people send you, you know,
instant messages, Facebook messages saying they're representing

71
00:05:26,000 --> 00:05:30,000
Facebook and your page is about to
be shut down for some copyright infringements or

72
00:05:30,000 --> 00:05:33,519
whatever unless you respond to this,
and blah blah blah. And at first

73
00:05:33,519 --> 00:05:38,800
it really confused me because it was
very you know, official looking, and

74
00:05:38,839 --> 00:05:43,480
then I noticed I was getting the
same message from like Bob and you know,

75
00:05:43,720 --> 00:05:47,079
Ahmed and all these other people,
and I'm like, okay, this

76
00:05:47,160 --> 00:05:51,959
isn't real. Well, and the
accounts get deleted pretty quickly too, right,

77
00:05:53,079 --> 00:05:55,439
Like, yeah they do, but
I mean, talk about shadenfreud.

78
00:05:55,519 --> 00:06:00,759
I just have a strange urge to
reply bite me. Yeah, you know,

79
00:06:00,360 --> 00:06:04,360
don't, don't. But don't.
Don't do it. Yeah, don't

80
00:06:04,399 --> 00:06:08,439
you don't roll around with pigs.
Not only will you not get anywhere,

81
00:06:08,480 --> 00:06:11,800
but the pig enjoys it. Well. Dottna Rocks has gotten just a spate

82
00:06:11,920 --> 00:06:14,959
of these messages. So if you're
any of the people who sent them to

83
00:06:15,000 --> 00:06:20,240
me, bite me. And Franklin
Brothers Band, another page that I have

84
00:06:20,399 --> 00:06:26,920
has gotten slews of them, Like
I'm talking maybe thirty forty of them.

85
00:06:27,319 --> 00:06:30,560
Bite me, bite me, bite
me. Well, and you imagine,

86
00:06:30,560 --> 00:06:32,879
when you're not a technical person,
just how freaky this must be. Like

87
00:06:32,920 --> 00:06:36,720
it must be effective. But it
speaks to the state of spacebook, isn't

88
00:06:36,720 --> 00:06:41,800
it. It's just a cesspool.
Now. I like Spacebook better than Facebook.

89
00:06:41,839 --> 00:06:45,199
Actually that's a really much better word
for it. Yeah, because it's

90
00:06:45,240 --> 00:06:48,279
out and outer space sometimes you would
hope. Eh. Anyway, that's what

91
00:06:48,319 --> 00:06:50,720
I got. Richard who's talking to
us today, grabbed a comment off for

92
00:06:50,759 --> 00:06:55,680
show seventeen ninety seven, which we
did back in June of twenty two with

93
00:06:55,759 --> 00:06:58,800
one erneus you Tube. Maybe you've
heard her, never heard of her?

94
00:06:58,879 --> 00:07:01,199
Yeah, And oddly enough we were
talking about gRPC, who would have funken

95
00:07:05,920 --> 00:07:10,959
anyway. This comment comes from codepouter
otherwise known as Richard Rukima, who's also

96
00:07:11,040 --> 00:07:14,439
been a guest on the show back
in March twenty two and was also a

97
00:07:14,480 --> 00:07:18,680
student at Codena Castle in Tuscany.
Oh, I didn't know that. That's

98
00:07:18,720 --> 00:07:21,399
awesome. Yeah, he came to
Tuscany. It took me a while to

99
00:07:21,439 --> 00:07:25,199
figure out who he was because I've
never seen him in person. Yeah,

100
00:07:25,240 --> 00:07:27,279
yeah, he could get him,
get him out of character, right,

101
00:07:27,319 --> 00:07:29,759
What a great guy though, And
he's in your neck of the witz.

102
00:07:29,800 --> 00:07:33,240
I think, yes, somewhere nearby, not too close. I have deble

103
00:07:33,319 --> 00:07:39,439
check, but it might be in
said Alberta. Anyway. His comment is

104
00:07:39,759 --> 00:07:43,920
in reference to gRPC, where he
says you might want to review proto buffers.

105
00:07:44,319 --> 00:07:47,920
Yeah, for tro RPC and developers, and specifically the dot net library

106
00:07:47,959 --> 00:07:51,720
for proto buffers. I never understood
why I should create a proto buff file

107
00:07:51,759 --> 00:07:56,800
to describe a message in all the
languages from a dot apps which uses my

108
00:07:56,879 --> 00:08:01,160
ap API for my application. So
it's just one of those utilities. And

109
00:08:01,199 --> 00:08:05,879
I'll include a link on the show
to dealing with idiomatic dot Net with the

110
00:08:05,120 --> 00:08:09,160
protocol buffer's library. So yeah,
we went over at gRPC and Blazer in

111
00:08:09,240 --> 00:08:13,360
the masterclass thing, right, and
so uh yeah, protobuff is just part

112
00:08:13,360 --> 00:08:16,920
of the thing. That's the protocol
that gRPC uses. Yes, it's the

113
00:08:16,920 --> 00:08:20,040
way to go. So, Richard, thanks so much for your comment.

114
00:08:20,079 --> 00:08:22,680
I'm pretty sure you get a copy
of music Code by but ping me anyway,

115
00:08:24,240 --> 00:08:26,040
and we'll hook you up. And
if you'd like a copy of music

116
00:08:26,040 --> 00:08:30,120
Code buy, write a comment on
the website at dot NetRocks dot com or

117
00:08:30,199 --> 00:08:31,360
on the facebooks you publish every show
there, and if you comment there and

118
00:08:31,360 --> 00:08:33,480
everybody on the show, we'll send
you a copy of music Go buy.

119
00:08:33,679 --> 00:08:37,519
And you could also send us a
tweet or an x or whatever the hell

120
00:08:37,600 --> 00:08:41,080
they call him these days. I'm
at Carl Franklin, He's at Rich Campbell,

121
00:08:41,559 --> 00:08:43,720
or you could be like all the
other cool kids and go to mastonon

122
00:08:45,039 --> 00:08:48,639
I'm at Carl Franklin at tech hub
dot social, and I'm Rich Campbell at

123
00:08:48,679 --> 00:08:52,279
Mastodon dot social. Send us a
toot or tweet or an ex or whatever

124
00:08:52,320 --> 00:08:56,759
the bleep you call those things now. Yeah, it'll always be Twitter to

125
00:08:56,799 --> 00:08:58,279
me. I'm sorry, Elin,
Yeah, I'm okay with that. You

126
00:08:58,519 --> 00:09:03,120
You're evil. Plan is not worth
really that story? Yeah, no,

127
00:09:03,159 --> 00:09:07,399
okay, I'm not sorry. I'll
say it like my wife, my wife

128
00:09:07,519 --> 00:09:11,559
Kelly, she has a habit of
apologizing for no parent reason, you know,

129
00:09:11,120 --> 00:09:16,080
anything. And so she's realized this
and now she says sorry, not

130
00:09:16,240 --> 00:09:24,440
sorry, fuck you constantly. It's
the cutest thing. That's pretty good.

131
00:09:26,159 --> 00:09:30,320
She can't stop the reflex, but
she can follow it up. She's right,

132
00:09:30,480 --> 00:09:33,240
exactly. It's like a napid thought. And now it's just becoming one

133
00:09:33,240 --> 00:09:37,759
of those family things. All right, let's bring on Arena back for more.

134
00:09:37,960 --> 00:09:43,240
Arena Skirt two is a Microsoft MVP
for Developer Technologies, the Software architect,

135
00:09:43,240 --> 00:09:48,720
an independent consultant, and Microsoft certified
trainer, always in a quest for

136
00:09:48,720 --> 00:09:52,879
the latest trends and best practices in
architecture, dot net and the world around

137
00:09:52,919 --> 00:09:56,960
it. Also having more than two
thousand hours of delivered trainings, classings,

138
00:09:58,000 --> 00:10:01,519
workshops and presentations, she loves to
help others grow. Twice a year for

139
00:10:01,600 --> 00:10:05,320
five months, she teaches dot net
and c sharp to people that either want

140
00:10:05,360 --> 00:10:11,279
to switch careers and get into software
development or simply learn new things very very

141
00:10:11,279 --> 00:10:16,320
cool. She tries to lead by
example and believes in the importance of growing

142
00:10:16,360 --> 00:10:20,720
tech communities. She is the co
founder of dot net Yash user group that's

143
00:10:20,960 --> 00:10:30,519
I a SI Yash of course,
and dot Netdays dot ro conference where she

144
00:10:30,600 --> 00:10:33,759
tries to gather people that are willing
to share their knowledge with others or gather

145
00:10:33,879 --> 00:10:37,360
around in the community, and from
time to time she publishes articles on her

146
00:10:37,399 --> 00:10:46,120
blog Irena dot codes awesome domain there
codes. I got to look into that,

147
00:10:46,559 --> 00:10:50,759
Carl Frank, Oh, yeah,
welcome back. Thank you for having

148
00:10:50,759 --> 00:10:54,080
me. You're welcome. Great heard
of this dot Net Days dot ro.

149
00:10:56,600 --> 00:11:01,480
I wonder why, all right,
tell everybody come on, I'm coming to

150
00:11:01,559 --> 00:11:05,039
Yash. I'm gonna come. Yeah, I'm going to Yash. I've never

151
00:11:05,080 --> 00:11:07,639
been. I've been, you know, I've been to Cluge, I've been

152
00:11:07,679 --> 00:11:11,600
around Romania, but I've never been. I've done any Yeah, I haven't

153
00:11:11,600 --> 00:11:13,399
done gone to Yash. I'm like, I got to go to Yash.

154
00:11:13,879 --> 00:11:16,639
I don't know that I'll go to
Moldova while I'm there, because it's very

155
00:11:16,639 --> 00:11:20,000
close to Moldova. But it's kind
of a sketchy time to go to Moldova.

156
00:11:20,120 --> 00:11:24,240
Right now, I have a yash
on my wrist and you put a

157
00:11:24,240 --> 00:11:28,159
little ointment on it and it's going
away. So we're talking gRPC here.

158
00:11:28,320 --> 00:11:35,559
It's been a spell more than a
year last time we checked in, and

159
00:11:35,559 --> 00:11:37,399
and you've been writing new course words, stuff like there's more to no,

160
00:11:37,799 --> 00:11:43,120
right, yeah, there's more to
know and the technology is well well established.

161
00:11:43,360 --> 00:11:48,600
No, no, so it's in
the last year. There's been some

162
00:11:48,639 --> 00:11:54,879
innovations in gRPC, more stabilizations,
if that's a word, now I get

163
00:11:54,919 --> 00:11:58,200
that. Yeah, so gRPC is
here to stay if you ask me.

164
00:11:58,639 --> 00:12:03,600
And we're really talking gRPC web,
right, because that's what most developers use.

165
00:12:03,039 --> 00:12:07,080
Is that true? No, No, we're talking gRPC like back end

166
00:12:07,159 --> 00:12:13,440
technology, okay, for server for
the server bit server server, yeah,

167
00:12:13,799 --> 00:12:20,000
micro services, yeah, okay,
so gRPC web obviously for browsers. So

168
00:12:20,240 --> 00:12:26,759
it started at Google. But they
claim that gRPC is a recursive acronym called

169
00:12:26,600 --> 00:12:31,480
gRPC Remote Procedure Calls and so if
you go there, gRPC io, that's

170
00:12:31,480 --> 00:12:35,080
what they say. But they built
it for, as you say, micro

171
00:12:35,159 --> 00:12:41,480
services, you know, service to
service kind of interaction which doesn't require HTTP.

172
00:12:43,000 --> 00:12:48,879
Where they built it to fool people
that a distributed system is the monolith.

173
00:12:48,519 --> 00:12:54,879
Like the way they are behaving.
The g doesn't stand for Google.

174
00:12:56,240 --> 00:13:00,639
It used to, they claim it
doesn't now because they opened it up.

175
00:13:00,639 --> 00:13:03,360
I think you know, it's just
kind of a wink wink, you know.

176
00:13:03,440 --> 00:13:09,600
Yeah, it's just active re you
know, re acronym, yeah,

177
00:13:09,639 --> 00:13:13,080
reassigning. Yeah, that's pretty funny. So what's new? So the tooling

178
00:13:13,240 --> 00:13:20,360
is new and stable, which makes
me, uh, very glad that well

179
00:13:20,639 --> 00:13:28,000
Visual Studio caught up with everything that
happens in RPC, so now you don't

180
00:13:28,039 --> 00:13:33,919
have like problems with types not being
recognized and stuff like that. Okay,

181
00:13:33,960 --> 00:13:39,480
awesome. Uh. And also you
have like an option in Visual Studio right

182
00:13:39,519 --> 00:13:45,440
click at reference and you'll search and
find the proto file and it will automatically

183
00:13:45,440 --> 00:13:50,799
install some packages for you. And
that's awesome because we want straightforward things.

184
00:13:50,840 --> 00:13:54,879
We do not want to remember what
packages we need to install. And there's

185
00:13:54,919 --> 00:14:00,960
a bunch of them in for the
different places too. Yeah, you talked

186
00:14:00,960 --> 00:14:05,759
about types when you when you generate
a client or a service, you have

187
00:14:05,799 --> 00:14:11,360
to define these types in a in
a protofile, as Richard Rukumo was saying.

188
00:14:11,919 --> 00:14:16,200
And those types don't you know,
if the the actual types like string

189
00:14:16,360 --> 00:14:20,440
in whatever. Some of them map, but a lot of them don't.

190
00:14:20,679 --> 00:14:26,639
And I always find it difficult if
I'm doing anything complex to well, nowadays

191
00:14:26,639 --> 00:14:31,320
I ask chat GPT, but usually
I would go browsing for it. Uh.

192
00:14:31,519 --> 00:14:35,399
You know what is the proto type
that matches, you know, a

193
00:14:35,559 --> 00:14:39,080
double array or something like that.
Well, basically they they try to help

194
00:14:39,159 --> 00:14:46,360
us with something that is called Google
well Known types, which is the common

195
00:14:46,399 --> 00:14:52,039
ground between all languages out there.
But if you need something specific only for

196
00:14:52,120 --> 00:14:56,159
a specific language, you'll have to
mimic and code it yourself. In broad

197
00:14:56,200 --> 00:15:00,840
above. Yeah, you create your
own message type that has whatever. Yeah,

198
00:15:00,960 --> 00:15:05,080
I mean the doc liarly says protocol
buffers well known types. Yeah.

199
00:15:05,840 --> 00:15:07,919
Yeah, I presume as soon as
you go off this list, now you've

200
00:15:07,919 --> 00:15:11,159
got to figure it out. Yeah, but this is what proto buff's all

201
00:15:11,200 --> 00:15:16,159
about, right, Yeah, it's
not a language, it's a code generation

202
00:15:16,519 --> 00:15:22,840
template really yep. So basically the
fact that we're writing and defining the services

203
00:15:22,840 --> 00:15:28,000
and the types in proto buffs and
it makes us understand the new syntax and

204
00:15:28,039 --> 00:15:31,960
new types and all. It's overhead
for us. But you can also have

205
00:15:33,039 --> 00:15:37,639
the option of starting with your own
existing types and feels like code first gRPC

206
00:15:39,360 --> 00:15:45,960
due to a nice library written by
Mark Gravelle, which allows you to reuse

207
00:15:46,120 --> 00:15:50,600
if you have WCS for example and
you have types that are adnotating with data

208
00:15:50,600 --> 00:15:54,919
contracts and stuff like that, you
can get rid of proto buffs. That

209
00:15:56,039 --> 00:15:58,840
was one of the first things that
I wrote as well, and I showed

210
00:15:58,879 --> 00:16:02,279
it on Blazer Train. Back when
I first learned gRPC. It was like,

211
00:16:02,320 --> 00:16:03,480
well, what if I've already got, like, say, an API

212
00:16:03,600 --> 00:16:08,000
layer, I've already got my types
and I have to redo them and now

213
00:16:08,000 --> 00:16:12,360
I've got duplicate code and all that
stuff. So, yeah, it's a

214
00:16:12,399 --> 00:16:21,000
smart idea, just you make a
code generator generator kind of. I'm sorry

215
00:16:21,039 --> 00:16:23,360
when you say it that way.
It doesn't feel like a smart idea anymore.

216
00:16:25,600 --> 00:16:29,600
I know, it's weird. It's
a lot of weirdness. Yeah,

217
00:16:29,639 --> 00:16:33,320
but there's a problem. There's problems
there because you have to you know,

218
00:16:33,519 --> 00:16:38,000
every time that you get a call
or a bunch of variables, you have

219
00:16:38,080 --> 00:16:42,399
to convert them in the service,
right, so there has to be stuff

220
00:16:42,559 --> 00:16:47,960
in there that runs at run time, and you know, you have to

221
00:16:48,120 --> 00:16:52,639
take into account all the types.
It's a lot. Yeah, but basically,

222
00:16:52,759 --> 00:17:00,960
let's be honest, we all kind
of use basic types with our other

223
00:17:00,039 --> 00:17:08,680
types custom ones. So as long
as those are like interoperable where they can

224
00:17:08,960 --> 00:17:15,359
work with NOGS or something else.
Sure, Yeah, back to why do

225
00:17:15,440 --> 00:17:18,319
we build types? Why do we
do this? How does this really save

226
00:17:18,400 --> 00:17:22,279
us pain? It is just because
it's easier to pass in APIs. Basically,

227
00:17:22,359 --> 00:17:26,680
once you start with gRPC, you
have one source of truth, or

228
00:17:26,000 --> 00:17:30,279
you should have, like this protocol
buffers file. And the point of gRPC,

229
00:17:32,000 --> 00:17:36,839
beyond the fact that it uses a
binary serialization, is that now you

230
00:17:36,880 --> 00:17:44,759
can have a c sharp consumer that
talks with an OGS server and the only

231
00:17:44,799 --> 00:17:48,440
thing that these two have in common
is that protocol buffers file. That You're

232
00:17:48,519 --> 00:17:51,839
right, right, And that's kind
of the magical part about it is.

233
00:17:52,039 --> 00:17:56,160
Yeah, this is cross platform without
WS starring a whole lot of XML.

234
00:17:56,319 --> 00:18:00,119
Oh yeah, and performance is amazing. I mean I did some comparisons using

235
00:18:00,160 --> 00:18:07,200
gRPC web in Blazer to download five
thousand records from an API and then from

236
00:18:07,319 --> 00:18:12,880
gRPC, and it was like the
second and a half compared to like two

237
00:18:12,920 --> 00:18:18,640
hundred and fifty milliseconds. It's that
different. Yeah, and that's on the

238
00:18:18,680 --> 00:18:22,079
same sheme. But still, I
mean, that kind of ratio is what

239
00:18:22,119 --> 00:18:26,160
you can expect. And yet how
is the adoption arena, Like I still

240
00:18:26,160 --> 00:18:32,000
don't see the huge amount of tractions
For gRPC, there isn't a huge amount

241
00:18:32,039 --> 00:18:37,519
of traction. What I'm seeing in
my workshops and at the conferences, I'm

242
00:18:37,559 --> 00:18:41,880
hearing people talking about transitioning from WCF
to gRPC. Right, this is the

243
00:18:41,920 --> 00:18:48,119
most common scenario, and simply because
they want to get to Core. Yeah,

244
00:18:48,160 --> 00:18:52,799
and WCF is not going indeed,
and nobody's waiting for the open source

245
00:18:52,839 --> 00:18:59,480
version WCF exactly, and why would
you Anyway, there's a whole lot of

246
00:18:59,519 --> 00:19:03,759
pain. I don't know if you
guys remember, but uh yeah, configuration

247
00:19:03,960 --> 00:19:08,599
nightmare, that's what I remember.
That's why you guys, guys like the

248
00:19:08,680 --> 00:19:15,119
Germans, you know, Angle Grammar
and all those guys who were into WCF,

249
00:19:15,480 --> 00:19:18,799
they made the fortune on helping people
configure their WCF services well. And

250
00:19:19,079 --> 00:19:23,240
it also appeals to the mind with
that kind of precision, like as long

251
00:19:23,279 --> 00:19:26,839
as you do it right, it
works great. The moment you do it

252
00:19:26,880 --> 00:19:32,559
wrong, it's essentially undiagnosable. Yeah, I get that. Where gRPC seems

253
00:19:32,599 --> 00:19:34,519
way more stripped down. It seems
like the best part of dot net remoting,

254
00:19:34,799 --> 00:19:40,559
which I loved, like dot remoting
between two dot net services back in

255
00:19:40,640 --> 00:19:47,400
the day just worked like it was
nothing and it was fast form work with

256
00:19:47,480 --> 00:19:49,400
anybody else. No, So then
they say, hey, you know what

257
00:19:49,400 --> 00:19:55,680
you like more soap? They were
wrong, they were wrong. That was

258
00:19:55,720 --> 00:20:02,680
a lie. Soap did not clean
anything what they were thinking. Yeah,

259
00:20:02,880 --> 00:20:06,920
it wasn't simple, it didn't have
any objects, it didn't provide access,

260
00:20:07,079 --> 00:20:18,079
it wasn't a protocol. The name
was perfect. Oh man, I could

261
00:20:18,079 --> 00:20:23,440
do this all day. So I
know that you're, you know, peer

262
00:20:23,480 --> 00:20:27,599
to peer in the micro services world, so you're not really using the HDP

263
00:20:27,799 --> 00:20:36,039
web version of it. But I
was following the the way that what is

264
00:20:36,160 --> 00:20:42,240
to your what's the deal with HDDB
two and why didn't something work? And

265
00:20:42,319 --> 00:20:47,599
does it work? Now? I'm
sorry for being vague, but I just

266
00:20:47,680 --> 00:20:53,240
remember that there was a problem with
maybe Azure not supporting HDP two or and

267
00:20:53,240 --> 00:20:57,920
that's why gRPC web came around.
I don't know, something like that.

268
00:20:59,359 --> 00:21:06,079
I mean, they added grbc into
like dotnut world in twenty nineteen, but

269
00:21:06,440 --> 00:21:11,240
Asia wasn't supporting that until I don't
know last year or something. So it

270
00:21:11,279 --> 00:21:15,559
has been Oh yeah, it has
been a gap around it. Yeah,

271
00:21:15,559 --> 00:21:18,559
that's what I remember. And it's
not like HGB two is new. We

272
00:21:18,559 --> 00:21:22,680
were using it it's strangely, for
crying out loud, now they're talking HGDP

273
00:21:22,799 --> 00:21:27,720
three. Yeah, so it's not
even new anymore. HGB two is implemented

274
00:21:27,759 --> 00:21:33,119
in twenty eighteen in the Azure App
Service. Yeah, so it's been a

275
00:21:33,119 --> 00:21:37,079
few years. But still they didn't
get to it soon. No, I

276
00:21:37,079 --> 00:21:42,480
don't know why. Yeah, it's
we don't We don't know the cloud problems,

277
00:21:44,039 --> 00:21:45,079
and we don't want to know the
cloud problems. Oh yeah, cloud,

278
00:21:45,440 --> 00:21:49,039
those are hard problems. I don't
envy those guys and our browsers using

279
00:21:49,200 --> 00:21:55,279
HDTP two now, yes, they
are since when for a long time,

280
00:21:55,440 --> 00:22:00,279
for a long time, because it
was easy, relatively speaking. Work on

281
00:22:00,319 --> 00:22:03,400
the server was the hard part,
right, and it was. Yeah,

282
00:22:03,440 --> 00:22:07,960
twenty fifteen was when it was ratified
for twenty eight for browser side. Okay,

283
00:22:07,039 --> 00:22:10,599
So the fact that it took three
years for Azure to get it going

284
00:22:10,680 --> 00:22:11,880
just on app service, like they
still got to do a fund more and

285
00:22:11,920 --> 00:22:15,160
all those other pieces like that makes
sense to me. But you know,

286
00:22:15,200 --> 00:22:18,720
we were battling that ressulcilationship with twenty
thirteen, and one of the one of

287
00:22:18,720 --> 00:22:22,200
the reasons you used, strangely it
was that it did terminate HTP two for

288
00:22:22,279 --> 00:22:26,960
you. So these are little bits
of information that have fallen out of my

289
00:22:26,039 --> 00:22:30,880
ears, and you know, you
don't want to know this stuff like that's

290
00:22:30,000 --> 00:22:34,599
just it. It's it's not a
story worthy, you know. Yeah,

291
00:22:36,359 --> 00:22:40,359
this is the plumbing that makes the
Internet go around. Like once upon a

292
00:22:40,440 --> 00:22:44,920
time the web was just not that
robust and having two connections to a web

293
00:22:44,960 --> 00:22:52,680
server was a lot. So has
the performance or scalability of gRPC improved over

294
00:22:52,720 --> 00:22:57,240
the last year. I don't know
about it being improved, but I just

295
00:22:57,319 --> 00:23:03,039
recently wrote a blog about hosting in
Asia and it was so simple. I

296
00:23:03,160 --> 00:23:07,640
was like, okay, no,
no wonder that it took like three years

297
00:23:07,640 --> 00:23:15,039
for you to get app service and
gRPC workable with each other. So it's

298
00:23:15,160 --> 00:23:19,880
very nice right now. Oh good, So again you're talking too ling as

299
00:23:19,920 --> 00:23:23,400
your support. All of those things
have. It's come into its own.

300
00:23:23,799 --> 00:23:30,200
I don't know why gRPC isn't more
popular because it's certainly it's certainly so usable

301
00:23:30,400 --> 00:23:34,599
in just about every scenario where you
have communication. I think it's hard.

302
00:23:36,279 --> 00:23:38,519
I mean, once you have if
you have a green field app where you

303
00:23:38,599 --> 00:23:42,880
have services that need to talk with
other downstream services and you need some kind

304
00:23:42,920 --> 00:23:48,000
of I don't know request response scenario, then it's fine. But if you

305
00:23:48,079 --> 00:23:53,400
have a huge application that it's already
well established, it's hard in terms of

306
00:23:53,519 --> 00:23:57,200
time to retrofit, so it will
be a while. Yeah. No,

307
00:23:57,319 --> 00:24:00,400
no. And if you're used to
living in a land and then you just

308
00:24:00,559 --> 00:24:06,200
poorted that up to app service,
like you haven't really embraced a different view

309
00:24:06,200 --> 00:24:08,400
of the web. You still kind
of an iis person, yeap, And

310
00:24:08,440 --> 00:24:15,759
you havn't grasped these ideas of reverse
proxying and all of the other mindsets that

311
00:24:15,160 --> 00:24:19,440
other web approaches, you know,
not coming from dot Netland, not coming

312
00:24:19,440 --> 00:24:23,440
from Microsoft Land, embraced years ago. So you know, I still feel

313
00:24:23,440 --> 00:24:26,440
like we're playing catch up in a
lot of respect. You know, the

314
00:24:26,559 --> 00:24:30,519
day I shut off Internet Information Server
was the happiest day of my life.

315
00:24:30,920 --> 00:24:36,599
Dude, dude. You know,
I sent both of my old servers to

316
00:24:36,799 --> 00:24:40,279
the e cyclers to be torn,
you know, taken apart. And that

317
00:24:40,759 --> 00:24:44,880
was a good day. That was
a good I am now purging all racks

318
00:24:44,880 --> 00:24:48,799
out of my life. I want
to see it getting shredded. I'm not

319
00:24:48,000 --> 00:24:52,799
leaving until I see it shredded.
Well, I shredded the drives and then

320
00:24:52,880 --> 00:24:55,759
shut the chassis off. But the
motherboards were for twenty thirteen. I didn't

321
00:24:55,759 --> 00:24:59,160
owe anybody anything. I was on
my third set of fans in those things.

322
00:24:59,200 --> 00:25:03,799
But now I'm with you. You
know, it's a cloud world like

323
00:25:03,160 --> 00:25:08,359
less less is more at home absolutely, Plus you know, never mind that

324
00:25:08,480 --> 00:25:15,799
the security implications of Internet information.
Everything's on by default and yeah, yeah,

325
00:25:15,039 --> 00:25:19,039
it's the it's the Swiss army knife
with all the blades out right.

326
00:25:21,279 --> 00:25:25,960
So what have you been doing in
your day to day life with gRPC?

327
00:25:26,160 --> 00:25:33,839
That's interesting arena basically helping teams that
want to transition from w CF to gRPC.

328
00:25:34,039 --> 00:25:40,319
That's the most common center that I've
found. I currently try to keep

329
00:25:40,359 --> 00:25:45,359
an eye on it just because they
have some bits that really interest me.

330
00:25:45,799 --> 00:25:52,000
And when those bits will be established
and mature enough, I think it will

331
00:25:52,519 --> 00:25:56,720
generate a lot of traction in the
industry around gRPC. And I'm talking about

332
00:25:56,759 --> 00:26:03,000
gRPC transcoding, especially Oh you said
the T word, Oh yeah, all

333
00:26:03,119 --> 00:26:10,119
right, tell us transcoding. So
transcoding is a package that you can install

334
00:26:10,680 --> 00:26:15,960
and allows you to also call your
gRPC service from the browser as you would

335
00:26:17,000 --> 00:26:22,880
do with any other HTTP API.
But and it does the translation from Jason

336
00:26:23,119 --> 00:26:30,599
that you send in the browser to
your gRPC service. Now is this different

337
00:26:30,599 --> 00:26:37,200
from gRPC web kind of? I
mean the thing, yeah, accomplished is

338
00:26:37,240 --> 00:26:41,559
the same thing, indeed, But
it allows you from the browser to also

339
00:26:42,000 --> 00:26:49,599
specify endpoints and to define like routes
can bind variables from the routes. You

340
00:26:49,640 --> 00:26:56,000
can have body that are bound to
different models that you have as a parameter

341
00:26:56,119 --> 00:27:02,079
in your gRPC service. So I
don't power it's yep, indeed, But

342
00:27:02,240 --> 00:27:04,759
now there's a lot of manual work
that you need to do in order for

343
00:27:04,799 --> 00:27:11,559
that to work in a basic scenario. And what it happens currently is that

344
00:27:11,640 --> 00:27:18,480
if you have like an integration project
or a unit testing project for your gRPC

345
00:27:18,640 --> 00:27:23,039
service, and you also want to
add transcoding, bad luck. So nothing

346
00:27:23,079 --> 00:27:30,119
will work anymore, no gRPC for
you. Yeah, so take your mind

347
00:27:30,119 --> 00:27:34,039
off of it, don't go that
way. Yeah, things will be hard,

348
00:27:34,480 --> 00:27:38,160
and we should take a brief break. Yeah, let's do that.

349
00:27:38,279 --> 00:27:41,279
We're gonna pause here for these very
important messages and won't be right back,

350
00:27:45,119 --> 00:27:48,240
and we're back. It's dot net
rock some Carl Franklin, that's Richard Campbell,

351
00:27:48,400 --> 00:27:52,240
Yes, sir, and we're talking
to Arena skirt you about gRPC.

352
00:27:52,680 --> 00:27:59,440
What's new in the last year so
far, it's tooling and Azure support and

353
00:27:59,720 --> 00:28:03,119
training. I don't know if trans
coding is new. It's not necessarily new.

354
00:28:03,519 --> 00:28:08,039
Now it's like way better, way
better, right, improved, yeah,

355
00:28:08,079 --> 00:28:15,519
improved yes? And uh and the
WCF problem that's uh, well,

356
00:28:15,519 --> 00:28:18,599
this really comes to that core issue, like you're doing all these migrations.

357
00:28:18,160 --> 00:28:23,960
What are the typical problems that a
dot net dev coming from WCF have trying

358
00:28:23,960 --> 00:28:27,559
to understand g RPC? Like where
what do you find? You're explaining over

359
00:28:27,599 --> 00:28:33,319
and over again. So I think
the general the I think the concept of

360
00:28:33,440 --> 00:28:40,599
gRPC itself, the fact that it
resides and lives under the HTP two protocol

361
00:28:41,039 --> 00:28:47,920
and you have these small requests that
travel on one single connection. That's the

362
00:28:47,920 --> 00:28:52,920
hard beat that developers don't understand at
first. And then the fact that you

363
00:28:53,000 --> 00:29:02,039
have like different set of heathers poor
gRPC requests. You have that concept that

364
00:29:02,200 --> 00:29:10,279
is named trailers that comes sent as
a response from the server at the end.

365
00:29:11,160 --> 00:29:15,160
So there are a lot of new
concepts. Yeah. I mean you

366
00:29:15,319 --> 00:29:19,039
literally call it headers and then call
it trailers. Yeah, and you work

367
00:29:19,119 --> 00:29:25,839
with one type for both of them. So a dictionary, right, same?

368
00:29:26,160 --> 00:29:29,720
Yeah, So I mean and the
point being there called trailers because they

369
00:29:29,720 --> 00:29:33,200
come after the data. It's the
head of the data. But the type

370
00:29:33,240 --> 00:29:37,279
that we you were you use in
order to actually add key value pairs to

371
00:29:37,319 --> 00:29:45,519
those trailers. It's a metadata type
that you can also use to add headers

372
00:29:45,000 --> 00:29:52,359
that goes before in your RPC requests. So yeah, it's just a naming

373
00:29:52,440 --> 00:29:56,880
problem like the seam streets forward.
And yet the words are complicated. It's

374
00:29:56,920 --> 00:30:02,480
not the first industry to you confuse
headers and trailers. Think of movies,

375
00:30:03,559 --> 00:30:07,200
right, right, you see a
movie trailer is your introduction to the movie?

376
00:30:07,400 --> 00:30:10,680
Why is it called a trailer?
It should be called a header or

377
00:30:10,720 --> 00:30:15,039
an announcement. But it turns out
there's a reason for that because they used

378
00:30:15,039 --> 00:30:19,319
to show these double features and days
in the theater, and the trailers for

379
00:30:19,400 --> 00:30:23,400
the next movie or whatever would come
after the first one, right, And

380
00:30:23,440 --> 00:30:26,400
they just never changed the name.
They just never changed it because it's a

381
00:30:26,440 --> 00:30:32,839
word and everybody knows what it is. Right. So but the point I

382
00:30:32,839 --> 00:30:36,759
think this is your point arena is
like if you work in gRPC metadata,

383
00:30:36,839 --> 00:30:40,720
it's going to generate the headers and
the trailers as needed. No, it's

384
00:30:40,759 --> 00:30:45,960
basically you add some extra concepts to
the concept that you already know. Like

385
00:30:45,079 --> 00:30:51,880
the h protocol protocol it has headers, right, so you can add key

386
00:30:51,920 --> 00:30:57,279
value pairs in there. But underneath
these you also add key value pairs that

387
00:30:57,359 --> 00:31:03,160
are specific to a gRPC request.
And depending on the part where you're adding

388
00:31:03,200 --> 00:31:08,039
those with the gRPC request or with
the gRPC response, they're called differently,

389
00:31:08,720 --> 00:31:17,839
right, So so the header of
a response is called the trailer. Yeah,

390
00:31:18,119 --> 00:31:29,759
no problem, it's fine. I
take off my parachute and okay,

391
00:31:30,279 --> 00:31:33,400
I get it, and it is
all metadata. So it is good to

392
00:31:33,400 --> 00:31:36,720
think in the context of metadata.
Let me tell you about the package I

393
00:31:36,759 --> 00:31:38,880
want to send, and yeah,
some stuff's going to go up front,

394
00:31:38,920 --> 00:31:42,079
some stuffs going to go back.
It doesn't They don't get too sweaty about

395
00:31:42,079 --> 00:31:48,200
that. And even though it's weird
due to the fact that this is implemented,

396
00:31:48,920 --> 00:31:52,799
it's very helpful because you might have
things that don't fit in the message

397
00:31:52,799 --> 00:31:56,759
body basically and the request itself,
so you have to have a place where

398
00:31:56,799 --> 00:32:01,680
to shove those so well, and
I appreciate that you don't have a separate

399
00:32:01,680 --> 00:32:05,559
set of calls for the header and
the trailer and so forth. You just

400
00:32:05,640 --> 00:32:07,279
speak to metadata and you can do
all the things. So in a lot

401
00:32:07,319 --> 00:32:13,480
of ways it's simple. It's just
describing it well. It feels challenging,

402
00:32:13,759 --> 00:32:17,680
right, But there's also a nuance
here if we're talking about different gRPC modes,

403
00:32:17,799 --> 00:32:23,559
like when we have the server streaming
the server streaming modes or types what

404
00:32:23,720 --> 00:32:31,759
sends several GPS responses back to the
client, But only after all those messages

405
00:32:31,799 --> 00:32:37,759
are finished are sent, you'll get
those trailers, right, So this is

406
00:32:37,880 --> 00:32:42,640
the way you'll you'll know that,
Okay, I'm I'm done, I received

407
00:32:42,680 --> 00:32:45,839
all the responses. Here's the trailers. Yeah. Again, it's like the

408
00:32:46,000 --> 00:32:50,240
issue here with gRPC is that it
can be a lot of different things.

409
00:32:50,279 --> 00:32:54,400
It can be you know, a
synchronous streamer or just a messaging and so

410
00:32:54,519 --> 00:32:58,599
the rules are different. So yeah, you gotta be careful about using trailers

411
00:32:58,599 --> 00:33:00,640
and streaming mode because you don't know
when you're going to get them. It

412
00:33:00,839 --> 00:33:04,400
could be a while. Yeah.
Yeah, I like to use gRPC in

413
00:33:04,440 --> 00:33:10,359
place of you know, rest API
calls to controllers in a regular application,

414
00:33:10,480 --> 00:33:15,079
you know, in a Blazer app
for example. That's I really love it

415
00:33:15,200 --> 00:33:16,839
and of course, it wasn't meant
to do that, but it works.

416
00:33:17,079 --> 00:33:21,400
It works great fast, and yeah, I mean it's interesting you say that

417
00:33:21,440 --> 00:33:23,480
called that it wasn't meant to do
that. Yeah, it wasn't built for

418
00:33:23,519 --> 00:33:27,960
that. What is gRPC meant to
do? Like, it's not just about

419
00:33:27,960 --> 00:33:30,039
streaming either. Well, I mean, and we'll take that. I mean

420
00:33:30,039 --> 00:33:35,920
it was built for micro service communication, service to service. Yeah. I

421
00:33:35,960 --> 00:33:40,160
mean we can start like with a
short history. How many of us heard

422
00:33:40,240 --> 00:33:45,880
the term micro services, like I'm
developing micro services, the team develops micro

423
00:33:45,960 --> 00:33:52,759
services, when in fact those are
not are just services that respond with Jason.

424
00:33:52,319 --> 00:33:57,920
Yeah, and they passed that data
to each other with Jason. Yeah.

425
00:33:58,000 --> 00:34:02,960
So people defaulted to something that is
so called REST, like to describe

426
00:34:04,119 --> 00:34:08,039
an API that responds with Jason as
a data foremant, right, which made

427
00:34:08,039 --> 00:34:12,840
all the rest people angry. What
I remember about REST is mostly hearing I

428
00:34:12,880 --> 00:34:15,400
was doing it wrong. I have
so many beefs, and when we were

429
00:34:15,440 --> 00:34:20,119
talking to Grant Barrett about this,
I have so many beefs with people who

430
00:34:20,199 --> 00:34:22,000
use the wrong word for things,
and I just got to learn to let

431
00:34:22,000 --> 00:34:24,280
it go and let them play on
my lawn. It's going to be okay.

432
00:34:24,320 --> 00:34:29,039
You know it's going to be okay, but I still have some Here's

433
00:34:29,079 --> 00:34:35,719
one when people describe the Browning Milliard
reaction that they get on meat, they

434
00:34:35,719 --> 00:34:39,239
say it's caramelizing. No it's not. It's not caramelizing. There's no sugar

435
00:34:39,239 --> 00:34:43,719
in me. Little things like that. But people get a word for something,

436
00:34:44,519 --> 00:34:46,360
and you know, it's popular,
and so then they overuse it and

437
00:34:46,360 --> 00:34:51,199
they put it on everything, and
it's rest and the RESTful, which is

438
00:34:51,239 --> 00:35:00,159
a nuance. I'm happier with rest
dish. I'm not going for perfection your

439
00:35:00,199 --> 00:35:05,199
voice. I'm just trying to get
my wrap to work. Rested, well

440
00:35:05,280 --> 00:35:08,960
rested, it's well rested. Best
to keep it simple. Yeah, we

441
00:35:08,960 --> 00:35:13,920
should just start making up things and
asking people on the show. So how

442
00:35:13,960 --> 00:35:25,079
long do you let that proof?
Well? I use the oiling library oiler

443
00:35:25,519 --> 00:35:34,360
and then I wrap it, oh
man, and then it's only proofed when

444
00:35:34,440 --> 00:35:39,159
doubled, and then you go,
you bacon, let it icd to bake

445
00:35:39,239 --> 00:35:44,760
a bit ye down the pipeline to
the bank. Yeah, we're making work

446
00:35:45,159 --> 00:35:49,599
way way too an extreme that I
really enjoying. This all started with the

447
00:35:49,639 --> 00:35:52,800
metadata conversation in this naming problem,
and now we've promptly painted a worse one.

448
00:35:53,159 --> 00:35:57,400
You know, I'm presuming that the
folks who wrote this, we're trying

449
00:35:57,440 --> 00:36:00,480
to do a good job. And
it's still you know, there's some challenges

450
00:36:00,519 --> 00:36:07,000
here. Yeah, it's a technology
that needs to mature, and it will

451
00:36:07,079 --> 00:36:12,440
mature enough when people will use it, because otherwise it's just a tool out

452
00:36:12,480 --> 00:36:15,679
there that nobody uses and no one
will invest in developing it. Yeah,

453
00:36:16,079 --> 00:36:20,760
and can you make it simpler?
Like it does feel like gRPC is mature

454
00:36:20,840 --> 00:36:23,719
enough that we are looking at some
simplicity down to the tool links better.

455
00:36:23,960 --> 00:36:30,559
Yeah. Yeah, I think we're
we're getting there. It is taken a

456
00:36:30,679 --> 00:36:35,239
while. Oh yeah, I mean
there is a reason for it took for

457
00:36:35,280 --> 00:36:39,159
it to took that amount of time. I mean there was no support in

458
00:36:39,239 --> 00:36:45,000
Asia. I don't know about a
WS, but the only moment where you

459
00:36:45,000 --> 00:36:52,039
could use RPC in a real production
environment was if you had a virtual machine

460
00:36:52,639 --> 00:36:55,679
where you can't run the service.
Yeah. I don't really know how many

461
00:36:55,679 --> 00:36:59,880
people are doing that anymore. Yeah, that's not a reason to run a

462
00:37:00,079 --> 00:37:02,760
VM. Reason running VM is you're
trying to get you know, you're on

463
00:37:02,800 --> 00:37:06,719
your way off of it. Not
that I'm building new things. I need

464
00:37:06,760 --> 00:37:09,840
a VM for it. I fairly
enjoyed a moment where I had to run

465
00:37:12,280 --> 00:37:20,280
APIs as Linux services right machines start
though, see what's happening. I was

466
00:37:20,360 --> 00:37:22,840
very excited to do that. That's
a good way to slow people down from

467
00:37:22,880 --> 00:37:24,400
running a VM. You can run
a VM, but only if it's Linux.

468
00:37:27,519 --> 00:37:32,199
I had to learn if your commands
linux pseudo, make me a sandwich,

469
00:37:37,039 --> 00:37:42,360
Pseudo, make me a pseudo?
What are what is server reflection and

470
00:37:42,400 --> 00:37:46,920
how does that play into all of
this? So server reflection will allow you

471
00:37:47,039 --> 00:37:55,880
to discover what Jersey services you have
available inside an endpoint services operations in fact

472
00:37:58,559 --> 00:38:02,519
and the tooling. I'm going to
talk about tooling, especially about Postman in

473
00:38:02,559 --> 00:38:07,079
here, because now it allows you
to have like an ur L of the

474
00:38:07,119 --> 00:38:12,239
service and your server reflection, and
if you have reflection enable on the server

475
00:38:12,360 --> 00:38:17,480
side, it will discover what can't
you with that swagger for GRPs kind of

476
00:38:17,760 --> 00:38:23,199
kind of yeah yeah, And you
can also execute those because Postman will generate

477
00:38:23,599 --> 00:38:29,239
messages for you domulance, but you
can use those in order to call those

478
00:38:29,320 --> 00:38:34,559
operations. Nice. Would you use
discovery in production or is this really just

479
00:38:34,599 --> 00:38:37,480
a tool when you're developing to make
it easier to get hooked up. I

480
00:38:37,480 --> 00:38:44,360
think it's meant to be used with
an API gateway or something like that,

481
00:38:44,880 --> 00:38:47,800
right, so sort of a self
service discovery. Otherwise I don't see the

482
00:38:47,840 --> 00:38:52,960
point too like, I mean,
I think it kind of should know your

483
00:38:52,079 --> 00:38:55,639
end points right right, and never
if you have with this whole we don't

484
00:38:55,679 --> 00:39:00,639
know where end points are. Yeah, No, because it's g RPC is

485
00:39:00,679 --> 00:39:05,320
meant for point point communication, and
that assumes that you know where you will

486
00:39:05,360 --> 00:39:09,960
make requests and what should look like. Yeah, because you have the protocol

487
00:39:10,000 --> 00:39:16,039
buffers, files and types that describe
basically what you have available. Now you're

488
00:39:16,079 --> 00:39:20,000
twisting my brain. It was like, am I going to generate the proto

489
00:39:20,079 --> 00:39:30,440
buffs on the fly because I've used
discovery to making right now just because you

490
00:39:30,559 --> 00:39:35,480
could do it? Yep? Yeah, all right, I mean, but

491
00:39:35,519 --> 00:39:38,119
I appreciate you want something discoverable,
you know, nothing else, just to

492
00:39:38,239 --> 00:39:43,599
spit out an error message, right
you have a I don't know. This

493
00:39:43,599 --> 00:39:45,920
has been a thing for me lately. I kept trying to write a better

494
00:39:45,000 --> 00:39:50,400
error message because object not found pisses
everybody off. Like I kind of got

495
00:39:50,440 --> 00:39:52,480
this reflexed. If we made a
call and it failed, then I'd like

496
00:39:52,519 --> 00:39:57,320
to invoke the discovery and include it
in the log. So it's like,

497
00:39:57,360 --> 00:40:00,760
hey, you know, I failed
to make this call, but I did

498
00:40:00,760 --> 00:40:04,960
the discovery on it, and this
is what it's actually expecting. Like you've

499
00:40:05,039 --> 00:40:07,920
just shortened everybody's pain up a whole
bunch, right, you know, I

500
00:40:07,000 --> 00:40:09,480
have to go back and look.
It's like at the moment when I made

501
00:40:09,519 --> 00:40:13,000
this call, this is what it
was expecting, and this is what we

502
00:40:13,079 --> 00:40:17,079
SENTENCEDEAD. Yeah, but to be
here reflections So far, for me,

503
00:40:17,400 --> 00:40:22,800
it has been useful just to play
around to discover like what's available on the

504
00:40:22,840 --> 00:40:29,159
path that I know, and with
Postman because it allows you to like load

505
00:40:29,199 --> 00:40:34,639
the live RL and to see what's
there and to invoke it for testing purposes

506
00:40:34,679 --> 00:40:37,039
of course. Nice. Yeah,
and you like those tools, so it

507
00:40:37,079 --> 00:40:39,599
just gives you confidence of what's going
on. Oh yeah, I mean I

508
00:40:39,639 --> 00:40:45,639
always prefer a tool where I can
click three buttons to make sure the thing

509
00:40:45,679 --> 00:40:51,079
that I want it to work works. Then I'll manually create a client try

510
00:40:51,119 --> 00:40:55,599
to debugget see what's the error if
any, so it's easier. Yeah,

511
00:40:55,719 --> 00:41:00,679
I like that. I have a
question for you, a particular question about

512
00:41:00,719 --> 00:41:04,639
streaming in gRPC which I've been doing
for a while, but I'm not really

513
00:41:04,719 --> 00:41:07,320
sure what's going on under the hood. So in your protofile, if you

514
00:41:07,440 --> 00:41:15,800
have an RPC that returns a stream
of you know, some message type that

515
00:41:15,000 --> 00:41:22,320
instead of you know, a repeated
message type, then when you implement that,

516
00:41:22,400 --> 00:41:28,880
you would think that there would be
an I sink enumerable in there somewhere.

517
00:41:29,679 --> 00:41:35,039
But instead what you get is the
request and an I serve stream writer

518
00:41:35,320 --> 00:41:40,239
of your type, you know,
and then a server call context and then

519
00:41:40,360 --> 00:41:45,639
you basically can just await you know, response streamed dot write a sink whatever

520
00:41:45,679 --> 00:41:51,000
your object is in a loop and
it you know, I would I was

521
00:41:51,039 --> 00:41:55,639
expecting an I sink numerable in C
sharp. Is that's what's actually happening under

522
00:41:55,679 --> 00:41:59,440
the hood, To be fair,
I don't know for sure, but to

523
00:41:59,519 --> 00:42:04,719
be fair, I don't think that
is what happening under the food And I

524
00:42:04,760 --> 00:42:09,559
think they allowed us to have that
stream reader writer because you have the both

525
00:42:12,239 --> 00:42:15,920
just to make it as low level
as they can. Yeah. So you

526
00:42:15,000 --> 00:42:20,159
have this stream, your job to
do whatever you want with it. Yeah.

527
00:42:20,239 --> 00:42:22,480
I realized this is an answer I
could easily find by going and looking

528
00:42:22,519 --> 00:42:27,960
at the source code and get hub. But I just wondered if you knew.

529
00:42:28,079 --> 00:42:31,400
I'm sorry, I'm going to air
quote easily. Yeah, easily.

530
00:42:34,159 --> 00:42:37,800
You're right. I can. I
can answer this question myself because I can

531
00:42:37,039 --> 00:42:39,559
go and look at the source code, cut and paste it into get Up

532
00:42:39,559 --> 00:42:43,679
Go. Pilots say what the hell
does this mean? I can't ask chat

533
00:42:43,719 --> 00:42:45,360
jipity. I was just gonna say, or you could ask chat jipity.

534
00:42:45,559 --> 00:42:49,000
Yeah, we all went to the
same thing. Give me a large language

535
00:42:49,000 --> 00:42:52,199
model is going to answer this question
for me? Yeah? Not? Do

536
00:42:52,360 --> 00:42:54,199
I trust it? That's yeah,
Now it wasn't correct. How would you

537
00:42:54,239 --> 00:42:59,400
know? It's like it's a great
summarizer. If it wasn't a great summarizer,

538
00:42:59,599 --> 00:43:04,400
how would you you know? Yeah, sounds good, but always search

539
00:43:04,440 --> 00:43:07,199
and research of the fact that chad
jipt gives you. Yeah. Yeah,

540
00:43:07,239 --> 00:43:12,079
you can say where what what's the
get up page where you found this answer,

541
00:43:12,119 --> 00:43:15,880
and they'll say, I have no
idea where on Google? I'm sorry,

542
00:43:15,880 --> 00:43:20,239
this was derived from a from a
mirror site on four chance, so

543
00:43:20,280 --> 00:43:24,559
it must be correct. Oh my
goodness. Okay, we were talking about

544
00:43:24,599 --> 00:43:30,360
gRPC. I mean because it's good. It's really good. As much as

545
00:43:30,400 --> 00:43:31,519
I think we've been hard on it
today. Yeah, I know, it

546
00:43:31,559 --> 00:43:36,400
really is amazing. Yeah, but
I appreciate tools like Postman, like,

547
00:43:36,480 --> 00:43:39,840
oh okay, yeah, if I
was learning my way around gr PC starting

548
00:43:39,880 --> 00:43:45,000
to play with requests through Postman,
so you can watch the interaction, that's

549
00:43:45,039 --> 00:43:49,280
awesome. That's awesome. Yeah,
that's good stuff and get started. And

550
00:43:49,519 --> 00:43:57,239
it also makes the binary human readable, which is awesome for Postman because at

551
00:43:57,239 --> 00:44:00,400
first that was a show stopper,
like how can I a thing that is

552
00:44:00,519 --> 00:44:06,599
binary? I don't know how to
decipher binary? So this will makes it

553
00:44:06,880 --> 00:44:09,119
way easier. So training is a
big part of what you do. Are

554
00:44:09,199 --> 00:44:13,800
there any regular classes that you teach
online where we could learn this stuff?

555
00:44:14,360 --> 00:44:21,360
Not? Up until now, I'm
basically working on business to business contracts.

556
00:44:21,440 --> 00:44:24,440
So there are companies if they called
me, hey, we need to learn

557
00:44:24,480 --> 00:44:29,559
about this or that, I can
provide them some trainings around it. So

558
00:44:29,679 --> 00:44:32,039
if somebody who's interested in how many
what's the minimum number of people that you'd

559
00:44:32,079 --> 00:44:37,400
want to teach too? Minimum?
I did it for five people because the

560
00:44:37,440 --> 00:44:46,559
company wanted one, right, But
to be honest, I always prefer like

561
00:44:46,639 --> 00:44:52,480
having a bigger group of people.
Sure, so the questions are way easier

562
00:44:52,519 --> 00:44:59,440
to answer because from thirty people or
fifteen people, you'll always find some questions

563
00:44:59,440 --> 00:45:02,639
that are into and they will start
debates. And I always love the interaction

564
00:45:02,719 --> 00:45:07,719
with you put your hands back,
sit back. Now the classes it's called

565
00:45:07,719 --> 00:45:12,159
by itself. See what I started. Yeah, but it's everybody working on

566
00:45:12,159 --> 00:45:15,039
one project and you can get into
a discussion about the project like that's that's

567
00:45:15,079 --> 00:45:21,199
good to do, yeah, without
a doubt. But you also had some

568
00:45:21,480 --> 00:45:28,559
online training stuff too, some videos
maybe oh yeah yeah, yeah, uh,

569
00:45:28,880 --> 00:45:35,239
forget about those. No I'm joking, No, I'm joking. Oh

570
00:45:35,280 --> 00:45:38,159
it was so hard to record record
those. It's a whole new type,

571
00:45:38,239 --> 00:45:46,480
so different. Oh yeah, a
different life. Yeah. So uh oh

572
00:45:46,559 --> 00:45:52,039
yeah it's hard. So uh big
thumbs up for people that are doing this

573
00:45:52,159 --> 00:45:57,440
for a living or full time their
content creators. And to put your cell

574
00:45:57,440 --> 00:46:04,280
phone camera and to speak like coherently. Yeah, it's it's a thing.

575
00:46:04,760 --> 00:46:08,199
Yeah, So coherently coherence comes with
editing though, you know that's the good.

576
00:46:08,440 --> 00:46:15,559
Yeah, if you know how to
like take breaks or have stop words.

577
00:46:15,760 --> 00:46:19,679
And I learned that the hard way. I do that. I subscribe

578
00:46:19,679 --> 00:46:22,840
to the max Headroom style of editing, where everything I just jump cut all

579
00:46:22,880 --> 00:46:27,840
the time. Yeah. As long
as you can hear me and understand me,

580
00:46:27,920 --> 00:46:30,800
you can put up with a twitch
or two. Yeah I think that

581
00:46:30,920 --> 00:46:38,360
and the hard hair. Yeah yeah, exactly my mom up. So if

582
00:46:38,400 --> 00:46:45,280
anyone wants to to learn more about
gRPC, I have a class around four

583
00:46:45,320 --> 00:46:51,320
hours around g RPC from zero to
Hero. You can find the link on

584
00:46:51,360 --> 00:46:55,039
my blog. It's there with a
small discount. Excellent. Yeah cool.

585
00:46:55,079 --> 00:46:59,199
So what's next? What's on your
what's in your inbox? To be here?

586
00:46:59,440 --> 00:47:04,280
In need or want to start a
YouTube channel, I have a gazillion

587
00:47:04,320 --> 00:47:08,719
plans. Man. Oh yeah,
meteor, because I said I did this,

588
00:47:08,760 --> 00:47:14,719
I did the course. It's hard. It might be some learning curve

589
00:47:14,719 --> 00:47:19,159
for me with YouTube tool, but
it might also prove useful. Well.

590
00:47:19,199 --> 00:47:21,599
Feel free to reach out to me
because I've been doing it for a long

591
00:47:21,639 --> 00:47:23,400
time and if I can help in
any way, I will. For sure.

592
00:47:24,280 --> 00:47:29,480
I'm gonna book a slot in your
calendar. You got And of course,

593
00:47:30,079 --> 00:47:31,840
by the time this show comes out, we'll have already been to NDYC

594
00:47:32,000 --> 00:47:35,840
London and back again. But I
will you and I will see each other

595
00:47:35,880 --> 00:47:38,639
in the NDC London. Yep.
Very good. Anything else that we forgot

596
00:47:38,679 --> 00:47:43,920
to talk about arena. Nothing that
crosses my mind. All right. Well,

597
00:47:44,159 --> 00:47:45,920
on that note, let's call it
a show. Thanks very much for

598
00:47:46,000 --> 00:47:50,119
spending this time with us. It's
always great to talk to you same,

599
00:47:50,599 --> 00:47:52,800
Thank you. All right, We'll
talk to you next time on dot net

600
00:47:52,920 --> 00:48:19,000
rocks. Dot net Rocks is brought
to you by Franklin's Net and produced by

601
00:48:19,079 --> 00:48:24,000
Pop Studios, a full service audio, video and post production facility located physically

602
00:48:24,039 --> 00:48:30,000
in New London, Connecticut, and
of course in the cloud online at pwop

603
00:48:30,239 --> 00:48:34,119
dot com. Visit our website at
d O T N E t R O

604
00:48:34,199 --> 00:48:38,599
c k S dot com for RSS
feeds, downloads, mobile apps, comments,

605
00:48:38,800 --> 00:48:43,920
and access to the full archives going
back to show number one, recorded

606
00:48:43,960 --> 00:48:46,880
in September two thousand and two.
And make sure you check out our sponsors.

607
00:48:47,039 --> 00:48:51,679
They keep us in business. Now
go write some code. See you

608
00:48:51,719 --> 00:49:10,760
next time you got javans My is
home, then my Texes in a line. Credit ballh
