How'd you like to listen to dot net rocks with no ads? Easy?
Become a patron for just five dollars a month. You get access to a
private RSS feed where all the shows have no ads. Twenty dollars a month.
We'll get you that and a special dot net Rocks patron mug. Sign
up now at Patreon dot dot NetRocks dot com. Welcome back to dot net
rocks. This is Carl Franklin and this is Richard Campbell. We're here in
our respective studios. I saw you on Windows Weekly yesterday. Oh yeah,
you watched the live stream of that. I did, So tell me what
you're doing on Windows Weekly besides you know, stirring up hat and discontent and
whiskey. Yet I mean, in the end, I've come to appreciate that
Window. This all happened because Mary Joe Foley left zd net. She went
to work for Directions on Microsoft, which is an analyst group mostly ex microsofties,
and she's really their sort of lead writer organizer, does the blogs and
things like that. She super loves the new roles like super Happy, but
Windows Weekly was intmpatible with that, and so Paul and Leo were doing it
on their own for a few weeks, and Paul was so sad. You
guys are buddies from way. We've been buzzy for a long time. And
so I came in and guested a couple of times, and actually it was
Leo. He said, like, what are we going to do to make
it permanent? That's kind of how it worked with you and me and Dot
Rocks. Isn't it that you were Richard the toy boy? And then it's
like, you know, how about Yeah, that's very cool. I really
enjoyed a conversation. It was great. Yeah, you know, Paul is
a prolific writer, like a dozen articles a week. It's insane, and
in a lot of ways, the show is basically going over what Paul's written
that week, which is fine. You know, I'm familiar with most of
the subjects. I have opinions, and it's easy to make fun of Paul.
And then they added the you know, MJ used to do this closing
bit on her malt liquor of the week, her beer of the week.
She has, like her craft beer. So they asked if I could put
something there, and it's like, how about brown liquor? And of course
he's never forgotten you and I And he refers to this day as the Bourbon
Brothers going up there after a build and they cracked that abler abunda the cask
string. Oh my gosh, yeah, that stuff. He was gooned by
the time we were done. Yeah, they ran a couple of clips of
that day right where I think Paul said something along the lines of I feel
like I've been shot in the tongue. Anyway, So every week now I
do a different thing on whiskey, and they'd been clipping them and picking him
into a playlist on YouTube as well, including over eight parts I described Scottish
whiskey creation in detail, and if you can buy those eight bits together two
and a half hours. So basically, there's a two and a half hour
geek out on making Scottish whiskey out there if you want it. So you
sent me a link to the live recording. Yeah, but you guys don't
publish a lot a live recording. You publish an edited recording, right,
Yeah, Yeah, they publish a podcast essentially. Yeah, but yeah,
it's still it's just that they also stream it in some respects, and like
every podcast, they're struggling financially Yeah. So they where they used to literally
have a twenty four hour stream with inter socials and stuff. They've cut that
back to we just stream their recordings. Well, it's really fun, and
I encourage all the dot ne Rocks listeners to go check out Windows Weekly,
just google it. It's at twit dot tv and you can get more Richard
Cammell that way, let's let's get into better no framework. Awesome, All
right, man, what do you got? So a friend of mine said,
have you seen this? It's a YouTube channel YouTube dot com slash at
Jim Browning. Jim Browning is a is a faux name, a nom de
plume. This is an anonymous guy who finds scammers. Oh yeah, and
and confronts them and in some cases gets them convicted. Yeah, so tracking
and identifying scammers who knock on my front door, call me or shove pop
ups onto my computer screen. Yeah. And there's a series of amazing videos
here where he does just that. Yeah, I know. And he's been
like literally unraveled a huge scam group in India. Like it's amazing, it's
remarkable the work, But there is a certain amount of just the shoden froud
of the scammer being scam Absolutely, I love it. You know, schadenfreud
is the perfect word here. Yeah, so anyway, I really do appreciate
that. And I have also noticed, and you may have noticed this,
and I'm going to bring it up on security this week later today that if
you have any kind of Facebook page, not a personal page, but a
Facebook page, a business page. Irene is already nodding her head. She
knows exactly what I'm talking about. There's this scam that is going on where
people send you, you know, instant messages, Facebook messages saying they're representing
Facebook and your page is about to be shut down for some copyright infringements or
whatever unless you respond to this, and blah blah blah. And at first
it really confused me because it was very you know, official looking, and
then I noticed I was getting the same message from like Bob and you know,
Ahmed and all these other people, and I'm like, okay, this
isn't real. Well, and the accounts get deleted pretty quickly too, right,
Like, yeah they do, but I mean, talk about shadenfreud.
I just have a strange urge to reply bite me. Yeah, you know,
don't, don't. But don't. Don't do it. Yeah, don't
you don't roll around with pigs. Not only will you not get anywhere,
but the pig enjoys it. Well. Dottna Rocks has gotten just a spate
of these messages. So if you're any of the people who sent them to
me, bite me. And Franklin Brothers Band, another page that I have
has gotten slews of them, Like I'm talking maybe thirty forty of them.
Bite me, bite me, bite me. Well, and you imagine,
when you're not a technical person, just how freaky this must be. Like
it must be effective. But it speaks to the state of spacebook, isn't
it. It's just a cesspool. Now. I like Spacebook better than Facebook.
Actually that's a really much better word for it. Yeah, because it's
out and outer space sometimes you would hope. Eh. Anyway, that's what
I got. Richard who's talking to us today, grabbed a comment off for
show seventeen ninety seven, which we did back in June of twenty two with
one erneus you Tube. Maybe you've heard her, never heard of her?
Yeah, And oddly enough we were talking about gRPC, who would have funken
anyway. This comment comes from codepouter otherwise known as Richard Rukima, who's also
been a guest on the show back in March twenty two and was also a
student at Codena Castle in Tuscany. Oh, I didn't know that. That's
awesome. Yeah, he came to Tuscany. It took me a while to
figure out who he was because I've never seen him in person. Yeah,
yeah, he could get him, get him out of character, right,
What a great guy though, And he's in your neck of the witz.
I think, yes, somewhere nearby, not too close. I have deble
check, but it might be in said Alberta. Anyway. His comment is
in reference to gRPC, where he says you might want to review proto buffers.
Yeah, for tro RPC and developers, and specifically the dot net library
for proto buffers. I never understood why I should create a proto buff file
to describe a message in all the languages from a dot apps which uses my
ap API for my application. So it's just one of those utilities. And
I'll include a link on the show to dealing with idiomatic dot Net with the
protocol buffer's library. So yeah, we went over at gRPC and Blazer in
the masterclass thing, right, and so uh yeah, protobuff is just part
of the thing. That's the protocol that gRPC uses. Yes, it's the
way to go. So, Richard, thanks so much for your comment.
I'm pretty sure you get a copy of music Code by but ping me anyway,
and we'll hook you up. And if you'd like a copy of music
Code buy, write a comment on the website at dot NetRocks dot com or
on the facebooks you publish every show there, and if you comment there and
everybody on the show, we'll send you a copy of music Go buy.
And you could also send us a tweet or an x or whatever the hell
they call him these days. I'm at Carl Franklin, He's at Rich Campbell,
or you could be like all the other cool kids and go to mastonon
I'm at Carl Franklin at tech hub dot social, and I'm Rich Campbell at
Mastodon dot social. Send us a toot or tweet or an ex or whatever
the bleep you call those things now. Yeah, it'll always be Twitter to
me. I'm sorry, Elin, Yeah, I'm okay with that. You
You're evil. Plan is not worth really that story? Yeah, no,
okay, I'm not sorry. I'll say it like my wife, my wife
Kelly, she has a habit of apologizing for no parent reason, you know,
anything. And so she's realized this and now she says sorry, not
sorry, fuck you constantly. It's the cutest thing. That's pretty good.
She can't stop the reflex, but she can follow it up. She's right,
exactly. It's like a napid thought. And now it's just becoming one
of those family things. All right, let's bring on Arena back for more.
Arena Skirt two is a Microsoft MVP for Developer Technologies, the Software architect,
an independent consultant, and Microsoft certified trainer, always in a quest for
the latest trends and best practices in architecture, dot net and the world around
it. Also having more than two thousand hours of delivered trainings, classings,
workshops and presentations, she loves to help others grow. Twice a year for
five months, she teaches dot net and c sharp to people that either want
to switch careers and get into software development or simply learn new things very very
cool. She tries to lead by example and believes in the importance of growing
tech communities. She is the co founder of dot net Yash user group that's
I a SI Yash of course, and dot Netdays dot ro conference where she
tries to gather people that are willing to share their knowledge with others or gather
around in the community, and from time to time she publishes articles on her
blog Irena dot codes awesome domain there codes. I got to look into that,
Carl Frank, Oh, yeah, welcome back. Thank you for having
me. You're welcome. Great heard of this dot Net Days dot ro.
I wonder why, all right, tell everybody come on, I'm coming to
Yash. I'm gonna come. Yeah, I'm going to Yash. I've never
been. I've been, you know, I've been to Cluge, I've been
around Romania, but I've never been. I've done any Yeah, I haven't
done gone to Yash. I'm like, I got to go to Yash.
I don't know that I'll go to Moldova while I'm there, because it's very
close to Moldova. But it's kind of a sketchy time to go to Moldova.
Right now, I have a yash on my wrist and you put a
little ointment on it and it's going away. So we're talking gRPC here.
It's been a spell more than a year last time we checked in, and
and you've been writing new course words, stuff like there's more to no,
right, yeah, there's more to know and the technology is well well established.
No, no, so it's in the last year. There's been some
innovations in gRPC, more stabilizations, if that's a word, now I get
that. Yeah, so gRPC is here to stay if you ask me.
And we're really talking gRPC web, right, because that's what most developers use.
Is that true? No, No, we're talking gRPC like back end
technology, okay, for server for the server bit server server, yeah,
micro services, yeah, okay, so gRPC web obviously for browsers. So
it started at Google. But they claim that gRPC is a recursive acronym called
gRPC Remote Procedure Calls and so if you go there, gRPC io, that's
what they say. But they built it for, as you say, micro
services, you know, service to service kind of interaction which doesn't require HTTP.
Where they built it to fool people that a distributed system is the monolith.
Like the way they are behaving. The g doesn't stand for Google.
It used to, they claim it doesn't now because they opened it up.
I think you know, it's just kind of a wink wink, you know.
Yeah, it's just active re you know, re acronym, yeah,
reassigning. Yeah, that's pretty funny. So what's new? So the tooling
is new and stable, which makes me, uh, very glad that well
Visual Studio caught up with everything that happens in RPC, so now you don't
have like problems with types not being recognized and stuff like that. Okay,
awesome. Uh. And also you have like an option in Visual Studio right
click at reference and you'll search and find the proto file and it will automatically
install some packages for you. And that's awesome because we want straightforward things.
We do not want to remember what packages we need to install. And there's
a bunch of them in for the different places too. Yeah, you talked
about types when you when you generate a client or a service, you have
to define these types in a in a protofile, as Richard Rukumo was saying.
And those types don't you know, if the the actual types like string
in whatever. Some of them map, but a lot of them don't.
And I always find it difficult if I'm doing anything complex to well, nowadays
I ask chat GPT, but usually I would go browsing for it. Uh.
You know what is the proto type that matches, you know, a
double array or something like that. Well, basically they they try to help
us with something that is called Google well Known types, which is the common
ground between all languages out there. But if you need something specific only for
a specific language, you'll have to mimic and code it yourself. In broad
above. Yeah, you create your own message type that has whatever. Yeah,
I mean the doc liarly says protocol buffers well known types. Yeah.
Yeah, I presume as soon as you go off this list, now you've
got to figure it out. Yeah, but this is what proto buff's all
about, right, Yeah, it's not a language, it's a code generation
template really yep. So basically the fact that we're writing and defining the services
and the types in proto buffs and it makes us understand the new syntax and
new types and all. It's overhead for us. But you can also have
the option of starting with your own existing types and feels like code first gRPC
due to a nice library written by Mark Gravelle, which allows you to reuse
if you have WCS for example and you have types that are adnotating with data
contracts and stuff like that, you can get rid of proto buffs. That
was one of the first things that I wrote as well, and I showed
it on Blazer Train. Back when I first learned gRPC. It was like,
well, what if I've already got, like, say, an API
layer, I've already got my types and I have to redo them and now
I've got duplicate code and all that stuff. So, yeah, it's a
smart idea, just you make a code generator generator kind of. I'm sorry
when you say it that way. It doesn't feel like a smart idea anymore.
I know, it's weird. It's a lot of weirdness. Yeah,
but there's a problem. There's problems there because you have to you know,
every time that you get a call or a bunch of variables, you have
to convert them in the service, right, so there has to be stuff
in there that runs at run time, and you know, you have to
take into account all the types. It's a lot. Yeah, but basically,
let's be honest, we all kind of use basic types with our other
types custom ones. So as long as those are like interoperable where they can
work with NOGS or something else. Sure, Yeah, back to why do
we build types? Why do we do this? How does this really save
us pain? It is just because it's easier to pass in APIs. Basically,
once you start with gRPC, you have one source of truth, or
you should have, like this protocol buffers file. And the point of gRPC,
beyond the fact that it uses a binary serialization, is that now you
can have a c sharp consumer that talks with an OGS server and the only
thing that these two have in common is that protocol buffers file. That You're
right, right, And that's kind of the magical part about it is.
Yeah, this is cross platform without WS starring a whole lot of XML.
Oh yeah, and performance is amazing. I mean I did some comparisons using
gRPC web in Blazer to download five thousand records from an API and then from
gRPC, and it was like the second and a half compared to like two
hundred and fifty milliseconds. It's that different. Yeah, and that's on the
same sheme. But still, I mean, that kind of ratio is what
you can expect. And yet how is the adoption arena, Like I still
don't see the huge amount of tractions For gRPC, there isn't a huge amount
of traction. What I'm seeing in my workshops and at the conferences, I'm
hearing people talking about transitioning from WCF to gRPC. Right, this is the
most common scenario, and simply because they want to get to Core. Yeah,
and WCF is not going indeed, and nobody's waiting for the open source
version WCF exactly, and why would you Anyway, there's a whole lot of
pain. I don't know if you guys remember, but uh yeah, configuration
nightmare, that's what I remember. That's why you guys, guys like the
Germans, you know, Angle Grammar and all those guys who were into WCF,
they made the fortune on helping people configure their WCF services well. And
it also appeals to the mind with that kind of precision, like as long
as you do it right, it works great. The moment you do it
wrong, it's essentially undiagnosable. Yeah, I get that. Where gRPC seems
way more stripped down. It seems like the best part of dot net remoting,
which I loved, like dot remoting between two dot net services back in
the day just worked like it was nothing and it was fast form work with
anybody else. No, So then they say, hey, you know what
you like more soap? They were wrong, they were wrong. That was
a lie. Soap did not clean anything what they were thinking. Yeah,
it wasn't simple, it didn't have any objects, it didn't provide access,
it wasn't a protocol. The name was perfect. Oh man, I could
do this all day. So I know that you're, you know, peer
to peer in the micro services world, so you're not really using the HDP
web version of it. But I was following the the way that what is
to your what's the deal with HDDB two and why didn't something work? And
does it work? Now? I'm sorry for being vague, but I just
remember that there was a problem with maybe Azure not supporting HDP two or and
that's why gRPC web came around. I don't know, something like that.
I mean, they added grbc into like dotnut world in twenty nineteen, but
Asia wasn't supporting that until I don't know last year or something. So it
has been Oh yeah, it has been a gap around it. Yeah,
that's what I remember. And it's not like HGB two is new. We
were using it it's strangely, for crying out loud, now they're talking HGDP
three. Yeah, so it's not even new anymore. HGB two is implemented
in twenty eighteen in the Azure App Service. Yeah, so it's been a
few years. But still they didn't get to it soon. No, I
don't know why. Yeah, it's we don't We don't know the cloud problems,
and we don't want to know the cloud problems. Oh yeah, cloud,
those are hard problems. I don't envy those guys and our browsers using
HDTP two now, yes, they are since when for a long time,
for a long time, because it was easy, relatively speaking. Work on
the server was the hard part, right, and it was. Yeah,
twenty fifteen was when it was ratified for twenty eight for browser side. Okay,
So the fact that it took three years for Azure to get it going
just on app service, like they still got to do a fund more and
all those other pieces like that makes sense to me. But you know,
we were battling that ressulcilationship with twenty thirteen, and one of the one of
the reasons you used, strangely it was that it did terminate HTP two for
you. So these are little bits of information that have fallen out of my
ears, and you know, you don't want to know this stuff like that's
just it. It's it's not a story worthy, you know. Yeah,
this is the plumbing that makes the Internet go around. Like once upon a
time the web was just not that robust and having two connections to a web
server was a lot. So has the performance or scalability of gRPC improved over
the last year. I don't know about it being improved, but I just
recently wrote a blog about hosting in Asia and it was so simple. I
was like, okay, no, no wonder that it took like three years
for you to get app service and gRPC workable with each other. So it's
very nice right now. Oh good, So again you're talking too ling as
your support. All of those things have. It's come into its own.
I don't know why gRPC isn't more popular because it's certainly it's certainly so usable
in just about every scenario where you have communication. I think it's hard.
I mean, once you have if you have a green field app where you
have services that need to talk with other downstream services and you need some kind
of I don't know request response scenario, then it's fine. But if you
have a huge application that it's already well established, it's hard in terms of
time to retrofit, so it will be a while. Yeah. No,
no. And if you're used to living in a land and then you just
poorted that up to app service, like you haven't really embraced a different view
of the web. You still kind of an iis person, yeap, And
you havn't grasped these ideas of reverse proxying and all of the other mindsets that
other web approaches, you know, not coming from dot Netland, not coming
from Microsoft Land, embraced years ago. So you know, I still feel
like we're playing catch up in a lot of respect. You know, the
day I shut off Internet Information Server was the happiest day of my life.
Dude, dude. You know, I sent both of my old servers to
the e cyclers to be torn, you know, taken apart. And that
was a good day. That was a good I am now purging all racks
out of my life. I want to see it getting shredded. I'm not
leaving until I see it shredded. Well, I shredded the drives and then
shut the chassis off. But the motherboards were for twenty thirteen. I didn't
owe anybody anything. I was on my third set of fans in those things.
But now I'm with you. You know, it's a cloud world like
less less is more at home absolutely, Plus you know, never mind that
the security implications of Internet information. Everything's on by default and yeah, yeah,
it's the it's the Swiss army knife with all the blades out right.
So what have you been doing in your day to day life with gRPC?
That's interesting arena basically helping teams that want to transition from w CF to gRPC.
That's the most common center that I've found. I currently try to keep
an eye on it just because they have some bits that really interest me.
And when those bits will be established and mature enough, I think it will
generate a lot of traction in the industry around gRPC. And I'm talking about
gRPC transcoding, especially Oh you said the T word, Oh yeah, all
right, tell us transcoding. So transcoding is a package that you can install
and allows you to also call your gRPC service from the browser as you would
do with any other HTTP API. But and it does the translation from Jason
that you send in the browser to your gRPC service. Now is this different
from gRPC web kind of? I mean the thing, yeah, accomplished is
the same thing, indeed, But it allows you from the browser to also
specify endpoints and to define like routes can bind variables from the routes. You
can have body that are bound to different models that you have as a parameter
in your gRPC service. So I don't power it's yep, indeed, But
now there's a lot of manual work that you need to do in order for
that to work in a basic scenario. And what it happens currently is that
if you have like an integration project or a unit testing project for your gRPC
service, and you also want to add transcoding, bad luck. So nothing
will work anymore, no gRPC for you. Yeah, so take your mind
off of it, don't go that way. Yeah, things will be hard,
and we should take a brief break. Yeah, let's do that.
We're gonna pause here for these very important messages and won't be right back,
and we're back. It's dot net rock some Carl Franklin, that's Richard Campbell,
Yes, sir, and we're talking to Arena skirt you about gRPC.
What's new in the last year so far, it's tooling and Azure support and
training. I don't know if trans coding is new. It's not necessarily new.
Now it's like way better, way better, right, improved, yeah,
improved yes? And uh and the WCF problem that's uh, well,
this really comes to that core issue, like you're doing all these migrations.
What are the typical problems that a dot net dev coming from WCF have trying
to understand g RPC? Like where what do you find? You're explaining over
and over again. So I think the general the I think the concept of
gRPC itself, the fact that it resides and lives under the HTP two protocol
and you have these small requests that travel on one single connection. That's the
hard beat that developers don't understand at first. And then the fact that you
have like different set of heathers poor gRPC requests. You have that concept that
is named trailers that comes sent as a response from the server at the end.
So there are a lot of new concepts. Yeah. I mean you
literally call it headers and then call it trailers. Yeah, and you work
with one type for both of them. So a dictionary, right, same?
Yeah, So I mean and the point being there called trailers because they
come after the data. It's the head of the data. But the type
that we you were you use in order to actually add key value pairs to
those trailers. It's a metadata type that you can also use to add headers
that goes before in your RPC requests. So yeah, it's just a naming
problem like the seam streets forward. And yet the words are complicated. It's
not the first industry to you confuse headers and trailers. Think of movies,
right, right, you see a movie trailer is your introduction to the movie?
Why is it called a trailer? It should be called a header or
an announcement. But it turns out there's a reason for that because they used
to show these double features and days in the theater, and the trailers for
the next movie or whatever would come after the first one, right, And
they just never changed the name. They just never changed it because it's a
word and everybody knows what it is. Right. So but the point I
think this is your point arena is like if you work in gRPC metadata,
it's going to generate the headers and the trailers as needed. No, it's
basically you add some extra concepts to the concept that you already know. Like
the h protocol protocol it has headers, right, so you can add key
value pairs in there. But underneath these you also add key value pairs that
are specific to a gRPC request. And depending on the part where you're adding
those with the gRPC request or with the gRPC response, they're called differently,
right, So so the header of a response is called the trailer. Yeah,
no problem, it's fine. I take off my parachute and okay,
I get it, and it is all metadata. So it is good to
think in the context of metadata. Let me tell you about the package I
want to send, and yeah, some stuff's going to go up front,
some stuffs going to go back. It doesn't They don't get too sweaty about
that. And even though it's weird due to the fact that this is implemented,
it's very helpful because you might have things that don't fit in the message
body basically and the request itself, so you have to have a place where
to shove those so well, and I appreciate that you don't have a separate
set of calls for the header and the trailer and so forth. You just
speak to metadata and you can do all the things. So in a lot
of ways it's simple. It's just describing it well. It feels challenging,
right, But there's also a nuance here if we're talking about different gRPC modes,
like when we have the server streaming the server streaming modes or types what
sends several GPS responses back to the client, But only after all those messages
are finished are sent, you'll get those trailers, right, So this is
the way you'll you'll know that, Okay, I'm I'm done, I received
all the responses. Here's the trailers. Yeah. Again, it's like the
issue here with gRPC is that it can be a lot of different things.
It can be you know, a synchronous streamer or just a messaging and so
the rules are different. So yeah, you gotta be careful about using trailers
and streaming mode because you don't know when you're going to get them. It
could be a while. Yeah. Yeah, I like to use gRPC in
place of you know, rest API calls to controllers in a regular application,
you know, in a Blazer app for example. That's I really love it
and of course, it wasn't meant to do that, but it works.
It works great fast, and yeah, I mean it's interesting you say that
called that it wasn't meant to do that. Yeah, it wasn't built for
that. What is gRPC meant to do? Like, it's not just about
streaming either. Well, I mean, and we'll take that. I mean
it was built for micro service communication, service to service. Yeah. I
mean we can start like with a short history. How many of us heard
the term micro services, like I'm developing micro services, the team develops micro
services, when in fact those are not are just services that respond with Jason.
Yeah, and they passed that data to each other with Jason. Yeah.
So people defaulted to something that is so called REST, like to describe
an API that responds with Jason as a data foremant, right, which made
all the rest people angry. What I remember about REST is mostly hearing I
was doing it wrong. I have so many beefs, and when we were
talking to Grant Barrett about this, I have so many beefs with people who
use the wrong word for things, and I just got to learn to let
it go and let them play on my lawn. It's going to be okay.
You know it's going to be okay, but I still have some Here's
one when people describe the Browning Milliard reaction that they get on meat, they
say it's caramelizing. No it's not. It's not caramelizing. There's no sugar
in me. Little things like that. But people get a word for something,
and you know, it's popular, and so then they overuse it and
they put it on everything, and it's rest and the RESTful, which is
a nuance. I'm happier with rest dish. I'm not going for perfection your
voice. I'm just trying to get my wrap to work. Rested, well
rested, it's well rested. Best to keep it simple. Yeah, we
should just start making up things and asking people on the show. So how
long do you let that proof? Well? I use the oiling library oiler
and then I wrap it, oh man, and then it's only proofed when
doubled, and then you go, you bacon, let it icd to bake
a bit ye down the pipeline to the bank. Yeah, we're making work
way way too an extreme that I really enjoying. This all started with the
metadata conversation in this naming problem, and now we've promptly painted a worse one.
You know, I'm presuming that the folks who wrote this, we're trying
to do a good job. And it's still you know, there's some challenges
here. Yeah, it's a technology that needs to mature, and it will
mature enough when people will use it, because otherwise it's just a tool out
there that nobody uses and no one will invest in developing it. Yeah,
and can you make it simpler? Like it does feel like gRPC is mature
enough that we are looking at some simplicity down to the tool links better.
Yeah. Yeah, I think we're we're getting there. It is taken a
while. Oh yeah, I mean there is a reason for it took for
it to took that amount of time. I mean there was no support in
Asia. I don't know about a WS, but the only moment where you
could use RPC in a real production environment was if you had a virtual machine
where you can't run the service. Yeah. I don't really know how many
people are doing that anymore. Yeah, that's not a reason to run a
VM. Reason running VM is you're trying to get you know, you're on
your way off of it. Not that I'm building new things. I need
a VM for it. I fairly enjoyed a moment where I had to run
APIs as Linux services right machines start though, see what's happening. I was
very excited to do that. That's a good way to slow people down from
running a VM. You can run a VM, but only if it's Linux.
I had to learn if your commands linux pseudo, make me a sandwich,
Pseudo, make me a pseudo? What are what is server reflection and
how does that play into all of this? So server reflection will allow you
to discover what Jersey services you have available inside an endpoint services operations in fact
and the tooling. I'm going to talk about tooling, especially about Postman in
here, because now it allows you to have like an ur L of the
service and your server reflection, and if you have reflection enable on the server
side, it will discover what can't you with that swagger for GRPs kind of
kind of yeah yeah, And you can also execute those because Postman will generate
messages for you domulance, but you can use those in order to call those
operations. Nice. Would you use discovery in production or is this really just
a tool when you're developing to make it easier to get hooked up. I
think it's meant to be used with an API gateway or something like that,
right, so sort of a self service discovery. Otherwise I don't see the
point too like, I mean, I think it kind of should know your
end points right right, and never if you have with this whole we don't
know where end points are. Yeah, No, because it's g RPC is
meant for point point communication, and that assumes that you know where you will
make requests and what should look like. Yeah, because you have the protocol
buffers, files and types that describe basically what you have available. Now you're
twisting my brain. It was like, am I going to generate the proto
buffs on the fly because I've used discovery to making right now just because you
could do it? Yep? Yeah, all right, I mean, but
I appreciate you want something discoverable, you know, nothing else, just to
spit out an error message, right you have a I don't know. This
has been a thing for me lately. I kept trying to write a better
error message because object not found pisses everybody off. Like I kind of got
this reflexed. If we made a call and it failed, then I'd like
to invoke the discovery and include it in the log. So it's like,
hey, you know, I failed to make this call, but I did
the discovery on it, and this is what it's actually expecting. Like you've
just shortened everybody's pain up a whole bunch, right, you know, I
have to go back and look. It's like at the moment when I made
this call, this is what it was expecting, and this is what we
SENTENCEDEAD. Yeah, but to be here reflections So far, for me,
it has been useful just to play around to discover like what's available on the
path that I know, and with Postman because it allows you to like load
the live RL and to see what's there and to invoke it for testing purposes
of course. Nice. Yeah, and you like those tools, so it
just gives you confidence of what's going on. Oh yeah, I mean I
always prefer a tool where I can click three buttons to make sure the thing
that I want it to work works. Then I'll manually create a client try
to debugget see what's the error if any, so it's easier. Yeah,
I like that. I have a question for you, a particular question about
streaming in gRPC which I've been doing for a while, but I'm not really
sure what's going on under the hood. So in your protofile, if you
have an RPC that returns a stream of you know, some message type that
instead of you know, a repeated message type, then when you implement that,
you would think that there would be an I sink enumerable in there somewhere.
But instead what you get is the request and an I serve stream writer
of your type, you know, and then a server call context and then
you basically can just await you know, response streamed dot write a sink whatever
your object is in a loop and it you know, I would I was
expecting an I sink numerable in C sharp. Is that's what's actually happening under
the hood, To be fair, I don't know for sure, but to
be fair, I don't think that is what happening under the food And I
think they allowed us to have that stream reader writer because you have the both
just to make it as low level as they can. Yeah. So you
have this stream, your job to do whatever you want with it. Yeah.
I realized this is an answer I could easily find by going and looking
at the source code and get hub. But I just wondered if you knew.
I'm sorry, I'm going to air quote easily. Yeah, easily.
You're right. I can. I can answer this question myself because I can
go and look at the source code, cut and paste it into get Up
Go. Pilots say what the hell does this mean? I can't ask chat
jipity. I was just gonna say, or you could ask chat jipity.
Yeah, we all went to the same thing. Give me a large language
model is going to answer this question for me? Yeah? Not? Do
I trust it? That's yeah, Now it wasn't correct. How would you
know? It's like it's a great summarizer. If it wasn't a great summarizer,
how would you you know? Yeah, sounds good, but always search
and research of the fact that chad jipt gives you. Yeah. Yeah,
you can say where what what's the get up page where you found this answer,
and they'll say, I have no idea where on Google? I'm sorry,
this was derived from a from a mirror site on four chance, so
it must be correct. Oh my goodness. Okay, we were talking about
gRPC. I mean because it's good. It's really good. As much as
I think we've been hard on it today. Yeah, I know, it
really is amazing. Yeah, but I appreciate tools like Postman, like,
oh okay, yeah, if I was learning my way around gr PC starting
to play with requests through Postman, so you can watch the interaction, that's
awesome. That's awesome. Yeah, that's good stuff and get started. And
it also makes the binary human readable, which is awesome for Postman because at
first that was a show stopper, like how can I a thing that is
binary? I don't know how to decipher binary? So this will makes it
way easier. So training is a big part of what you do. Are
there any regular classes that you teach online where we could learn this stuff?
Not? Up until now, I'm basically working on business to business contracts.
So there are companies if they called me, hey, we need to learn
about this or that, I can provide them some trainings around it. So
if somebody who's interested in how many what's the minimum number of people that you'd
want to teach too? Minimum? I did it for five people because the
company wanted one, right, But to be honest, I always prefer like
having a bigger group of people. Sure, so the questions are way easier
to answer because from thirty people or fifteen people, you'll always find some questions
that are into and they will start debates. And I always love the interaction
with you put your hands back, sit back. Now the classes it's called
by itself. See what I started. Yeah, but it's everybody working on
one project and you can get into a discussion about the project like that's that's
good to do, yeah, without a doubt. But you also had some
online training stuff too, some videos maybe oh yeah yeah, yeah, uh,
forget about those. No I'm joking, No, I'm joking. Oh
it was so hard to record record those. It's a whole new type,
so different. Oh yeah, a different life. Yeah. So uh oh
yeah it's hard. So uh big thumbs up for people that are doing this
for a living or full time their content creators. And to put your cell
phone camera and to speak like coherently. Yeah, it's it's a thing.
Yeah, So coherently coherence comes with editing though, you know that's the good.
Yeah, if you know how to like take breaks or have stop words.
And I learned that the hard way. I do that. I subscribe
to the max Headroom style of editing, where everything I just jump cut all
the time. Yeah. As long as you can hear me and understand me,
you can put up with a twitch or two. Yeah I think that
and the hard hair. Yeah yeah, exactly my mom up. So if
anyone wants to to learn more about gRPC, I have a class around four
hours around g RPC from zero to Hero. You can find the link on
my blog. It's there with a small discount. Excellent. Yeah cool.
So what's next? What's on your what's in your inbox? To be here?
In need or want to start a YouTube channel, I have a gazillion
plans. Man. Oh yeah, meteor, because I said I did this,
I did the course. It's hard. It might be some learning curve
for me with YouTube tool, but it might also prove useful. Well.
Feel free to reach out to me because I've been doing it for a long
time and if I can help in any way, I will. For sure.
I'm gonna book a slot in your calendar. You got And of course,
by the time this show comes out, we'll have already been to NDYC
London and back again. But I will you and I will see each other
in the NDC London. Yep. Very good. Anything else that we forgot
to talk about arena. Nothing that crosses my mind. All right. Well,
on that note, let's call it a show. Thanks very much for
spending this time with us. It's always great to talk to you same,
Thank you. All right, We'll talk to you next time on dot net
rocks. Dot net Rocks is brought to you by Franklin's Net and produced by
Pop Studios, a full service audio, video and post production facility located physically
in New London, Connecticut, and of course in the cloud online at pwop
dot com. Visit our website at d O T N E t R O
c k S dot com for RSS feeds, downloads, mobile apps, comments,
and access to the full archives going back to show number one, recorded
in September two thousand and two. And make sure you check out our sponsors.
They keep us in business. Now go write some code. See you
next time you got javans My is home, then my Texes in a line. Credit ballh