Speaker 1: How'd you like to listen to dot net rocks with
Speaker 1: no ads? Easy? Become a patron for just five dollars
Speaker 1: a month. You get access to a private RSS feed
Speaker 1: where all the shows have no ads. Twenty dollars a month,
Speaker 1: we'll get you that and a special dot net Rocks
Speaker 1: patron mug. Sign up now at Patreon dot dot NetRocks
Speaker 1: dot com. We'll get down rock and roll. It's dot
Speaker 1: net Rocks. I'm Carl Franklin and I'm Richard Cavell, and
Speaker 1: it's gonna be a good show. Chris Woody Woodruff is
Speaker 1: here with us, but before we talk to him, I
Speaker 1: need to talk to you, Richard. What's up? You know,
Speaker 1: this is the show that comes out during build. So
Speaker 1: how is your build? Oh it's wonderful.
Speaker 2: Yeah, you were having a great You've been having a
Speaker 2: great time. I think you're flying back on Thursday, too,
Speaker 2: so you should be in the air at this particular moment.
Speaker 1: That's right. I need to fly back a little bit
Speaker 1: early because my daughter is having a graduation party for
Speaker 1: her masters So that's awesome. Well, and it looks like
Speaker 1: Thursday's only a half day anyway, now, so yeah, not
Speaker 1: a big deal. Well, this party is going to involve
Speaker 1: lots of smoked meats.
Speaker 2: Well, that's one of my favorite kinds of party.
Speaker 1: Yeah, I've got something interesting for Better Know a Framework,
Speaker 1: So let's roll the crazy music. All right, man, hit me? Yeah,
Speaker 1: aspnut Corp dot Diagnostics dot health checks. Oh no, not again.
Speaker 1: Are you actually doing the framework on Better Know a framework? Well,
Speaker 1: it's not really a framework. It's a it's a third
Speaker 1: party thing. It's oh, it's okay, it's as a get
Speaker 1: up repo. Yeah, enterprise health checks for asp net Corp
Speaker 1: diagnostics package. But that's awesome if you scroll down, like
Speaker 1: when you look at all of the things that it's about,
Speaker 1: all the package, just that it supports. It's like everything everything. No, wow,
Speaker 1: but it's only just asp dot net corey toly yeah Toly,
Speaker 1: But I mean, how unhealthy can core get? Yeah, so
Speaker 1: it's it's too much for me to explain. I mean,
Speaker 1: it's basically that's what it is. It's health checks but nice.
Speaker 1: But it supports everything, so it's cool. I'm not going
Speaker 1: to read the list. It's a long list. Check it out. Yeah.
Speaker 2: But yeah, all right, you don't you a more importantly,
Speaker 2: you don't have to write this stuff. Somebody's already built
Speaker 2: a repository. It's got a bunch of contributors.
Speaker 1: Yep.
Speaker 2: So it's not up on nine yet. It's still dot
Speaker 2: net eight. But who knows. By the time you hear
Speaker 2: this than they I've already got it.
Speaker 1: I've already got it. I can see the issue in
Speaker 1: there being worked. So that's a good sign. Yep, good stuff. Awesome, No,
Speaker 1: learn it, love it. Hey. Richard who's talking to us today.
Speaker 2: Grabbed a show off of episode nineteen forty six, the
Speaker 2: one we do with Elias Pirnin when we were talking
Speaker 2: about audio, video and dot net, and this comment comes
Speaker 2: from Kurt Nichols who said, it's just a few weeks ago.
Speaker 2: He said, for what it's worth, Marshall dot alec h global,
Speaker 2: which is something that we talked about on the show.
Speaker 2: For doing dealing with video stuff is unmanaged memory allocation.
Speaker 2: Unmanage memory is not involved in garbage collection, does not
Speaker 2: move within the address space, and does not need to
Speaker 2: be pinned, and span of tea is very handily for
Speaker 2: manipulating a native buffer. If you're doing things like this,
Speaker 2: consider implementing a safe handle that is safe handle zero
Speaker 2: minus one is invalid for releasing the allocation. So actually
Speaker 2: a very important clarification. And once again here we are
Speaker 2: talking about old school yeah sockets and stuff, you know,
Speaker 2: managed versus unmanaged behavior. Elias also responded to that comment.
Speaker 2: He said, Span of Tea is awesome and this safe
Speaker 2: and then I asked, this safe handle take care of
Speaker 2: the allocation too, or just provide a wrapper of sorts
Speaker 2: for the life cycle stuff and it just provides the rapper.
Speaker 1: You have to deal with your own allocations. Cool.
Speaker 2: So, Kurt, thank you so much for your comment in
Speaker 2: a coffee. Music cod by on its way to you,
Speaker 2: and if you'd like a copy of music go buy.
Speaker 2: I right a comment on the website at dot net
Speaker 2: rocks dot com or on Facebook, So publish every show
Speaker 2: there and if you comment there and I reading on
Speaker 2: the show, we'll send you copy of music to go buy.
Speaker 1: Music two code my is still going strong, twenty two tracks.
Speaker 1: I listened to it all the time still when I'm coding,
Speaker 1: and you can download it well yeah, penny for it
Speaker 1: of course, but you can get it at music to
Speaker 1: code by dot net. You can get the collection in
Speaker 1: MP three flack or wave or all three if you want.
Speaker 1: Nice hey knock yourself out.
Speaker 3: I have a done DVD, not DVD CD.
Speaker 2: Yeah, that's right, school. Yeah, you burned it to CDR.
Speaker 1: I love that. No, no, no no. When I came
Speaker 1: out with it, you actually made a CD.
Speaker 3: Yeah.
Speaker 1: Yeah, so you have production CDs I have. I did.
Speaker 1: That was the whole uh kickstarter. That also speaks to
Speaker 1: the idea that Chris has a working CD player, which
Speaker 1: is shocking to me. It is shocking to me too.
Speaker 3: I have a couple my kids have CD players because
Speaker 3: they like to play my old CDs.
Speaker 1: I just bought a new car at VW Atlas and
Speaker 1: it does not have a CD player in it, but
Speaker 1: it has everything else. Yeah, just to just be key
Speaker 1: in somewhere, yeah, sort of. Before that was Chris Woody
Speaker 1: woodrowf our guest. But before I introduce him, let's talk
Speaker 1: about nineteen fifty one. All right, where do you want
Speaker 1: to go? So nineteen fifty one is the show number,
Speaker 1: and so what we've been doing is highlighting what happened
Speaker 1: that year. Major events include the continuation of the Korean War,
Speaker 1: which we talked about last week, the Treaty of San Francisco,
Speaker 1: which formerly ended the Pacific War with Japan, and the
Speaker 1: beginnings of the Cold War with the Rosenberg Trial, also
Speaker 1: the Schumann Plan. Six nations agreed to pool European coal
Speaker 1: and steel resources, which was a precursor to the European Union. Yeah,
Speaker 1: and let's see, that's the easy Cupean Eecy economic cooperation
Speaker 1: is the beginning of that. In Libya gained independence from Italy.
Speaker 1: I don't know if people knew that that Libya was
Speaker 1: once part of Italy. Right, and then you sort of
Speaker 1: actually mentioned the Rosenberg Trials. That's when supposedly the Rosenbergs
Speaker 1: leaked the plans for the atomic bomb to the Soviets. Yeah,
Speaker 1: not good.
Speaker 3: No.
Speaker 1: Technological advancements included the first transcontinental television broadcast, the introduction
Speaker 1: of the first commercial color TV broadcast, and the first
Speaker 1: direct dial telephone service. So up until then you had
Speaker 1: to call an operator, yeah, to get a call put
Speaker 1: through it. And how could we forget that UNIVAC one
Speaker 1: was delivered by Remington Rand.
Speaker 2: It wasn't actually delivered. There's a great story here. Oh
Speaker 2: it's cool. So UNIVAC one the very first one he
Speaker 2: gets sold to the Census Bureau, right, and that's the
Speaker 2: one that comes that's available in nineteen fifty one, and
Speaker 2: so the sense they do this big thing in March
Speaker 2: of fifty one about hey, so the first computer is
Speaker 2: going to say sypua da da da da da. The
Speaker 2: party's over now, It's like, okay, it's time to deliver this.
Speaker 2: And I'm like, listen, it's the only one we got.
Speaker 2: We kind of wanted to use it as a demo unit,
Speaker 2: and we're afraid to take it apart in case it
Speaker 2: doesn't go back together again.
Speaker 3: Oh man.
Speaker 1: So the second one was actually for the Pentagon, and
Speaker 1: that one they install at the Pentagon the same year.
Speaker 1: They don't actually get up the nerve until they build
Speaker 1: a couple more. They don't get up a nerve to
Speaker 1: take apart the demo model and move it to the
Speaker 1: census Buro till the end of the year. And this
Speaker 1: thing is this the one that took up the city block. Well,
Speaker 1: it wasn't quite that big, but it is big. But
Speaker 1: the UNIVAC console, if you ever go look at this,
Speaker 1: it's what you think of when you think of old
Speaker 1: school computer. It's the great, big black panel with all
Speaker 1: the switches and the knobs and stuff on it. Like
Speaker 1: there's no CRTs at this point, right, we're ahead of
Speaker 1: all of that, right.
Speaker 2: What more important invention from nineteen fifty one, which is
Speaker 2: this is the year that Bell Labs announces what they
Speaker 2: call the grown junction transistor. So this is shockly you know,
Speaker 2: the Bell Labs they had the point contact transistor, is
Speaker 2: trying to develop an easier to make transistor, although it's
Speaker 2: still not real easy to make, right. And what he's
Speaker 2: doing is that he's melting semiconductor germanium as making into
Speaker 2: a liquid it's very fairly high temperature, and then pulling
Speaker 2: that out as a single crystal. And that the geranium
Speaker 2: is actually doped, so there's a little bit of antimony
Speaker 2: in it as well. That makes it what they call
Speaker 2: an N type semiconductor. Why antimony, Because geranium has if
Speaker 2: you go look at your periodic table and I know
Speaker 2: you have one, it's right over there, has four outer
Speaker 2: electrons on its outer electron shell, which is what makes
Speaker 2: it a semiconductor, and antimony has five. So in the
Speaker 2: natural crystal forming process, when all those electrons will lock
Speaker 2: in with other ones, the doping material ends up with
Speaker 2: a free electron and that makes it and type stepping conductor. Wow,
Speaker 2: So you're drawing out the single crystal germanium. And about
Speaker 2: Chris and I, our mouths are just hanging open here.
Speaker 1: We're just like, what the heck.
Speaker 2: So now you're literally talking in thousands of an inch,
Speaker 2: but you're pulling a single crystal of this N type
Speaker 2: geranium out of the liquid and as it's forming, it's
Speaker 2: only going to be you know, maybe a quarter inch
Speaker 2: long the whole thing. But as it's forming, you put
Speaker 2: a droplet of P type on it, which is geranium
Speaker 2: doped with gallium. And then you've cut off the crystal
Speaker 2: and now you have to weld gold wires to it.
Speaker 2: But you now have an N type rob with a
Speaker 2: P type mount in the center of it. So you're
Speaker 2: making an NP N transistor.
Speaker 1: Somebody had to have a wild imagination to be able
Speaker 1: to say, hey, if we did this, what would happen?
Speaker 2: But this is how semiconductors. And again now now that
Speaker 2: they've described a process to get idea of how expensive
Speaker 2: these transistors were, like they were basically not commercially viable, right,
Speaker 2: but that they worked and they were stabler even though
Speaker 2: they were essentially handmade. Then the other types, although interestingly
Speaker 2: in nineteen fifty one as well, ge and RCA because
Speaker 2: that was Bell lads who were just talking about announced
Speaker 2: a different kind of transistor called an alloyjunction transistor. So
Speaker 2: here what they did was they made a geranium crystal
Speaker 2: which was also dope with n antimony, so it was
Speaker 2: ND type, and then they fused droplets of indium doped
Speaker 2: gallium on each side of it to make what is
Speaker 2: now known as a p NP transistor instead of an
Speaker 2: NPN transistor. Was it cheaper, It was a little easier
Speaker 2: to make, but not a lot easier to make, but
Speaker 2: it also worked. It was faster to form because he
Speaker 2: didn't have to actually draw a single crystal. At the
Speaker 2: same time, all of these things become obsolete by nineteen sixty, right,
Speaker 2: But there were stepping stones when the Planner. Yeah, when
Speaker 2: the Planner transistor comes along because the planet, which is
Speaker 2: actually a way to mass manufacturer transistors. Although there were
Speaker 2: lower quality, they were cheap. And that was made by
Speaker 2: fair Child Semiconductor, which was the company formed out of
Speaker 2: Shockley's company that was formed to create these things. And
Speaker 2: Shockley was a bit of a character, not a nice
Speaker 2: man at all, and he called those eight that laughed
Speaker 2: to form share Child the traitorous eight, though most of
Speaker 2: those guys would go on to form a third company,
Speaker 2: you know.
Speaker 1: As Intel Intel. That's it. Yeah.
Speaker 3: You know.
Speaker 1: The thing that I know is that scientists, I think
Speaker 1: it was in the fifties, found that if you group
Speaker 1: two helium adams close enough together that they would actually laugh.
Speaker 1: Yeah he he helium fusion. Is that what we're talking about? Okay, okay,
Speaker 1: all right, all right, well that's all I got. All Right,
Speaker 1: we're here to talk about dot net and I think
Speaker 1: c sharp networking with Chris Woody Woodriff, So let me
Speaker 1: introduce him. Chris Woodriff is a seasoned software developer with
Speaker 1: a career that spans before the dot com boom, kind
Speaker 1: of like us. He specializes in enterprise web development, cloud solutions,
Speaker 1: and software analytics, is on API design and scalable architectures,
Speaker 1: and is recognized as a Microsoft MVP and dot net
Speaker 1: and web development. He's also a dedicated mentor, instructing courses
Speaker 1: for aspiring tech professionals and speaking at international conferences on
Speaker 1: database development, web APIs, and software architecture. Woody co hosts
Speaker 1: the Breakpoint Show podcast and has previously led engineering teams
Speaker 1: at Rocket Homes and Driven Developer relations at Rocket Mortgage.
Speaker 1: His consulting work has benefited companies like Apartments dot Com
Speaker 1: and Major League Baseball Advanced Media, right MLB.
Speaker 3: MLB Advanced Media.
Speaker 1: Yeah, they're a offshoot, all right, but it is Major Baseball,
Speaker 1: not something else. Okay. Woody enjoys bourbon. And I know
Speaker 1: this because he is the guy that introduced I think
Speaker 1: Richard and myself to Blanton's maybe maybe definitely introduced me.
Speaker 1: I don't know about Richard.
Speaker 3: Yeah, I take bourbon everywhere with me when we go
Speaker 3: to conferences.
Speaker 1: Yeah, and he enjoys writing about his experience at Woodrift
Speaker 1: dot dev outside of tech. You cannect with them on
Speaker 1: Blue Sky at Woodrift dot dev in Macedon at Macedon
Speaker 1: dot Social Slash at c Woodrift. I can't believe we've
Speaker 1: never had you on the show before. We've talked to you.
Speaker 1: Kind of embarrassing, isn't it talked to you so many
Speaker 1: times at all these conferences going back years.
Speaker 3: Yeah, it just it just never happened. It's okay. It
Speaker 3: takes time, yeah, you know what. You know what, like bourbon,
Speaker 3: it takes time to take time for for something a
Speaker 3: good thing to come out.
Speaker 1: So okay, I'll take that, but yep, we're sorry.
Speaker 3: Yeah, no problem.
Speaker 1: Well, like a Pappy twenty three.
Speaker 3: Well, back in the day, we had a competing podcast,
Speaker 3: you know we were doing. I was on deep Fried Bites.
Speaker 1: Yeah yeah, I remember. So I never considered you guys competition.
Speaker 3: I know. It was never all friendly. We're all friendly.
Speaker 1: Yeah, so I do remember deep Fried Bites good stuff.
Speaker 3: Yeah yeah so yeah.
Speaker 1: Speaking of bourbon, I have a an unopened bottle of
Speaker 1: Pappy van Winkle twenty three year old, still unopened. It's
Speaker 1: still unopened. It's in a safe.
Speaker 3: Richard hasn't seen it yet. Huh.
Speaker 1: Well no, when I got this batch and then I
Speaker 1: promise we'll talk about C sharp networking. When I got
Speaker 1: this batch, it included a fifteen year old which I
Speaker 1: gave Richard for his birthday, which has been drank and
Speaker 1: it has it was drunk pretty quickly after I gave
Speaker 1: it to you.
Speaker 2: I think, listen, I do not collect whiskey. I drink whiskey.
Speaker 3: Yeah yeah. So my brother's a doctor, so he buys
Speaker 3: the uh Pappy in the family. But I do have
Speaker 3: to say my first bottle of good bourbon was George T.
Speaker 3: Stag Love It four two thousand and four and I
Speaker 3: was living in Lexington at the time, and uh, one
Speaker 3: of the guys in my church was a sales guy
Speaker 3: for Buffalo Trace and said, hey, do you want a bottle?
Speaker 3: And it was like forty five dollars or something, this
Speaker 3: before Bourbon exploded. So yeah, And how that bottle got
Speaker 3: killed was my brother in law. I saw him mixing
Speaker 3: it with diet coke the last ounce or two. So yeah, yeah,
Speaker 3: oh that broke my heart.
Speaker 1: It's just it's shameful.
Speaker 3: And I could feel everyone listening.
Speaker 2: Just keep I keep a bottle of Maker's Marker. It's
Speaker 2: like here, just go ahead, put your coke in this.
Speaker 3: Yeah. Yeah, I always have a cheap bottle like Beam
Speaker 3: or something around. Yeah.
Speaker 1: So but yeah, nothing wrong with that. Well anyway, yeah,
Speaker 1: you were the first one that introduced me to Blant
Speaker 1: and said, have you ever had Blants? If you like
Speaker 1: Makers mark you know, because it's weeded, it's weeded like Makers,
Speaker 1: and I think it's better. And then it shortly thereafter
Speaker 1: became very hard to find. And now that there was
Speaker 1: a flood at Buffalo Trace, So do you know the
Speaker 1: status of that? Are they are they back to production?
Speaker 3: Yeah? It only took them a week to get back
Speaker 3: to production. And all of the barrels that were submerged
Speaker 3: or partially submerged in water, they actually sold because they
Speaker 3: couldn't bottle them, so they actually sold them to collectors.
Speaker 3: And I hear people are going to like bottle them
Speaker 3: and sell them or you know, like orphan barrel. You know, sure,
Speaker 3: orphan barrel came out. I think it's supposed to be
Speaker 3: kind of like that. But no, they were back up
Speaker 3: pretty quick.
Speaker 1: That's good.
Speaker 2: Yeah, yeah, so because the water directed quickly. But you
Speaker 2: know that Pappy warehouse on the on the Buffalo Trace property,
Speaker 2: it's on there. It's half underground, so I'm sure that
Speaker 2: must have filled up with water. Yeah yeah, and then
Speaker 2: they they did, you must have lost a lot.
Speaker 3: You know. They had the story where they were digging
Speaker 3: for a new a new rick house.
Speaker 1: A rick house is where they store the barrel, right,
Speaker 1: and and found the old old old distillery.
Speaker 3: And they found the old old like before, like the original.
Speaker 3: She's distilled, and I think that's still underwater. I think
Speaker 3: they're trying to pump out water in that.
Speaker 1: But such a shame, but yeah, yeah it is. Okay,
Speaker 1: So we're here to talk about C sharp networking. And
Speaker 1: this is a topic near and dear to my heart,
Speaker 1: but only because many many, many, many many years ago
Speaker 1: I wrote a book on socket's programming and visual Basic.
Speaker 1: And it was even before visual Basic had a really
Speaker 1: stable windsock control. I was actually using a third party
Speaker 1: control because it was working better. I caught some flack
Speaker 1: over that, but coming from serial communications programming before that,
Speaker 1: which was a nightmare. The you know, the the TCP
Speaker 1: IP stack and windsock on top of that was like
Speaker 1: a dream come true. So I know, I know that
Speaker 1: you do cover sockets in your your online book on
Speaker 1: c sharp networking, but it's a vast topic and I
Speaker 1: don't know where do you want to start.
Speaker 3: I don't know we can start why, Like why did
Speaker 3: I write? I mean, people ask like, why do you
Speaker 3: write a book right these days when everything's online and.
Speaker 1: Most people also don't care about the low level programming stuff.
Speaker 1: Give me an HDP client, you know, give me some
Speaker 1: poll exactly, and that's it.
Speaker 3: Well, and in the second half of the book, so
Speaker 3: the book is kind of broken up into two parts.
Speaker 3: The first part is all the fundamental stuff that I
Speaker 3: think people should know. Maybe they don't need to use
Speaker 3: it every day, but you should understand like what the
Speaker 3: dot net framework abstracts away. And then the second half
Speaker 3: I go through all the different types of network communications.
Speaker 3: So I talk about like rest APIs and web sockets
Speaker 3: and MQTT and gr PC and message queueing and stuff.
Speaker 3: But what the most the most fun I had in
Speaker 3: writing the book was the fundamental stuff because I love HTTP,
Speaker 3: Like I've actually read the full protocol and I don't
Speaker 3: think anyone should. I just kind of did it to
Speaker 3: to do it because I was so interested. I mean,
Speaker 3: I've done conference talks where I just talk about HTTP,
Speaker 3: and so that got me interested in this, and I
Speaker 3: was like, man, I really want to dig down into
Speaker 3: this and get something out so people can know a
Speaker 3: little bit more about what it really takes to communicate
Speaker 3: between two computers.
Speaker 1: You wanted to inhabit the ghost of Tim berners Lee.
Speaker 3: Sure, yes, Yeah.
Speaker 2: It also occurs to me here that if you're trying
Speaker 2: to to side on a particular connection process through any
Speaker 2: one of these APIs, through MQTT ORGRPC and so forth,
Speaker 2: at least knowing them all in context so that you
Speaker 2: can make a more informed decision. Yeah, yeah, I mean
Speaker 2: most of the time we don't care much about networking
Speaker 2: because the defaults are good enough, but sometimes they're not.
Speaker 3: Well, here's the thing. I mean. You have to know
Speaker 3: about about asickerness, so I have a chapter on async.
Speaker 3: When it's related to networking. You have to know about
Speaker 3: multi threading, so I have a chapter on multi threading
Speaker 3: in relations to networking. And down the line error handling,
Speaker 3: data serialization, error handling, and fault tolerance. So you were
Speaker 3: talking about Polly, I have a chapter on Polly that.
Speaker 3: You know what, most people when they write their servers
Speaker 3: and their clients never think about fault tolerances, never think
Speaker 3: about what happens if I don't get anything back from
Speaker 3: the other side. And you should.
Speaker 1: Absolutely, yeah, and just lifting a error is not enough.
Speaker 2: I mean the whole thing with Polly, and not to
Speaker 2: plug your thing more, Carl, But I'm pluging your thing more.
Speaker 2: But it's like, listen, there's a bunch of things you
Speaker 2: could do, but you shouldn't write any of that because
Speaker 2: it's written for you. Just go get the poly library
Speaker 2: and you'll be fine.
Speaker 1: Yeah.
Speaker 3: Yeah, there's there's lots of patterns to Polly that that
Speaker 3: will solve a lot of your problems.
Speaker 1: Or just use the HDP Client Factory, which is sort
Speaker 1: of Polly under it, but it's easier.
Speaker 3: Yeah, yeah, yeah, And and Microsoft has come out with
Speaker 3: their own Polly like like you said, so you don't
Speaker 3: have to use Polly. I still think Polly is has
Speaker 3: lots of edge cases that it covers. So it's it's
Speaker 3: I think a little more breadth.
Speaker 1: Yeah. So and also you know, it's it's good to understand.
Speaker 1: For me, it was really good to understand just pure
Speaker 1: windsock programming, pure sockets. Right, I have a client, I
Speaker 1: have a server. Client connects to the server. That connection
Speaker 1: stays open until one of them closes it, and so
Speaker 1: during that time you can send and receive at the
Speaker 1: same time asynchronously over that socket. And uh, but then
Speaker 1: you quickly realize when you want to go to use this,
Speaker 1: Oh I what if I, you know, want to define
Speaker 1: some message that I want to send and have the
Speaker 1: server understand it. Well, now how do I do that?
Speaker 1: So now you've got to think about protocols and if
Speaker 1: you're both not if both sides aren't using the same protocol,
Speaker 1: hilarity ensues. You know, it's like pulling up to the
Speaker 1: drive through and uh, you know Wendy's and can I
Speaker 1: help you? And you say, yeah, I want to make
Speaker 1: a deposit. Yeah right, what what are you talking about?
Speaker 3: Yeah? Yeah, And that comes down to when you open
Speaker 3: up a socket. There's really there's three types of protocols
Speaker 3: that that you get. You get uh TCP, you get UDP,
Speaker 3: and you can do your own you can have your
Speaker 3: own custom protocol like do whatever wild things that you want.
Speaker 3: Right and for a long time, I mean, most people
Speaker 3: use TCP, but if you're streaming video or streaming audio,
Speaker 3: UDP is the way to go. It's a much better
Speaker 3: protocols the last week and.
Speaker 1: See, yes, because TCP has error checking built in and
Speaker 1: delivery guaranteed delivery basically exactly exactly so. And the thing
Speaker 1: that a lot of people don't understand is routers and
Speaker 1: TCP IP routers, and the whole protocol was built to
Speaker 1: a stand nuclear war yep, dark now. It was built
Speaker 1: so that, hey, if one set of routers goes down
Speaker 1: in the network, we'll just find our way around.
Speaker 2: Yeah yeah, which it still does to this day. You
Speaker 2: don't even think about the fact that, yeah still does.
Speaker 2: Undersea cables go down on a routine basis and most
Speaker 2: people can barely tell.
Speaker 1: Yeah, exactly, and we just find another way around.
Speaker 3: Richard, when you were talking about transistors, I was really
Speaker 3: thinking when you said in the sixties, but really what
Speaker 3: made transistors so cheap? And uh is really the space program,
Speaker 3: which is another government I mean they had to mentorize
Speaker 3: to be clear.
Speaker 1: Fairchild Semiconductor's original business was building navigation systems for i CBMs.
Speaker 3: Yeah.
Speaker 2: Yeah, and they needed to make the integrated circuit to
Speaker 2: get that system down to be small enough and robust
Speaker 2: enough to survive a launch into space.
Speaker 3: Exactly.
Speaker 1: Yeah. When life and death are on the line, you know,
Speaker 1: we get innovative.
Speaker 3: Yep, yep. And you know what, we have the Internet too,
Speaker 3: and it's it's cool. I really love. I mean I
Speaker 3: was programming when I was a kid with nothing I had.
Speaker 3: I couldn't afford a modem, I couldn't afford the long
Speaker 3: distance phone calls. So when I got to university, man,
Speaker 3: I had so much fun, right because this weird thing
Speaker 3: called Mosaic showed up on the on the Unix on
Speaker 3: our solarist machines.
Speaker 1: That's one of the first web browsers.
Speaker 3: Yeah, it was. It was the first web browser mosaic.
Speaker 1: I also remember Cello. You remember Cello?
Speaker 3: Remember Cello?
Speaker 1: It was ninety three something like that.
Speaker 3: Yep. And I remember Gopher before yes, before uh, the Internet,
Speaker 3: we were using Gopher for lots of research and stuff.
Speaker 1: So Gopher is a very simple folder based protocol that
Speaker 1: instead of having websites, you have Gopher sites and you'd
Speaker 1: get a basically a menu of folders and you could,
Speaker 1: you know, trans you know, navigate down. There was no
Speaker 1: search or anything. You have to know where it was.
Speaker 1: But if somebody published a paper in a published papers folder,
Speaker 1: you know, and you you basically had a URL to
Speaker 1: it and you can download it anywhere. And I used
Speaker 1: to use Gopher for boy, this is going back, but
Speaker 1: one of the first talks I did on the Internet
Speaker 1: was ges satellite imaging Gopher server. And I can't remember
Speaker 1: where it was. It was in California somewhere, but it
Speaker 1: would their computers would download satellite images every five minutes
Speaker 1: and populate these Gopher servers. And so here I am
Speaker 1: doing a talk at vibits on the Live Internet and
Speaker 1: I show this you know Pacific, because I was in
Speaker 1: California and San Francisco. I showed a picture over the
Speaker 1: Pacific and there was like this huge, huge storm cloud
Speaker 1: coming and it was only five minutes ago that this
Speaker 1: thing was posted, and people like ran out of the room. Yeah,
Speaker 1: suddenly nobody cares about your talk anymore exactly. But the
Speaker 1: power went out, like you know, and we were stranded
Speaker 1: in the hotel for a while, like you know that,
Speaker 1: and all people didn't know until they were unless they
Speaker 1: were at my talk. Yeah that it was going to happen.
Speaker 3: But that really shows that computers really didn't become a
Speaker 3: thing until they were connected, right, I mean modems back
Speaker 3: in the eighties where you would go to the well
Speaker 3: or the well was kind of a.
Speaker 1: Bb BBS site.
Speaker 3: BBS in San Francisco that all and I would have
Speaker 3: loved to have connected to that because it would have
Speaker 3: been cool to meet to talk to people that were connected.
Speaker 3: But like, yeah, it's back then. Long distance calls were expensive.
Speaker 2: And it cost money and everything. And that's what's the
Speaker 2: big deal for the Internet, right, was that, Yeah, suddenly
Speaker 2: the distance didn't matter. Everything was already connected. But yeah,
Speaker 2: we had our bbs is in Vancouver.
Speaker 1: Yes, now we're all reminiscing and yeah, but welcome to
Speaker 1: three guys Talk about technology and it doesn't exist anymore,
Speaker 1: I know, but it's good for the young ins to
Speaker 1: know that. You know, this is kind of your pedigree,
Speaker 1: this is where all this stuff came from.
Speaker 3: Yeah, and I'm just trying to share. I'm just trying
Speaker 3: to pay it forward. I'm trying to give a little
Speaker 3: bit back because I got a lot of help twenty
Speaker 3: twenty five years ago. I mean, I'm all I think
Speaker 3: this December. I know, I've been working professionally for thirty
Speaker 3: years now. Yeah, time flies. I banged my head against
Speaker 3: the wall so much that all my hair fell out.
Speaker 3: That was back in the nineties when there wasn't really
Speaker 3: any good internet connections and what like. You didn't you
Speaker 3: couldn't ask chat, GPT, how like write some code to
Speaker 3: do this, or even even go the stack overflow. But
Speaker 3: I think we're going off, We're going off into everything.
Speaker 1: Well, well, that's okay, We're going to take a quick
Speaker 1: break when we come back. Here's a question you can
Speaker 1: think about, what are some of the and gems and
Speaker 1: networking that people may not know about? And you can
Speaker 1: answer that question right after these very important messages. We'll
Speaker 1: be right back. Did you know there's a dot net
Speaker 1: on aws community, follow the social media blogs, YouTube influencers,
Speaker 1: and open source projects, and add your own voice. Get
Speaker 1: plugged into the dot net on aws community at aws
Speaker 1: dot Amazon dot com, slash dot net. And we're back.
Speaker 1: It's dot NetRocks. I'm Carl, that's Richard Hey, and Chris Woody.
Speaker 1: Woodruff is here. And before the break I asked them
Speaker 1: to think about this. What are some of the hidden
Speaker 1: gems in networking that people may not know about and
Speaker 1: then typically go unnoticed.
Speaker 3: Yeah. I think one thing is we hit upon this
Speaker 3: subject in the first half of the show, which is
Speaker 3: fault tolerance and learning how to get your network back
Speaker 3: communication back up and running so and that uses poly
Speaker 3: and and some other different technologies and frameworks. And the
Speaker 3: other one is you really have to For me, I
Speaker 3: think it comes down to understanding what the best protocols
Speaker 3: and frameworks to use. So so many people just go, oh,
Speaker 3: we'll just do everything in rest APIs right, Well, that
Speaker 3: might not be the best thing.
Speaker 1: I don't even know if people know what rest is,
Speaker 1: because first of all, it was a very hip term
Speaker 1: to use. And then you know, when we first talked
Speaker 1: to people, Richard, it was just like, well, it's just HDP.
Speaker 1: You just get a request and it comes back. And
Speaker 1: but there really talking about API endpoints and how to
Speaker 1: handle them and how to structure the data that comes
Speaker 1: back from an API endpoint and getting a little more
Speaker 1: goo around that that's standardized.
Speaker 3: Yep.
Speaker 2: But it almost became that a buzzword thing. It's like, well, yeah,
Speaker 2: that's not RESTful.
Speaker 1: Yeah it's right. Well well I'm sorry, but yeah it works.
Speaker 3: Finally, I finally have used the sixth law or sixth
Speaker 3: rule of rest. So so there's six constraints that Roy
Speaker 3: Felding when he wrote his PhD thesis, which rest was
Speaker 3: part of, just a small part. He said six constraints
Speaker 3: that you had to do like client server, and there's
Speaker 3: a bunch of things, right, but the sixth one is
Speaker 3: where no one really knew how to cross over that
Speaker 3: and that is when giving code in your response. So
Speaker 3: when you when you call a rest API endpoint to
Speaker 3: be RESTful, it should return code or something that that
Speaker 3: you use to uh change the state of your client.
Speaker 3: And I finally learned I'm finally using and crossing that law,
Speaker 3: and I'm doing it with HTMX, which I'm actually writing
Speaker 3: another online book about HTMX is a very small Java
Speaker 3: script framework. But I kind of digress.
Speaker 1: But so the question is is is that smart is
Speaker 1: is using code's earning code? Is a response? Is that
Speaker 1: sneak it is? I'm also sure I want to be
Speaker 1: in charge of every line of code that I execute.
Speaker 3: Well, why not have the server tell you what?
Speaker 1: What?
Speaker 3: Uh? Based on a based on a HTTP request, you
Speaker 3: get back some HTML that then you replace other HTML
Speaker 3: in the dom and you have you have a new
Speaker 3: UI without refreshing the whole page.
Speaker 1: And that gives Well I use Blazer, so that's not
Speaker 1: an issue for me. But anyway, I can't see what
Speaker 1: I did there.
Speaker 3: I know, I know, I know, I do server I'm
Speaker 3: more old school. I like server side stuff.
Speaker 1: But but but in general, though, I think that opens uh.
Speaker 1: That increases my attack surface. If what you're bringing down
Speaker 1: executes code, you can bring down some bad code.
Speaker 3: Yeah you could. You could know.
Speaker 1: So that's why I say I like, I know, I
Speaker 1: like when when I do rest or when somebody says,
Speaker 1: you know, make this RESTful. What I do is I
Speaker 1: create a response class and that response has like a
Speaker 1: list of errors, and it has a success and failure,
Speaker 1: and then it has either an entity or a list
Speaker 1: of entities, collection of entities, and that's it, you know,
Speaker 1: just the response code and all of that stuff. So
Speaker 1: then my code figures out what to do with that.
Speaker 3: Yeah.
Speaker 1: I like having the transport that the client, the API
Speaker 1: client and the server just doing what they should be doing.
Speaker 1: I don't want to mess in it.
Speaker 3: My you, I know, and we're really geeking out.
Speaker 1: I'll include a copy of Fielding's dissertation because you see
Speaker 1: Irving published it.
Speaker 2: Because one of the options in REST and it just
Speaker 2: say it's optional is code on demand. Yep, that's the
Speaker 2: sixth yep to I mean, to your point there, Chris
Speaker 2: is like, you decided to do the weird one.
Speaker 1: Yeah. I guess it's cool, but it's just not It
Speaker 1: doesn't smell good to me.
Speaker 3: I know, you do have to be careful and everything,
Speaker 3: but when you were talking about response codes and stuff,
Speaker 3: I was my mind was like, oh, the language of
Speaker 3: httph and and that's another thing I kind of talk
Speaker 3: a little bit about in the book. Is in the
Speaker 3: the introduction to everything, I talk about HTTP is a language.
Speaker 3: It's a protocol, but it's a language between the server
Speaker 3: and the and the clients that calls it.
Speaker 2: And as all protocols effectively are.
Speaker 3: Yes, and it communicates devices. Yeah, it communicates through the
Speaker 3: response codes. Because I mean, so many people go, I'll
Speaker 3: just pass back a two hundred when when there's when
Speaker 3: it's successful, Well, know what what happens in the when
Speaker 3: you do a delete When you when you send over
Speaker 3: a delete request and it deletes a resource on the
Speaker 3: server side and it doesn't return anything back in the
Speaker 3: in the HTTP response body, you should always send back
Speaker 3: a two oh four because that tells the client that
Speaker 3: there's nothing in the in the response body.
Speaker 1: Right, if you think about it, the response code are
Speaker 1: for HTTP, right, Like for example, if you get a
Speaker 1: five hundred, that doesn't mean that your API end point
Speaker 1: ran and there was an error. You shouldn't set the
Speaker 1: code to five hundred. That's not for you. Yes, five
Speaker 1: hundred is the I don't know where I can't even
Speaker 1: reach the sendpoint.
Speaker 3: Yep.
Speaker 1: Yeah, only four hundreds for you, Yes, four hundreds the
Speaker 1: last and the year can set.
Speaker 3: So but there's there's a whole thing like in in
Speaker 3: the first couple chapters of the book, I talk I
Speaker 3: just geek out on HTTP and talk about that and stuff.
Speaker 3: But the most interesting chapter I think is the last one,
Speaker 3: and it's looking to the future with quick HDP three Yeah,
Speaker 3: HTTP three q U I see, and that that is
Speaker 3: the protocol that soon will replace TCP, and it will
Speaker 3: because TCP is slow, because it does, like Carl said
Speaker 3: in the beginning, it does have to do error checking
Speaker 3: and everything. Quick is going to replace that and we're
Speaker 3: going to have a much quicker Internet in the future soon.
Speaker 2: Over on run as we because server twenty twenty five
Speaker 2: now implements h TWB three. We've been talking about these ideas,
Speaker 2: although you really upset administrators when you talk about this
Speaker 2: stuff because it's integrated with TLS one point three and
Speaker 2: so forth, Like it's inherently support secure approach. So it's
Speaker 2: like quick end points should be exposed on the Internet.
Speaker 2: It's designed to be. But you still have most administrators
Speaker 2: everything's behind a firewall.
Speaker 1: This is enough, you're moving. They're cheese man. Yeah, now
Speaker 1: they're scared. But you know the other part Quick is
Speaker 1: really about TEA about IBV six. Yeah, right, all addresses
Speaker 1: being routable, Like we've just gotten to this weird place
Speaker 1: because we didn't move to six and still largely haven't,
Speaker 1: and so we've done all this network translation, all these
Speaker 1: years trying to stretch all the IP four addresses out,
Speaker 1: which we've done still. But so we just don't have
Speaker 1: this mindset of stuff shraudible. But also just because you're
Speaker 1: behind ant firewall doesn't mean you're safe. No, no, none
Speaker 1: of this has anything to do with safe. Absolutely not.
Speaker 1: Somebody gets into your net work, your toast.
Speaker 3: But but like quick is going to going to go
Speaker 3: from multi step handshakes, you know when when a website,
Speaker 3: when you get to a website, there's multiple handshakes and stuff,
Speaker 3: there's gonna be a single handshake, which is going to
Speaker 3: be good. We're going to get rid of the headline
Speaker 3: blocking with multiplexing. I mean, there's there's lots of different
Speaker 3: stuff that I go through in the in that chapter
Speaker 3: to set people up and uh I even have code,
Speaker 3: so every chapter in the book also has code out
Speaker 3: in the UH in the same GitHub repo that the
Speaker 3: book is published from.
Speaker 1: So there's multiplexing. If I remember correctly, that was basically
Speaker 1: to send to one IP address and then it gets
Speaker 1: multi cast multi casting, I guess is what it is, right,
Speaker 1: And that's just to get around the limitations of the
Speaker 1: hardware of the time and the network connection speeds and
Speaker 1: all that stuff. Now everybody's got a gig or two
Speaker 1: gigs in their house, right, And are those protocols still relevant?
Speaker 1: Are they still being used?
Speaker 3: Well? But like HTTP one and two still they have
Speaker 3: pseudo multiplexing from what I've been able to determine, not
Speaker 3: a real modern multiplexing like built into the protocol. I
Speaker 3: don't think it was ever built into TCP or even UDP. Yeah,
Speaker 3: Richard might know because he knows everything.
Speaker 1: So I was confusing multicasting and multiplexing. I think multiplexing
Speaker 1: is where you can just send a bunch of data
Speaker 1: out the pipe and it goes to different people because
Speaker 1: it's all combined in the same wire, right, Yeah, I
Speaker 1: mean multicasting was part of specification for the longest time. Yeah.
Speaker 2: The problem is that routers did didn't implement it, or
Speaker 2: often it turned off, right, It had a bunch of limitations,
Speaker 2: like it's never really gone where it's supposed to do.
Speaker 2: There are these address blocks for both IVV FORORE and
Speaker 2: V six for multicasting.
Speaker 1: It's just rare.
Speaker 2: The only place I ever saw of multicast being used
Speaker 2: is internally internal networks with large volumes of video data.
Speaker 1: Yeah.
Speaker 3: Well, the other interesting thing with that we'll get with
Speaker 3: with HTTP three and quick is it we won't have
Speaker 3: drops because of connections. We'll be able to move those
Speaker 3: connections very freely. Two different ideas, So hopefully that will
Speaker 3: solve some of the like drop connections that we experience
Speaker 3: and network programming all the time.
Speaker 1: So do you see any security implications for this new
Speaker 1: set of protocols?
Speaker 3: Yep. Uh So instead of having a uh separate t
Speaker 3: OS layer, this has uh, this has integrated t OS
Speaker 3: one point three encryption into the protocol.
Speaker 1: Do you see t L S or t O S,
Speaker 1: t L S c L S.
Speaker 3: Okay.
Speaker 1: And because that way it's not optional, like you can't
Speaker 1: use security.
Speaker 3: Everything is is encrypted?
Speaker 1: Good with quick? And what about crypto and not crypto?
Speaker 1: What about quantum? Is quantum going to come along and
Speaker 1: squash it? Is it quantum safe?
Speaker 3: Quantum? And yeah, I don't know. We were talking to
Speaker 3: uh one of the Europe's MVPs in.
Speaker 1: Quantum, uh Cyprian Hannah, And.
Speaker 3: I think quantum. I think quantum will be good for
Speaker 3: certain certain needs, but not for like an application like
Speaker 3: we built today. It's still we'll still be having what
Speaker 3: we're doing. Now, we'll just have quantum kind of giving
Speaker 3: information to the application, which then probably will pass it on.
Speaker 1: Yeah.
Speaker 2: But the concern here is someday the biggest quantum computers
Speaker 2: not the ones that will actually be useful, because that
Speaker 2: those are simpler, we'll be able to crack prime key
Speaker 2: based in friptions. Yeah, but TLS has a cipher registry,
Speaker 2: so you can switch protocol so you don't have to
Speaker 2: use an RSA. You could be moving to a lattice
Speaker 2: algorithm or any one of these non prime key algorithms,
Speaker 2: so you don't have to change TLS, you just have
Speaker 2: to switch the cipher.
Speaker 1: Okay.
Speaker 3: But so in the end, I I really did the
Speaker 3: book for me so I could learn all this stuff. Nice,
Speaker 3: and I think that's what most people write books about.
Speaker 3: Because I learned more about this stuff than probably anyone
Speaker 3: that reads it is going to learn. So it's awesome.
Speaker 1: But it was.
Speaker 2: Yeah, you get to drill into each of these things
Speaker 2: in great detail.
Speaker 3: Yeah, yeah, you do, and you get to uh and
Speaker 3: then you get to release it and everyone tells you
Speaker 3: you're wrong about certain things. Yeah, which is awesome because
Speaker 3: then I can argue, and I love to argue. From
Speaker 3: a family of lawyers, so I love the debate.
Speaker 1: You always learn, I mean, whether you're right or wrong,
Speaker 1: you always learn something. Yeah, well you get confirmation or
Speaker 1: you learn something new. Yeah.
Speaker 3: Yeah, and uh, there's even I even have a page
Speaker 3: on this that if someone tells me a correction, I
Speaker 3: actually will correct it and give them credit. So I
Speaker 3: have a little updates and corrections where I give credit
Speaker 3: to people that tell me I'm wrong and they and
Speaker 3: they fix something in the book. So it's all yeah,
Speaker 3: and it's all on GitHub, it's all on prs. So
Speaker 3: you know what, I I am not a very smart person.
Speaker 3: Come on, now, I've just been around. I've been around
Speaker 3: long enough. Well, I had a I had a.
Speaker 1: Professor, Brandon, you're gonna edit that out right, No, don't
Speaker 1: edit that out.
Speaker 3: I'm not. I mean, there are so many smart people,
Speaker 3: and that that's why I love going to conferences and
Speaker 3: I love being around because I get to learn so much.
Speaker 1: Like it's just.
Speaker 3: No, I'm smart, but in the crowds that we.
Speaker 1: All, you're like, you're smart enough to know what you
Speaker 1: don't know.
Speaker 3: Well, and that's the thing I mean, I think that's
Speaker 3: that is being smart. As what you said it's knowing
Speaker 3: that you don't know everything, right, and I don't know everything.
Speaker 1: So.
Speaker 2: Nobody knows everything close.
Speaker 3: I don't know. Richard's pretty close close.
Speaker 2: I have a very good memory, as you both know. Yes, yeah,
Speaker 2: I haven't.
Speaker 3: I haven't stumped Richard too much about about anything.
Speaker 1: So, but you know, we also run with a group
Speaker 1: of people who are inventing the things that we all
Speaker 1: count on, right, you know, the Mads, targets of the
Speaker 1: world and the like. Who are I think a you know,
Speaker 1: different kind of intelligence again that they to be able
Speaker 1: to to take everything that's going on and envision the
Speaker 1: next version, envision what's possible. It's extraordinary.
Speaker 3: Yeah, yeah, exactly, and and it's it's amazing. That's why
Speaker 3: I like computer science and this our industry is because
Speaker 3: nothing ever is set in like stone. We're always moving.
Speaker 3: And if you take a look at accounting or any
Speaker 3: other kind of industry, they're pretty much all set I
Speaker 3: will for the most part, but we have a we have.
Speaker 2: That being said, I presume your book ends with in
Speaker 2: The correct answer is gr PC.
Speaker 3: Doesn't end in g r PC GRP.
Speaker 1: It's pretty freakin' awesome though, it is because it is.
Speaker 2: It is built on HDP two, right, Like most of
Speaker 2: these protocols are are pretty much agnostic. They really we
Speaker 2: want to just fine on one point one. But g
Speaker 2: RPC needed to.
Speaker 3: Well, yeah, it needed to.
Speaker 1: James Newton King came around and made gRPC web which
Speaker 1: runs on HDP one so you can use it in
Speaker 1: dot net and it's still awesome. Yeah, yeah, I'm sure
Speaker 1: it uses two if it can.
Speaker 3: Yeah. My last chapter is is quick, Yeah, just to
Speaker 3: look towards the future. But the one before that is
Speaker 3: Someone asked me to do a signal R chapter and
Speaker 3: I said okay, because they convinced me that it it
Speaker 3: fell in line with all the other kind of networking technologies.
Speaker 2: Because wasn't it just once just a wrapper over web socket.
Speaker 2: I mean, I know it's involved into the yeah pretty
Speaker 2: much things like that, but once for time socket.
Speaker 1: But here's here's what I don't like about SIGNALARE. I
Speaker 1: love signalare and I use it all the time, but
Speaker 1: you can't use it in replacement for a robust messaging
Speaker 1: system because there's no queue. Right. If you're not there
Speaker 1: to receive a message, you missed it, it's lost. You
Speaker 1: can't come back online and say, hey, what were the
Speaker 1: messages that I missed, right, So you can't just use
Speaker 1: it in place of a really robust queuing system.
Speaker 3: Yeah.
Speaker 2: No, that being said, you could use it to call
Speaker 2: to a queue, absolutely, you could.
Speaker 1: You could, but you can also.
Speaker 3: Yeah, and that's a great thing about like something like
Speaker 3: Kafta or Azure as your messaging queue.
Speaker 1: There's a million of them. Yeah, see, I see our
Speaker 1: talk with clements.
Speaker 3: Yeah, yeah, I.
Speaker 1: Think so he's stopped in nine not a million, but yeah,
Speaker 1: that's a lot.
Speaker 3: If you want, if you want to guarantee one hundred
Speaker 3: percent or ninety nine point of your messages getting to
Speaker 3: where they need to go, you need to do message
Speaker 3: queueing and have that.
Speaker 2: Just recognize that the internet's not five nine, so you
Speaker 2: know you've got to have a mechanism for recovery.
Speaker 3: Yep, yep, exactly.
Speaker 1: Show enough. What's the next thing that you're going to
Speaker 1: be working on? Are you done with networking and c
Speaker 1: Sharp or is there always more?
Speaker 3: I don't know. I'm done with that right now. I'm
Speaker 3: I have two things I'm kind of doing. I'm in
Speaker 3: the middle of a forty two day blog post series
Speaker 3: explaining rust to c sharp developers.
Speaker 1: Wow, I would love to read that.
Speaker 3: Yeah, so I'm I'll send the link to you, but yeah,
Speaker 3: it's out of my blog. Actually, this year I've got
Speaker 3: a master plan to have a blog post every day
Speaker 3: nice and it's a good idea. So for forty two days,
Speaker 3: I think I'm up to day twenty nine. So today
Speaker 3: was we were talking about traits in Rust.
Speaker 1: So if you want to know more, you have to
Speaker 1: go out, and I'm going to start with read chapter one.
Speaker 3: But Rust is Rust is like my new kind of love.
Speaker 3: So I've got two loves right now, Rust and HTMX,
Speaker 3: and I'm writing the next quasi online book for HTMX
Speaker 3: and then trying to learn Rust and share all this
Speaker 3: stuff I'm learning about Rust.
Speaker 1: All right, So real quick, what is your favorite thing
Speaker 1: about Rust? What is so great about RUSS that we
Speaker 1: should one sentence that you can convince the c sharp
Speaker 1: developer to read your blog posts.
Speaker 3: Yeah, so Rust will not let you compile.
Speaker 1: Bad code, So stuff that c Sharp would would discover
Speaker 1: at runtime, Rust will discover compile time.
Speaker 3: Yeah, like if you if you write code to divide
Speaker 3: one by zero rus, RUSS will not let you compile.
Speaker 1: It will stop because you can do that in c Sharp.
Speaker 1: You can make a variable zero zer with a value
Speaker 1: of zero and then divide.
Speaker 3: One by it, and that throws an exception.
Speaker 1: Compiler says run time, but now compile time.
Speaker 3: Yeah, yep. The other thing is everything is immutable, which
Speaker 3: I think is really is really smart because it allows
Speaker 3: you to do multi threading course much easier.
Speaker 1: It's not functional, though, is it. It's not a functional language.
Speaker 3: It can be functional. It's a very different object oriented language.
Speaker 3: Like it doesn't have inheritance, so.
Speaker 1: There's no ideas of nulls, right, which is the bugaboo
Speaker 1: of C shark.
Speaker 3: There is no nulls. You can't have a null because
Speaker 3: whenever a variable is out of scope, it goes away.
Speaker 3: And that's the other nice thing is like it doesn't
Speaker 3: need a garbage collector because it just anything that's out
Speaker 3: of scope goes away.
Speaker 1: Hmm.
Speaker 3: And there's It's just it makes you think differently. Sure,
Speaker 3: it's kind of like when I learn React, like React
Speaker 3: web development was for me very it was very different.
Speaker 3: But but yeah, my thing is you have to keep
Speaker 3: learning about new things. Even though I may not use
Speaker 3: rust on anything, I want to learn it just to
Speaker 3: just to see some different things that I can then
Speaker 3: bring back potentially into c sharp and and and maybe
Speaker 3: do smarter coding, have a smarter outlook on on my code.
Speaker 3: But yeah, Rust is really cool. I'm building out some
Speaker 3: some web APIs. I think I'm going to be pushing
Speaker 3: some talks around around Rust and doing networking, like maybe
Speaker 3: taking all of the chapters in the c Sharp networking
Speaker 3: and doing Rust networking.
Speaker 1: Yeah. Interesting. So these blog posts around woodruf dot dev.
Speaker 3: Yeah, they are. And I'll send you guys the link
Speaker 3: to I've got a one blog that links to all
Speaker 3: forty two days as I am going through, So I'll
Speaker 3: send you that page so people can kind of start
Speaker 3: from the beginning and work their way down.
Speaker 1: Awesome, I'm really looking forward to that. Cool Chris, what
Speaker 1: is the what is what is the next bourbon that
Speaker 1: you're going to pour yourself? Oh?
Speaker 3: So, I love there's a there's a new two new
Speaker 3: bourbons that I've discovered. RD one is a distillery close
Speaker 3: to Lexington, Kentucky. They have a uh and I cannot
Speaker 3: remember Richard will know the name of the wood. It's
Speaker 3: this Brazilian wood that starts with A, the letter A
Speaker 3: and I can't remember the name. But they finish their
Speaker 3: their bourbon and barrels made of that wood and it.
Speaker 2: Makes the not oh huh, that's pretty strange.
Speaker 3: No, No, they start oak and then they finish the
Speaker 3: last six months or a year in this in this
Speaker 3: Brazilian wood, and it makes the bourbon tastes like cinnamon, toast, crunch, cereal.
Speaker 3: It is amazing. So Richard, you're going to dev some.
Speaker 2: I think you're talking about amberanna.
Speaker 3: Yeah, Banna, Okay, that's it.
Speaker 1: See you drink enough of it? Do you see the
Speaker 1: three little sweetish chef dancing around with the hats on?
Speaker 3: No? Maybe, no, you just pass out.
Speaker 2: So well, it's the only one I can think of.
Speaker 2: They usually make kosasha with it, which is their rub
Speaker 2: and varry that it's a it's a sugarcane based alcohol. Yeah,
Speaker 2: and I know that the high end versions were aged
Speaker 2: in Mburanna. But that's the only thing I think of
Speaker 2: that's a wood from Brazil.
Speaker 3: Yeah, I think it is that. Okay, And so that bourbon.
Speaker 3: And then the other one I've been drinking is one
Speaker 3: from a Holiday distilleries and they make a sweet red
Speaker 3: wheat using sweet red wheat to make le makers. And yeah,
Speaker 3: but there's they have some America. They call it American
Speaker 3: whiskies because they don't use fifty bourbon has to be
Speaker 3: at least fifty one corn. Some of this is a
Speaker 3: majority is wheat. So I'm really getting into They can't
Speaker 3: call it bourbon, so they call it American whiskey. So
Speaker 3: I'm really getting into the weeded American whiskeyes because they're
Speaker 3: real sweet and uh, they're kind of the opposite of rise.
Speaker 2: Yeah, and it's not like it's not like bourbons weren't sweet.
Speaker 2: But yeah, I'm with you, so.
Speaker 3: Yeah, yeah, So I'm I'm bringing two bottles over to Stockholm.
Speaker 3: Def some you're gonna be there.
Speaker 1: I'll be there.
Speaker 3: Yeah, you'll be there, Richard, or you.
Speaker 1: Can be I will.
Speaker 2: I'll be coming straight up from South Africa, not going
Speaker 2: to any os.
Speaker 3: Okay, well, I've I've got two bottles. I've got a
Speaker 3: bottle of this RD one that I want to share,
Speaker 3: and then I need to figure out the other one
Speaker 3: I'm going to share. I think I'm going to bring
Speaker 3: one of these weeded whiskeys with me.
Speaker 1: So we are going to see the three sweetish chefs
Speaker 1: dancing around going see you know, I man?
Speaker 3: Yeah, So but those are those are the new ones.
Speaker 3: There's there's so many cool, new new bourbons and the
Speaker 3: price is starting to come down to Because so.
Speaker 1: You're in Lexington, did you say, supply.
Speaker 3: I lived I lived in Lexington for three years. Now
Speaker 3: I'm in Grand Rapids, Michigan.
Speaker 1: Okay, so yeah, well, being in Kentucky, of course, we're
Speaker 1: trying to educate people about bourbon a little bit, especially
Speaker 1: those outside the United States, and we have a significant
Speaker 1: number of European listeners. Bourbon doesn't have to be made
Speaker 1: in Kentucky, as Chris was saying, it has to be
Speaker 1: made in America. Has to be at least fifty one
Speaker 1: percent corn, and it also has this weird rule that
Speaker 1: it has to be aged in virgin white American oak
Speaker 1: casks that have been charred for a certain amount of
Speaker 1: time minimum three years, three years, and then after that
Speaker 1: they can finish in anything like port wine barrels. It
Speaker 1: used to be only but they yeah, Angels Envy started
Speaker 1: doing the sherry finishes and.
Speaker 3: Yeah and yep, yeah, yep.
Speaker 1: So anyway, that is one of the one of the
Speaker 1: things that America has brought to the world is it's
Speaker 1: American whiskey. Right, You've got Scotch whiskey, got Irish Canadian.
Speaker 1: We have American whiskey. It's called Bourbon. There you go. Yeah,
Speaker 1: and if you go listen to the series I've done
Speaker 1: on Windows Weekly that they've clipped off his YouTube videos,
Speaker 1: I explain all of them. That's so cool. And we
Speaker 1: also did a show on Bourbon after we came back
Speaker 1: from the road trip or No Code Palooza. Yeah, we
Speaker 1: did a geek out on Bourbon.
Speaker 3: Oh I remember that. Yeah, that was a good episode.
Speaker 1: Yeah, good stuff. Chris Well, it's great to have you
Speaker 1: on the show finally after all these years.
Speaker 3: Finally, thank you.
Speaker 1: Yep, and we'll do it again.
Speaker 3: I feel I feel my life is complete now, so
Speaker 3: mine too. My career, my technical career is complete.
Speaker 1: So mine too. And I really mean that, like I
Speaker 1: really enjoyed sort of geeking out and going back in
Speaker 1: time with all of the stuff that I used to
Speaker 1: think about. And it's good to think about it again. Yeah,
Speaker 1: especially for the young kids.
Speaker 3: Everything comes around, everything comes around, that goes around.
Speaker 1: So good stuff. So yep, all right, thanks again, and
Speaker 1: we'll talk to you, dear listener next time on dot
Speaker 1: net rocks. Dot net Rocks is brought to you by
Speaker 1: Franklin's Net and produced by Pop Studios, a full service audio,
Speaker 1: video and post production facility located physically in New London, Connecticut,
Speaker 1: and of course in the cloud online at pwop dot com.
Speaker 1: Visit our website at d O T N E t
Speaker 1: R O c k S dot com for RSS feeds, downloads,
Speaker 1: mobile apps, comments, and access to the full archives going
Speaker 1: back to show number one, recorded in September two thousand
Speaker 1: and two. And make sure you check out our sponsors.
Speaker 1: They keep us in business. Now go write some code.
Speaker 1: See you next time you got Jamtlevans