Speaker 1: How'd you like to listen to dot net rocks with
Speaker 1: no ads?
Speaker 2: Easy?
Speaker 1: Become a patron for just five dollars a month. You
Speaker 1: get access to a private RSS feed where all the
Speaker 1: shows have no ads. Twenty dollars a month, we'll get
Speaker 1: you that and a special dot NetRocks patron mug. Sign
Speaker 1: up now at Patreon dot dot NetRocks dot com. Hey
Speaker 1: guess what, it's dot net Rocks twenty twenty five edition.
Speaker 1: This would be our third episode of twenty twenty five. Franklin,
Speaker 1: that's Richard Campbell.
Speaker 2: Hey you new year, go man.
Speaker 1: I think it's going pretty well.
Speaker 2: Time shifting.
Speaker 1: Yeah, it's fun. We always have fun, and we always
Speaker 1: have fun with Rob Conry, who's coming up here very soon.
Speaker 2: Be entirely too long, Yeah, yeah, it's been.
Speaker 1: Entirely too long. But what's going on up in the
Speaker 1: Great Northwest? Richard?
Speaker 3: Ah?
Speaker 2: You know it's the normal winter weather, which is to say, gray,
Speaker 2: much gray. In fact, by the time this show is publishing,
Speaker 2: I will be in Mexico. Because the way to not
Speaker 2: lose your mind in the deep gray of the Pacific
Speaker 2: Northwest for months and months is they do a couple
Speaker 2: of weeks in the sun so.
Speaker 1: Leave some garbage out for the bears.
Speaker 2: I hope off the Portavarda. Yeah, you know. Bear intensity
Speaker 2: is actually lower here than in the city. Oh, you know,
Speaker 2: because they isn't that interesting because right, it's easy food.
Speaker 2: Right here, the food's not as easy, so they there's
Speaker 2: not as we've got more deer problems and they're true
Speaker 2: hazard in this part of the world is the elk.
Speaker 1: Yeah, you hit one of those.
Speaker 2: Elk is big, right, and and they're not there's never one.
Speaker 2: There's twelve, and one of them is a male with
Speaker 2: bad attitude. Yeah, and so yeah in the fall when
Speaker 2: they're down like it's we One time we turn onto
Speaker 2: our driveway. There's twelve bulks standing in a driveway and
Speaker 2: I sort of look over at her and go, you know,
Speaker 2: we can go to the pub. She goes, yeah, let's
Speaker 2: go to the pub. So I turn around. You don't
Speaker 2: want to mess with elk. So they're strong enough to
Speaker 2: flip a car our elk bigger than moose. No, moose
Speaker 2: are the biggest, but moose tend to be solitary. Right.
Speaker 2: The story goes, if you hit a deer damages your car, Yeah,
Speaker 2: if you hit an elk, it probably kills you because
Speaker 2: it goes over the hood through the windshield. You probably
Speaker 2: won't hit the moose. You'll go under it, right, Like,
Speaker 2: that's how big moose are. They're really, really quite large.
Speaker 2: But you only ever see one or two. But we
Speaker 2: only lived up here a little over a year, and
Speaker 2: three times now i've had a dozen elk walking by
Speaker 2: the highway.
Speaker 3: Wow.
Speaker 2: And yeah, no, they're they're they're an issue.
Speaker 1: But they could be good eating if you hit them right.
Speaker 2: Yeah, absolutely, And there is a hunting season up here,
Speaker 2: without a doubt. Do you have some friends with you know,
Speaker 2: venison and elk. They generally blend it with pork to
Speaker 2: make sausage pork fat.
Speaker 1: I remember a story when I was a kid. I
Speaker 1: heard that friend of a friend or whatever hit a
Speaker 1: moose with the car and it went through the windshield
Speaker 1: and it told, you know, they were unconscious and stuff,
Speaker 1: and the last memory they had was looking up and
Speaker 1: seeing the moose running away with a luggage rack in
Speaker 1: its snagglers.
Speaker 2: Yeah. Yeah, Now that's the thing is you're going to
Speaker 2: wreck the car, but moose very unlikely walk away. But yeah,
Speaker 2: moose are so tall, Yeah, you know you'll go right
Speaker 2: almost right over them right right out of your legs.
Speaker 1: All right, let's get to better know a framework. This
Speaker 1: is a good one.
Speaker 2: Tell me all about it, all right.
Speaker 1: So this again is another thing that Brian McKay, one
Speaker 1: of the next guys.
Speaker 2: Kay has produced a lot of good stuff and they
Speaker 2: better know a framework category. Over the years he finds
Speaker 2: the stuff and and I wanted to show Rob this.
Speaker 1: It's hit in mix dot com, hit and mix hiitmix
Speaker 1: dot com. So they call it an AI digital Audio workstation.
Speaker 1: So they do stems AI separations stem separation. So what
Speaker 1: that means is you have a song, you put it
Speaker 1: in there, and let's say it's bass, drums, piano, guitar,
Speaker 1: and singing. They can extract those individual tracks, so.
Speaker 2: The machine learning model will actually pull apart the song
Speaker 2: for you.
Speaker 1: Yeah, it'll give you a raw drum track, a raw
Speaker 1: bass track, a guitar track. I don't I haven't heard
Speaker 1: it work really well, right, you know, it's kind of
Speaker 1: like a novelty. But if you're going to actually do
Speaker 1: anything with those tracks and make them sound good, I
Speaker 1: don't know, but it's interesting. So you can also edit
Speaker 1: stems note by note so that it can turn a
Speaker 1: bass track let's say into notes and Rob you can
Speaker 1: chime in here if you want to take a look
Speaker 1: at the video. So if you're familiar with MIDI editing,
Speaker 1: it's kind of like that wow, or even you know
Speaker 1: the auto tune and melodine and those kinds of things
Speaker 1: where you can take audio notes and move them around
Speaker 1: and change the pitch and all that stuff.
Speaker 3: It's pretty neat. You know, I'm taking a drum lessons
Speaker 3: and my instructor will come in and remove a drum
Speaker 3: track so that I can actually play along with a song,
Speaker 3: which is insanely helpful. So that would be really neat
Speaker 3: for something like that.
Speaker 1: And you don't hear any of the drum tracks in
Speaker 1: the background.
Speaker 3: Well you can hear a little, but forgot the app
Speaker 3: that he uses. It strips out the drum track. But
Speaker 3: he'll also strip out a drum track and put a
Speaker 3: little section on loop so I can learn a song
Speaker 3: and try and play along with it.
Speaker 1: That's really cool.
Speaker 2: It's traditionally in remixing music, like a lot of musicians
Speaker 2: who are into remixing will publish stems. They'll take a
Speaker 2: song and say here's sixteen stems from it. Here's the
Speaker 2: drum trackers baseline, here's you know that sound and so forth,
Speaker 2: so that you can make your own thing effectively with
Speaker 2: their permission, Like this is kind of making stems against
Speaker 2: the artists will Yeah.
Speaker 1: That's right. I knew an artist, a producer who got
Speaker 1: his hands on the real stems for Long Train Running
Speaker 1: by the Doobie Brothers, like the individual tracks. There was
Speaker 1: no AI back then. It was in the nineties and
Speaker 1: or the two thousands anyway, and that was really cool.
Speaker 1: I was like, Wow, I would love to get my
Speaker 1: hands on that, just the player, and he's like, no,
Speaker 1: I'm sorry, I was sworn to.
Speaker 2: Uphold the On the other hand, you happen to be
Speaker 2: somebody who could play each of those stems anyway, So
Speaker 2: just make your own.
Speaker 1: It's true I could, but not the foals.
Speaker 2: I've seen you do it. It's not even a speculation.
Speaker 1: Yeah, well, the vocals and the chorus on the vocals,
Speaker 1: you know, the gang vocals.
Speaker 2: That represents an impossibility to me, Carl. That represents some
Speaker 2: effort for you, That's all it is. You know who
Speaker 2: to call, In fact, you're friends with who to call.
Speaker 1: Yeah're probably right.
Speaker 2: You have the place to have them bring them to
Speaker 2: to make it like if you want the steps to
Speaker 2: make them.
Speaker 1: Yeah, okay, none of that. I thought this was a
Speaker 1: really cool thing. And Brian thanks for showing it to me.
Speaker 1: He's shown us other stuff in the past.
Speaker 2: Of course, I know. Another great find by Brian Austin.
Speaker 1: Thanks and no learned to love it. Who's talking to
Speaker 1: us today?
Speaker 2: Richard grabbed a calm on top of the show fourteen
Speaker 2: seventy one. Yeah, a little back into the way Back
Speaker 2: Machine twenty seventeen, which was a panel discussion we did
Speaker 2: an NDC oslo well going Serverless with one Rob Connery,
Speaker 2: our friend Lynn Langett and Matthias Brandewinder. Great, it was
Speaker 2: the early days of Servilus, right, it's twenty seventeen, so
Speaker 2: this is we talked a little lambda which really where
Speaker 2: that came from, and then of course Azua function and
Speaker 2: so forth. There wasn't even a conversation about containers at
Speaker 2: the time, the fact that under the hood this is containers,
Speaker 2: it's just their automated so you don't have to own them.
Speaker 2: And a past guests too. This is a committedly a
Speaker 2: comment from seven years ago. It's from Chris love Ah,
Speaker 2: our JavaScript friend. Yeah, he says, another great episode about
Speaker 2: a topic I have fallen in love with. I've been
Speaker 2: migrating everything to serverleist the past year, and it rocks
Speaker 2: not only in performance and scalability, but costs. When Orchard
Speaker 2: asked Rob's about static progressive web apps over serverless, I cheered,
Speaker 2: like my team just scored a winning touchdown. That's exactly
Speaker 2: what I'm doing these days. It makes me wonder if
Speaker 2: Richard has been spying all my daily work like I
Speaker 2: have that kind of time. This was a great panelisquession.
Speaker 2: I felt like they actually covered so many topics that
Speaker 2: have crossed my path in the last year. Made me
Speaker 2: feel much better about where I am, where I've been,
Speaker 2: and where I'm going with serverless. Now I know I'm
Speaker 2: not doing it wrong. What a confidence booster. I'm a
Speaker 2: little disturbed at your confidence in us there, Chris. We're
Speaker 2: exploring a technology, although admittedly in twenty seventeen, so what
Speaker 2: is that you know eight years ago?
Speaker 3: Now?
Speaker 2: Something like that again early days of serverlests, and it
Speaker 2: did take a lot of stuff off the table. I've
Speaker 2: certainly liked it from the modular monolith perspective, that's taking
Speaker 2: the problematic class out of your big you know, mother
Speaker 2: of all class set and sticking it over in a
Speaker 2: serverless instant just to scale it independently or to telemetry
Speaker 2: it independently, like to really put a wrapper around it.
Speaker 2: And then that's almost an interim phase, like you could
Speaker 2: leave it like that, but you're not happy with it,
Speaker 2: and now you re engineer a bit make it more
Speaker 2: of a traditional micro service like this. It's to me,
Speaker 2: I'm always a performance tuning guy, and it's helped me
Speaker 2: with the performance problem. And serverless is one of those
Speaker 2: great tools in the pocket of let's take the trouble
Speaker 2: child and put it in its own can well anyway, Chris,
Speaker 2: I don't know if you have a copy of music Code,
Speaker 2: I would like to send you one. If you'd like
Speaker 2: a copy of music code, I write a comment on
Speaker 2: the website at Don Atrocks dot com. We're on the facebooks.
Speaker 2: We publish every show there, and if you comment there
Speaker 2: and I read it on the show, we'll send you
Speaker 2: copy music go by.
Speaker 1: And of course there are other social medias out there
Speaker 1: that we you know frequent. We've been on ex Twitter
Speaker 1: for years of course, at Carl Franklin and at Rich Campbell.
Speaker 1: We're also on blue Sky at Carl Franklin dot bsky
Speaker 1: dot app and Rich Campbell dot bsky dot app. And
Speaker 1: also I'm Mastadon, I'm Carl Franklin at Techa dot social.
Speaker 2: And I'm Rich Campbell at Masterdon dot social.
Speaker 1: Multiple ways that you can get yourself a copy of
Speaker 1: music to code by just by sending us something interesting.
Speaker 2: I'm looking at the current traction around Blue Sky now,
Speaker 2: you know, not just the tech folks hanging out there,
Speaker 2: but also news conversation and political conversation so forth, Like,
Speaker 2: oh yeah, the gravity of a Blue Sky right now
Speaker 2: is interesting because I got a threads account, you know,
Speaker 2: and we're in the I mean in the midst We're
Speaker 2: still working on the geek outs for the end of
Speaker 2: the year, and so I often am talking with folks
Speaker 2: about what I'm working on the geek outs, and the
Speaker 2: amount of traffic I get from Blue Sky is astonishing,
Speaker 2: more than Twitter.
Speaker 1: I have almost caught up to the number of followers
Speaker 1: that I have on maston on Blue Sky, but it's
Speaker 1: going faster, like Mastadon kind of leveled out, but more
Speaker 1: and more people. And I subscribe to a couple of
Speaker 1: news feeds on Blue Sky, and I kind of like it.
Speaker 1: Except the occasional story about wrestling, which I have no
Speaker 1: idea why. I guess they don't do the targeting like
Speaker 1: you know, the REDS and Facebook does.
Speaker 2: It's still early days.
Speaker 1: Yeah, give them time. The time, they'll figure out what
Speaker 1: you want, what you don't want well.
Speaker 2: And also part of it was eventually gets so busy
Speaker 2: that they're filtering for their own benefit because it's just
Speaker 2: the amount of traffic they got to push right right.
Speaker 2: They're getting bigger, but they don't have the same crisis
Speaker 2: as some of these larger sites.
Speaker 1: I do read Canadian news too, which is interesting. Everybody
Speaker 1: apologizing to each other.
Speaker 2: We're having adventures at the moment, you know, about as
Speaker 2: interesting as Canadian politics gets.
Speaker 1: Okay, Rob, Before we formally read your bio, I just
Speaker 1: wanted to mention that what we've been doing lately is
Speaker 1: highlighting things that happened in the year that is the
Speaker 1: same as the episode number of Dot in Rocks. So
Speaker 1: this is episode nineteen thirty three, and of course a
Speaker 1: lot of things are happening in this time in history,
Speaker 1: most importantly being the Great Depression by far the Great Depression.
Speaker 1: Franklin D. Roosevelt is inaugurated as thirty second President of
Speaker 1: the United States on March four.
Speaker 2: They also he has an attempt on his life too.
Speaker 2: Oh yeah, yeah, it was an assassination and killed the
Speaker 2: mayor of Chicago in the incidive.
Speaker 1: Was he the one that somebody shot him at point
Speaker 1: blank and he survived? At or Eddie Roosevelt the other Roosevelt,
Speaker 1: the other Roosevelt.
Speaker 2: Yeah. I think the other Roosevelt shot himself as part
Speaker 2: of his mourning eublutions because he was essentially indestructible, right, Yeah,
Speaker 2: he was fully teddy Roosevelt. Different kind of creature.
Speaker 1: Yeah. Additionally, Adolf Hitler was appointed Chancellor of Germany on
Speaker 1: January thirtieth, marking a pivotal moment in history.
Speaker 2: Yeah, that's a big one.
Speaker 1: Oh yeah, great depression rise of Hitler.
Speaker 2: Yeah, all happening.
Speaker 1: Stay tuned for next episode.
Speaker 2: Let me throw one in that you'll like, okay, which
Speaker 2: is nineteen thirty three is the year that Alan Blumlin
Speaker 2: at EMI, the British recording studio, first demonstrated stereophonic sound
Speaker 2: using records. So that's the combination of the duel recording
Speaker 2: the etching tools. Like they've been working on it for
Speaker 2: a while, but it all came together in thirty three
Speaker 2: to make the first stereo record.
Speaker 1: You know, one thing I've noticed, maybe Rob you have two.
Speaker 1: But since becoming more of a global citizen, you know,
Speaker 1: traveling a lot and meeting people outside the United States,
Speaker 1: I have learned that there's a lot of mythology in
Speaker 1: the United States around Oh, we invented everything here, and
Speaker 1: it's just not true.
Speaker 3: You know.
Speaker 2: The funny thing is every country you go to, there's
Speaker 2: another person with the mythology of their country inventing every Yeah.
Speaker 2: I think the first automobile was invented in the UK
Speaker 2: before Henry for Henry Ford. Just Harry Ford made the
Speaker 2: mad viction line production line. Yeah, which is really important.
Speaker 2: He made the He made the car available to regular
Speaker 2: people like his whole he said. His stated goal was
Speaker 2: I want my factory workers to be able to buy
Speaker 2: a car. Yep. Before that cars were expensive playthings.
Speaker 3: Right. One of the places I went that kind of
Speaker 3: brings that home to you as an American, Uh, that
Speaker 3: you know you're not the center of the world. Is
Speaker 3: if you go to Australia, they will they will correct
Speaker 3: you right quick. Yep.
Speaker 2: Yeah, they're very sure that the center of the world
Speaker 2: very anyway.
Speaker 1: It's fascinating stuff, all right. So that was Rob Connery.
Speaker 1: He works at Microsoft with the Visual Studio Code team,
Speaker 1: creating content for YouTube, as well as contributing to open
Speaker 1: source projects. Rob is also the author of The Impostor's Handbook,
Speaker 1: The Impostor's Roadmap, and A Curious Moon, which is one
Speaker 1: of Richard's favorite books because of the ending, which we
Speaker 1: will not tell you what it is right now because
Speaker 1: we have more respect for you than that. But you know,
Speaker 1: if you've been around through the whole asp Net and NBC.
Speaker 2: Era, you know who Rob is.
Speaker 1: He was right there when all of that stuff was happening.
Speaker 1: And yeah, that is not in his bio because he's
Speaker 1: doing more current things now.
Speaker 3: Damn. So welcome Rob, Oh, thank you, thanks for having me.
Speaker 2: We only get to have a member of Scott Guthrie's
Speaker 2: Ninja Army on everything. It's a rare thing. Really, Yes,
Speaker 2: you gotta space us out. You know, there's four faces
Speaker 2: on that cover back in the day, you go, Hanselman
Speaker 2: and Phil Hack. Phil Hack and yeah, I think you're
Speaker 2: the only one that doesn't look like a twelve year old.
Speaker 1: On that picture.
Speaker 3: I'm the only one with the most metahair.
Speaker 1: There you go, right, No, So what are you working
Speaker 1: on these days?
Speaker 2: My friend?
Speaker 3: Well, about I want to say, eight months ago, I
Speaker 3: changed teams at Microsoft. I'm still I'm still in the
Speaker 3: advocacy stuff. They changed teams at Microsoft to go help
Speaker 3: the VS code team and working with Burke Holland and
Speaker 3: Olivia Gazardo and Rentald Doolf. And yeah we do. We
Speaker 3: do YouTube videos and all kinds of content, but we
Speaker 3: also build things, which is fun. So you know, it's funny.
Speaker 3: You know, friends give me a hard time about, oh,
Speaker 3: developer relations, what do you actually do and blah blah blah.
Speaker 3: And it's surprising the amount of work that goes into
Speaker 3: this job especially I would say about seventy five percent
Speaker 3: of what I do is internally focused. So you know,
Speaker 3: I'll test. Just the last week I banging on our
Speaker 3: free tier offering for co Pilot which just came out.
Speaker 3: Banging on that and also writing extensions and testing out
Speaker 3: different frameworks. It's pretty fun. I enjoy it. It's kind
Speaker 3: of like you're a test pilot in a way. So yeah,
Speaker 3: that's what I've been doing.
Speaker 1: That's really cool.
Speaker 2: So it's just like unshipped bits you're taking out for
Speaker 2: a spin and sort of seeing what you could make
Speaker 2: with them at the time.
Speaker 3: Sort of yeah, they'll come up with a well, they'll
Speaker 3: come up with like an internal API. This is one
Speaker 3: of the first things I did when I joined the
Speaker 3: team is they had an API for extending Copilot and
Speaker 3: they said, well, we need to have an extension made
Speaker 3: and see if it actually works. And so I said, okay, great,
Speaker 3: and I had this idea of you know, what happens
Speaker 3: if Copilot became aware of your database, and so I
Speaker 3: made this extension that would introspect if you gave it
Speaker 3: a connection strain and permission. Of course, it goes into
Speaker 3: postgress and runs a bunch of queries to know what
Speaker 3: your tables and your schema looks like. And then you
Speaker 3: can ask Copilot to do all kinds of things, which
Speaker 3: one of the things I had to do was created
Speaker 3: an entire entity framework model set for me, which was
Speaker 3: pretty neat. And you know, it's amazing how thorough Copilot
Speaker 3: can be if you give it access to a schema
Speaker 3: or even just upload a SQL files and that's what
Speaker 3: it can do.
Speaker 2: Well, you couldn't have a WHAMI there if you're taking
Speaker 2: a schema file then eventually turning it into a rag right, like,
Speaker 2: here's your data set to understand. You'll get it pretty
Speaker 2: much just by giving a connection strain off of gettings.
Speaker 3: I like that.
Speaker 2: It's clever.
Speaker 3: Yeah, so it's kind of fun. You could talk to
Speaker 3: your database and I kind of being me like they
Speaker 3: just asked me to do a couple of things. I'm like, oh, no,
Speaker 3: we're going to take this thing to the moon. Let's go.
Speaker 2: We're on the path. You put me on the path.
Speaker 2: Now you don't think I'm going to go all the
Speaker 2: way down the path.
Speaker 3: There's a scene.
Speaker 1: I like the fact that it's smart enough to figure
Speaker 1: stuff out like that. You know, if you have a
Speaker 1: junior developer and you say, you know, hey, go check
Speaker 1: out the database, they're like, well, what's the schema in here?
Speaker 1: Have the connection string and leave me alone, right.
Speaker 2: Get get to it. Get to it? So can we
Speaker 2: take this thing out for a spin? Where is it?
Speaker 3: Yeah? It's the If you go to where is it,
Speaker 3: it's on the VS code Extension store And if you
Speaker 3: look up Postcress participant and what you get with that
Speaker 3: is you get an at Postcress I believe, or at
Speaker 3: PG it might be the participant in the chat participant
Speaker 3: and it looks for it looks for a database connection
Speaker 3: string in a dot em v file, which we're going
Speaker 3: to be talking about in a minute, I guess. But yeah,
Speaker 3: it looks for an extension there. Otherwise you can just
Speaker 3: add it manually. So yeah, it's pretty fun.
Speaker 2: That's cool.
Speaker 3: There's a scene in a movie I watched on the
Speaker 3: plane when they're coming over to coming over to Oregon
Speaker 3: where I am right now, and I was watching The
Speaker 3: First Man, you know, Damian Chazelle movie about Neil Armstrong. Yeah, yeah, yeah, yeah,
Speaker 3: and there's a scene where the Russians just sent people
Speaker 3: out for the first spacewalk and you know, all the
Speaker 3: astronauts are all upset, and I think it was Deke
Speaker 3: Slayton was in the in the briefing room and he said,
Speaker 3: here's what we're going to do. We're not just going
Speaker 3: to go here, and he drew a line all the
Speaker 3: way across two chalkboards. We're going to go there. And
Speaker 3: he's pointing to the moon and he was great because
Speaker 3: he's like, I think this is to scale. Digging this
Speaker 3: up is that's kind of what I did with this extension.
Speaker 3: I'm like, we're not going to go there. We're going
Speaker 3: to go all We're gonna have some fun to this thing.
Speaker 2: M I mean, what I appreciated about that movie too
Speaker 2: is they also show that guy very nearly died. Yeah, right,
Speaker 2: Like he had to puncture his spacesuit and depressurize it
Speaker 2: enough to get back through the air loof because this
Speaker 2: suit wouldn't really hate its shape without pressure around it,
Speaker 2: and it inflated the point where he couldn't get through
Speaker 2: the air well. Yeah, those guys did reckulously dangerous things.
Speaker 2: It's remarkable we didn't that more of them didn't die.
Speaker 3: I know.
Speaker 1: Yeah, is viper dot Net part of that vs code thing?
Speaker 3: What is that?
Speaker 1: So?
Speaker 3: So this is an interesting thing. I have a bit
Speaker 3: of a preamble, but I'll try and make it as
Speaker 3: quick as I can. So, in the previous group I
Speaker 3: was in, I was focused on doing Linux and Linux
Speaker 3: outreach and so on. So my compatriot, Aaron Whistling, and
Speaker 3: I came up with a way to test vertical applications
Speaker 3: on Azure, if that makes sense, So little applications that
Speaker 3: maybe every business needs, so we could exercise different parts
Speaker 3: of Azure and Azure's Linux offerings, and so we kind
Speaker 3: of wrapped it with his name tail when Traders, which
Speaker 3: is kind of our internal It's like a it's like
Speaker 3: you remember old north Wind and Adventure work. Yeah, so
Speaker 3: it's kind of the new version of that. So anyway,
Speaker 3: we just started building things and and so one of
Speaker 3: the things I realized quickly is I was doing a
Speaker 3: dot Net application, was configuration in dot net is weird.
Speaker 3: And I know I'm probably gonna get some heat for this,
Speaker 3: but you know, over the years, it's shifted all over
Speaker 3: the place, and like, how do you get your configuration settings? Well,
Speaker 3: you know me, this is how old I am. I'm like, well,
Speaker 3: do I have to put it in you know ww
Speaker 3: canfig file like our webconfig file?
Speaker 1: You know, like how about an any file?
Speaker 3: Yeah? Where does this stuff go? It's so and go
Speaker 3: and go Land. They have a project called viper which
Speaker 3: handles all of these settings for you and it'll look
Speaker 3: all over the place for you know, settings, dot json
Speaker 3: files or environment where you might have some settings there.
Speaker 3: And so I thought, hey, I bet I could port
Speaker 3: this over to dot net. And so I made this
Speaker 3: project that will look it uses i canfig and so
Speaker 3: it'll look anywhere and everywhere for settings files when it
Speaker 3: starts up, so dot env it'll look and and it
Speaker 3: try and takes. It tries to cues from the ASP
Speaker 3: dot net core, dot net environment variable as well to
Speaker 3: know if it's in test or production or dev, and
Speaker 3: then it'll look for a dev dot json, a product
Speaker 3: Jason and so on. Anyway, what it tries to do
Speaker 3: is simplify this entire process, and that's what it is.
Speaker 1: And I thought the configuration process in dot net I
Speaker 1: can figure whatever when you read from it kind of
Speaker 1: did that like there are tears right. You have the
Speaker 1: app settings dot Jason, dot developer yes or development first,
Speaker 1: and then a upsettings that Jason, and then it will
Speaker 1: go out and look in you know, wherever. I guess
Speaker 1: if you're running in production in Azure, it'll it'll read
Speaker 1: those things, the environment variables also. But isn't there a
Speaker 1: a hierarchy to those things.
Speaker 3: It's a good question. I showed this to Damian Edwards
Speaker 3: who was very quick to say, well, what are you doing? Mate? Yeah?
Speaker 3: I said, you know, I'm just doing my thing, man,
Speaker 3: just doing my thing here tries I might and it's
Speaker 3: been it's been long enough now that I can't remember
Speaker 3: the exact problem I was having, but tries I might.
Speaker 3: I could not reliably get environment variables read from a
Speaker 3: dot een v file just in time and so and
Speaker 3: so that's what you know, That's what I'm used to
Speaker 3: from the node world and Ruby world, where you have
Speaker 3: a dot env file and everything is read in along
Speaker 3: with some secrets like where are the secrets and so? Right,
Speaker 3: it has a secrets thing you do dot net secrets, right,
Speaker 3: So I kind of just wanted to I wanted to
Speaker 3: have everything kind of play together nicely. So that's what
Speaker 3: this project is.
Speaker 1: Well that's cool, Yeah, nice, that's great.
Speaker 2: I just started to put it in place and you know,
Speaker 2: work from there. Because I would also wonder how the
Speaker 2: jacent this would be to something like Aspire.
Speaker 3: Oh that's a good question. Yeah, I don't.
Speaker 2: I mean, this is more dot net center, it is
Speaker 2: necessarily cloud center.
Speaker 1: But yeah, but you are at some point reading from
Speaker 1: the Azure configuration, aren't you.
Speaker 3: That was the next step, Like you're talking about key
Speaker 3: vault maybe or are you talking about something different?
Speaker 1: Well, okay, app settings, app configuration variables in Azure. So
Speaker 1: when you have a web app, let's say you can
Speaker 1: go into the you know, configuration and add variables. It's
Speaker 1: just basically a key value thing. And so if those
Speaker 1: have the same name as the ones that are in
Speaker 1: your local config file and they're in production, they'll be
Speaker 1: read from that.
Speaker 3: Yeah, it's been a while, so I have this is funny,
Speaker 3: going back to copilot, it's been a while. And when
Speaker 3: I made this project, I had not done dot net
Speaker 3: in years, and that's not for any other reason.
Speaker 1: Then.
Speaker 3: I just was doing other things and right, I'm going
Speaker 3: to help myself here. One of the only reasons I
Speaker 3: was able to get through this is I used co
Speaker 3: Pilot's funny. That's the right question back in the kind
Speaker 3: of the not I want to say, early days, but
Speaker 3: kind of just as it was getting going, I turned
Speaker 3: it on and someone had said it does quite well
Speaker 3: with dot net and I was like, oh great, and
Speaker 3: sure enough. I remember just sitting there going, oh my goodness,
Speaker 3: wooh that all right, that's how that works. And yeah,
Speaker 3: it's pretty funny, but.
Speaker 2: As much reminder as anything else. But at least it
Speaker 2: was leading you down the right path. You weren't banging
Speaker 2: your head against keyboard trying to remember stuff.
Speaker 3: Yeah, and where we left off was and we might
Speaker 3: come back to this when I say we me and
Speaker 3: Aaron whistling, we left off with trying to work with
Speaker 3: a key volt and it did, but it was slow
Speaker 3: because it slid our test down only because we were
Speaker 3: working locally and not in the cloud. So if we're
Speaker 3: in the data center it'll probably be faster.
Speaker 2: But yeah, anyway, yeah, now you're hitting all the authentication
Speaker 2: stuff right, yes, yes, and you know you gotta be
Speaker 2: careful with that. No, and it's also takes time, like
Speaker 2: there's no, that's all all, especially if you're doing when
Speaker 2: you're doing testing, like you notice you start to really
Speaker 2: notice the reaff reoff real steps that you go through
Speaker 2: with an app identity exactly, stuff you wouldn't normally do,
Speaker 2: like don't optimize that you only need the indication off
Speaker 2: the bat to get that, you get whatever token you
Speaker 2: need to work with and app that you're good.
Speaker 3: Yeah. Well you're bringing up an interesting point too, Carl.
Speaker 3: You mentioned this before that when you do read configuration,
Speaker 3: you're going to have you know, you're going to have
Speaker 3: various keys that are going to be duplicated across environments
Speaker 3: and also you know, across location like development or my
Speaker 3: machine versus yours? Right, and how do you how do
Speaker 3: you manage that? It's it's not an easy not an
Speaker 3: easy thing.
Speaker 1: And you want the flexibility to be able to read
Speaker 1: where appropriate, but also you don't want it reading where
Speaker 1: you don't want it from.
Speaker 3: So to be honest, don at eight came out after
Speaker 3: I put this together, and I think I might have
Speaker 3: upgraded it, but I don't know exactly how Configuration Manager
Speaker 3: works or the configuration bits work these days in terms
Speaker 3: of trampling things and what it holds to be correct.
Speaker 2: Right, So, and you mean nine, eight or nine? Like
Speaker 2: nine just came out?
Speaker 3: Is it? Nine? Yeah? Maybe maybe that's what I meant,
Speaker 3: like a built you eight, Chris turn the numbers in
Speaker 3: my head man.
Speaker 2: Well, and plus shipping dot net every year it has
Speaker 2: been arduous. Yeah yeah, they've really only done it three
Speaker 2: times in a row now or four times in a row.
Speaker 2: Now it's four times and we're all like, yeah.
Speaker 3: Yeah, you know, it's funny. Oh, ping people on you know,
Speaker 3: DEVDV or developer division, ah, ping people on the dot
Speaker 3: net team or whatever and ask them some questions like
Speaker 3: they'll be I'll get back to you. We're gonna ship
Speaker 3: dot net we're getting ready to ship you. I'm like,
Speaker 3: didn't you just do that? It seems like you just
Speaker 3: did that.
Speaker 2: You're like, oh god, they just did.
Speaker 3: It's like a long runway to get up to speed
Speaker 3: and get all the docs right. Wow, everyone is just
Speaker 3: full guns.
Speaker 2: Oh there was and there was a big stink around
Speaker 2: the fact that dot Net nine shipping means that dot
Speaker 2: Net six, which is the long term support version, long
Speaker 2: term meaning three years, it's going out of support. And
Speaker 2: people are like, but what are you doing to me?
Speaker 2: Like I don't want to move right, Like aren't you
Speaker 2: going to keep doing patches? Like no, It's like, well,
Speaker 2: what if I need a patch? It's like there is
Speaker 2: a patch called at nine. Well, and it's fat. It's
Speaker 2: really quite and.
Speaker 1: Easy to go from eight to nine, but not so
Speaker 1: easy to go from seven to nine. I'll just say
Speaker 1: that because they especially in visual studio proper, because the
Speaker 1: templates are completely.
Speaker 2: When they're sinking versions of the studio with because studios
Speaker 2: not on an annual cadence, but every time studio gets
Speaker 2: updated alongside a version of dot net, you have a hit.
Speaker 2: And six was that, Like I think a lot of
Speaker 2: people are stuck to six, because six was the one
Speaker 2: where you also got a new version of studio. You
Speaker 2: got nineteen and it was painful.
Speaker 1: And it's those templates that change, and you can still
Speaker 1: use the old way of you know, having a startup
Speaker 1: CS and a program CS, and now everything moved to
Speaker 1: program We don't have a startup CS anymore in the
Speaker 1: templates the web templates anyway. And yeah, it's it's a challenge.
Speaker 2: It's not a trivial refractory. It's not automated. You have
Speaker 2: to go through. It's it's not like it's impossible, but
Speaker 2: you're going it's the worst kind of code fixes your best.
Speaker 2: Nobody will notice. More likely something that used to work
Speaker 2: is going to break.
Speaker 1: Eight to nine though, was a breeze for me.
Speaker 2: It was I think they've settled down, but you know
Speaker 2: that I'm definitely talking to folks that are only going
Speaker 2: LTS to LTS. Yeah, they got to six and it
Speaker 2: was a battle and they hadn't gone around to get
Speaker 2: an eight yet, which is the next LTS. And then
Speaker 2: now nine came out, so six going out of support
Speaker 2: and like I have to go and you know, I
Speaker 2: do it, and then they really want to go to eight.
Speaker 2: It's like really, because you know it's gonna happen to
Speaker 2: you again.
Speaker 1: I wonder if you'll stop at eleven like Windows, Yeah,
Speaker 1: everything will be dot net eleven.
Speaker 2: We already made a dot net nine, which they did
Speaker 2: not do for Windows for very various reasons. But I
Speaker 2: don't know how many organizations are actually on the annual
Speaker 2: update cadence. I've talked to far more that are only
Speaker 2: lts like every other man. The perfin nine is just great.
Speaker 2: It's a shocker. Yeah, Chin, switch the framework and your
Speaker 2: app goes faster. It's amazing.
Speaker 1: Blazer server applications are so much better because you don't
Speaker 1: get the what did I call it, the semi opaque
Speaker 1: veil of death?
Speaker 2: Yes, it was a blue screen of death, and it
Speaker 2: was a white screen of death that was a yellow
Speaker 2: opaque veil of death.
Speaker 3: Yeah. One of the things that that I was building
Speaker 3: with Aeron in the Tailwind project was I wanted to
Speaker 3: make a mail list server that worked with markdown files nice.
Speaker 3: And we had a goal of sending out twenty five
Speaker 3: thousand emails and I think my I set the goal
Speaker 3: for under ten seconds, which you thought, Okay, you know
Speaker 3: this has obviously got some networking issues around it and
Speaker 3: so on. But you know, isn't there some kind of
Speaker 3: cool threading thing? And you know, I talked to I
Speaker 3: talked to a few people and they're like, oh, just
Speaker 3: use the oh no, that was deprecated in that. Anyway,
Speaker 3: there's a lot of confusion, confusion about how to do this, right.
Speaker 3: I had no idea, and so I just I I
Speaker 3: still like an ad for copilot, but.
Speaker 2: Yeah, you know, whate knows. I was going to say that,
Speaker 2: you know what it knows?
Speaker 3: Yeah, And so I put it in and I can't
Speaker 3: remember the exact code that it wrote. But anyway, what
Speaker 3: it did is it spawned what twenty five thousand different
Speaker 3: threads I suppose or something. It spawned a bunch. Actually
Speaker 3: I shouldn't say that because I don't know how the
Speaker 3: internal workings are. And it sent out twenty five thousand
Speaker 3: emails I want to say, in two and a half seconds,
Speaker 3: and whoa, yeah, no doubt. And so when you say
Speaker 3: sent out, what do you mean there is a project?
Speaker 3: There's a project. I can't remember it's oh, I'll come
Speaker 3: up with the name. But it's a local website that
Speaker 3: you run, and so you can actually use it as
Speaker 3: an endpoint like a mail service and you can actually
Speaker 3: you can mimic the network settings on it, so I
Speaker 3: you know, I tuned it to I think is one
Speaker 3: second something like that delay for receipt, and I just
Speaker 3: my jaw hit the floor. I was like, you've got
Speaker 3: to be kidding me.
Speaker 1: Now I know where all that spam came from.
Speaker 2: Connery.
Speaker 3: Yeah, it's pretty funny though, Yeah, it's pretty funny. I
Speaker 3: should go, you know, I'm going to go look for
Speaker 3: this really quickly, tell you what it is.
Speaker 1: It's a good time to take a break then yeah, yeah,
Speaker 1: we'll be right back after these very important messages. And uh,
Speaker 1: of course, as a reminder, if you don't want to
Speaker 1: hear these ads mid break or pre impost, you can
Speaker 1: become a patron for five bucks a month. Go to
Speaker 1: Patreon dot dot netroocks dot com and you'll get an
Speaker 1: ad free RSS feed for the podcast. All right, 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 Franklin. That's my friend Richard Hey,
Speaker 1: Richard Campbell, and as our good friend Rob Connery. Hello,
Speaker 1: And he was about to look up some mail server
Speaker 1: web thing that you use.
Speaker 3: Yeah, it's it's called mail pit. I found it, thankfully.
Speaker 3: It's called mail pit. You can actually install this as
Speaker 3: a doctor container and it just runs and you have
Speaker 3: an API and you send mail off to it, and
Speaker 3: it looks like it's a go binary. I just used
Speaker 3: Docker to run this thing and put it on a
Speaker 3: port and just said okay, I'm sending email to you.
Speaker 3: And there they were.
Speaker 1: So who did you actually send these twenty five thousand
Speaker 1: emails too?
Speaker 3: It was like one test at test dot com, two
Speaker 3: test at test dot com. So it you tell it
Speaker 3: what domains to accept and what's to reject, and so
Speaker 3: it's a full testing application that you can use and
Speaker 3: tune as you need.
Speaker 1: Oh so they weren't real people.
Speaker 3: They are real emails, but not real people endpoints. No,
Speaker 3: it just goes to this application.
Speaker 1: But you could you could if you wanted to take
Speaker 1: a mail client, a pop three client or whatever imap
Speaker 1: and go retrieve them right.
Speaker 3: Well, so when you run this, it gives you a
Speaker 3: webinar face that looks like Gmail or something like that,
Speaker 3: so you can actually see the male landing coming in.
Speaker 3: I like that. It's great.
Speaker 2: Two and a half seconds later, then you go back
Speaker 2: and you go and look and you look like you've
Speaker 2: got a huge spew of you.
Speaker 3: To be kidding me. It's just one of those moments
Speaker 3: where you is there a delete a whole button? You know,
Speaker 3: It's like the moments that when you're when you love
Speaker 3: being a programmer, when you love being a jump out
Speaker 3: of your chair and you're like, oh my god, and
Speaker 3: you know, someone runs in the room like okay, like
Speaker 3: you know, you wouldn't believe it, and you start to
Speaker 3: explain it and they're like, well, that's great for you, man.
Speaker 1: I'm really glad you're happy you see me exact Yeah, Richard,
Speaker 1: you've got to tell the SMS story again for those
Speaker 1: Oh no, this is a great one.
Speaker 2: That was a but that's this is in the nineties, right,
Speaker 2: This is the Nokia Candy Bar phone era, and the
Speaker 2: local telco opened up an API, they didn't call it
Speaker 2: that back then. It so that we could send a
Speaker 2: text message. So I wrote a little tool from monitoring
Speaker 2: the set of service that were responsible for to send
Speaker 2: me a text message if they went down oddly enough,
Speaker 2: it had a bug. And this is back when a
Speaker 2: text message is literally a prompt on your phone and
Speaker 2: you had to hit your little buttons on the l
Speaker 2: and not on the screen, but it actually buttons to
Speaker 2: retrieve the text message, and it would show you the
Speaker 2: text message. So I, oh, there is delete and it
Speaker 2: goes text message. Go open it up delete. How many
Speaker 2: are they? So after doing a few, I go and
Speaker 2: look at the code, I'm like, oh, no, there are
Speaker 2: thirty two, seven hundred and sixty seven of these. Oh,
Speaker 2: and I have to delete them one at a time.
Speaker 1: Which just happens to be the upper range of short.
Speaker 2: Yeah. Yeah, everybody knows what number this is is due
Speaker 2: to the fifteenth right. So I go call the text
Speaker 2: support for that gateway I think it was called at
Speaker 2: the time, and the Tier one guy has no idea
Speaker 2: what I'm saying, right, and so, but I confuse him
Speaker 2: enough that he goes, let me pass you up, and
Speaker 2: he passes me the Tier two guy. And I start
Speaker 2: trying to explain this to the Tier two guy for
Speaker 2: a bit and he's like, I don't know, but you
Speaker 2: know it takes a little while because he's supposed to
Speaker 2: will solve this that he does know what to do.
Speaker 2: Finally he passes me to tier three, and now I'm
Speaker 2: like in the knock and in the phone rings and
Speaker 2: it's like so so I was like, Hi, my name's
Speaker 2: Ridge Campbell, and I give the phone number.
Speaker 4: He goes, oh, it's you. They were all looking at
Speaker 4: this explosion. We've been waiting for your cab. It's like, okay,
Speaker 4: I'm going to lead these on the other end. You're
Speaker 4: gonna have to delete the one that's already got your
Speaker 4: phone and then don't do that again.
Speaker 1: I did dumb things like that too when I was,
Speaker 1: you know, just starting.
Speaker 2: Out before the era of rate limitters, right, like there
Speaker 2: should have been a rate limit on that.
Speaker 1: I remember. I was trying to do like remote execution
Speaker 1: of code. And this wasn't for hacking or anything. This
Speaker 1: was just to see if I could do it in
Speaker 1: VB And I called up my friend and I said, hey,
Speaker 1: run this little app and just leave it there. He goes, Okay,
Speaker 1: what it was supposed to do is like pull up nopad,
Speaker 1: but I didn't. Actually, when it got the signal, it
Speaker 1: pulled up nopad and then kept going through the loop
Speaker 1: and pulling up no pad and he's.
Speaker 2: Sc filled with thousands of note pads. He's like, what
Speaker 2: did you do? I said, I was sorry, man, I
Speaker 2: do know how to stop it.
Speaker 1: It's like VB six or something.
Speaker 3: I might have told you this before, but this is
Speaker 3: back in nineteen ninety eight and I was using visual
Speaker 3: Interdev and I was trying to explain what server extensions were,
Speaker 3: you know, on anti server. And we had a new
Speaker 3: guy join us at this consultancy, and I said, yeah,
Speaker 3: you can lock onto any site, like, look if I
Speaker 3: have a domain. And I just happened to be looking
Speaker 3: at Vertigo's website, which is where Jeff Atwood used to
Speaker 3: work a long, long time ago and anyway says before
Speaker 3: his time. But I said, look, what if we could
Speaker 3: lock onto their site? And sure enough I was able
Speaker 3: to open up vertigo dot com in visual Interdev and
Speaker 3: I said, we'll hold on a second now, and I
Speaker 3: went and I just kind of I edited their homepage
Speaker 3: and I forgot what it said, but I just changed
Speaker 3: a few words and I'm like, uh, and I'm looking
Speaker 3: at the guy at the new high I'm like, Okay,
Speaker 3: I didn't mean to do that in the phone ring
Speaker 3: and it was Scott Stanfield, right, I think it was
Speaker 3: Scott Stanfield as somebody and they're like, what are you
Speaker 3: doing on our website? Like, I'm sorry, I didn't do I'm.
Speaker 2: Sorry, sir, I shouldn't be able to do this.
Speaker 3: Yeah, just some small configuration issue that they missed.
Speaker 2: So now they have the Secure Future initiative because they're
Speaker 2: still having those problems are just still a bit more complicated. Yeah,
Speaker 2: it's funny how often you end up poking under the
Speaker 2: hood a little bit on that sort of stuff and going, oh,
Speaker 2: you know, the underbelly is soft and squishy, right. Yeah.
Speaker 1: So there was a story that we did in security
Speaker 1: this week. This was episode one sixty seven. It was
Speaker 1: about a dot net exploit. It was let me look
Speaker 1: at it. I think it was this devious new malware
Speaker 1: technique looks to hijack Windows itself to avoid detection and
Speaker 1: I'll publish a link to it. But yeah, there was.
Speaker 1: It was something in the dot net framework.
Speaker 2: I don't think when sixty seven is published yet, but
Speaker 2: it will be by the time this shows out.
Speaker 3: Yeah.
Speaker 1: No, no, it's not published yet, but it will be
Speaker 1: by this time. In report published on the Akami blog
Speaker 1: earlier this week, it was said that starting with Windows XP,
Speaker 1: the os introduced a feature called UI Automation as part
Speaker 1: of the dot Net Framework, and this feature is designed
Speaker 1: to provide programmatic access to user interface elements, enabling assistive
Speaker 1: tech technologies like screen readers to interact with applications and
Speaker 1: help users with disabilities. It also supports automated testing scenarios
Speaker 1: by allowing developers to manipulate and retrieve information from UI
Speaker 1: components programmatically. And since we started security this week, this
Speaker 1: is the first thing that involved the dot Net framework
Speaker 1: at all. So it's just part of Windows. You can
Speaker 1: turn it off, but I think it's on by default,
Speaker 1: which is bad. So it's a way to abuse accessibility
Speaker 1: features on Windows to hide malware. It slips below the
Speaker 1: radar and I don't know that there's a patch for it.
Speaker 2: Well, and it's been around for twenty years or that
Speaker 2: vulnerability has obviously, Yeah, part of XP. It's a long time.
Speaker 1: Yeah, So what else is interesting in your life these days? Rob?
Speaker 3: You know, it's it's funny. We are we are full
Speaker 3: guns right now on the co pilot free stuff, and
Speaker 3: it's funny. We we have been you know, not going
Speaker 3: to too many conferences, but now we're able to kind
Speaker 3: of travel a little bit more these days. So I'm
Speaker 3: going to NDC London.
Speaker 2: Yay, me too. Yeah.
Speaker 3: We had NDC London this year, which will be fun.
Speaker 3: And I'm doing all like I do videos, I do
Speaker 3: you two a month on the VSCO YouTube channel, So
Speaker 3: I got a couple of those coming out, which would
Speaker 3: be fun. And I'm really enjoying doing that.
Speaker 2: I mean, and I presume that everybody's listing here knows that.
Speaker 2: In December, and we basically announced that inside of all editors,
Speaker 2: not just visuals Studio Code, but all editors get hub
Speaker 2: Copilot is free.
Speaker 3: Yeah, and that was a huge when they said it. Internally,
Speaker 3: it was just like, oh my god, this is great.
Speaker 3: I was so excited. I was so so happy about it,
Speaker 3: you know, just because we did a live stream with
Speaker 3: Jason Langsdorff and he brought up the point that, you know,
Speaker 3: there's people out there that could really really benefit from
Speaker 3: co pilot, but ten dollars a month outside the you know,
Speaker 3: North America US is really expensive. I mean even in Canada.
Speaker 3: You guys are you know hard up up there.
Speaker 2: That's like a it's not half a gallon of Yeah.
Speaker 3: Anyway, this really helps people. And of course, you know,
Speaker 3: and I just have to make it clear, I don't
Speaker 3: speak for Microsoft. This is just me speaking right now,
Speaker 3: so don't get in trouble. But you know, there's a
Speaker 3: lot of people who you know, have pushed back, and
Speaker 3: I think that's fine. I think one of the main
Speaker 3: points that that I really react to is when people say, oh, Copilot,
Speaker 3: you know, is going to help junior devs write you know,
Speaker 3: really bad code and so great, now you're enabling that.
Speaker 3: And you know, I was, I was thinking about this yesterday.
Speaker 3: I'm like, where is this fear of junior developers coming from?
Speaker 3: You know, everyone's afraid for them. They're afraid for them,
Speaker 3: and they're afraid of them.
Speaker 2: It's like like like they weren't already writing bad code
Speaker 2: in the first place, Like come.
Speaker 1: On, you know, you know the compiler will whack them
Speaker 1: back into reality, and.
Speaker 2: So well, how do you expect them to get better?
Speaker 2: And it's ready to put that out there. And the
Speaker 2: thing about it is what code reviews are, that's right.
Speaker 3: And I was just about to say that, you know,
Speaker 3: one of the features that that Copilot has now is
Speaker 3: the ability to do a code review.
Speaker 2: Before you push and you're applying here, the opposite may
Speaker 2: be true that their code will actually get better.
Speaker 3: Yeah, that's right, it gets It's so I did a
Speaker 3: code review because we're doing some internal project that was
Speaker 3: going along with a demo. Doesn't really matter, but I
Speaker 3: did a code review before I pushed it. And I
Speaker 3: was like, oh my goodness, I completely forgot about this.
Speaker 3: You know, it was like some internal security thing that
Speaker 3: we had to make sure that you know, was not set.
Speaker 3: And we also made sure we had to have accessibility
Speaker 3: and other settings. And I'm like, oh my goodness, I
Speaker 3: totally forgot. So the reason why I think that's huge
Speaker 3: is for managers out there and the senior people that
Speaker 3: have to do the code reviews, this is one less
Speaker 3: cycle for you, and you shorten these review periods. And
Speaker 3: I think it's I don't know, I think a top
Speaker 3: to bottom is great. And for the other thing, I've
Speaker 3: told my friends too that a lot of them, I
Speaker 3: mean some of them are really vocal with me, like
Speaker 3: do not like Copilot at all? And yeah, and I said, well,
Speaker 3: you know, just think of it this way. It's shortening
Speaker 3: the loop from Google to stack overflowed from copy paste.
Speaker 3: It's just shortening that loop. There's nothing else happening here.
Speaker 2: And I mean I also you can debate the quality
Speaker 2: of the coded fish fetches. I've had good experiences, I
Speaker 2: had bad experience and so forth. You can't debate it
Speaker 2: writes a better pullar re quest than you do every
Speaker 2: time by a mile, appropriately Like it's its ability to
Speaker 2: actually have a record of everything you changed and write
Speaker 2: a decent summary of it. You would never go to
Speaker 2: its legness. You know that that's just a now I'm
Speaker 2: not optional, Like you can see the difference. I see
Speaker 2: it in a set of developers working where you can
Speaker 2: see who's using is gotten familiar with get hub copilot
Speaker 2: enough that they're right in their pr summaries with the
Speaker 2: tool because they're great.
Speaker 3: Well, that's you know, the talk I'm going to give it.
Speaker 3: NDC is going to be exactly this. I don't quite
Speaker 3: know how many, probably five demos in there, but let's
Speaker 3: call it five. You know, five ways it'll actually improve
Speaker 3: your day, you know, or make your make your life
Speaker 3: a little happier, like actual hands on stuff. And you
Speaker 3: know everyone's got their copilot demo. But it's kind of funny,
Speaker 3: like what are what are the people in the trenches
Speaker 3: that are writing code every day? What do they use
Speaker 3: it for? How are they using it?
Speaker 2: In the summarizer and the right like exactly what you
Speaker 2: said with the code review, it's like, oh, I forgot right.
Speaker 2: The tools reliable at going through the checklist and valid yep,
Speaker 2: that's right.
Speaker 3: Yep. And change log too. A lot of people demand
Speaker 3: a changelog, and you can make a change log. You
Speaker 3: get commits, which is pretty fun. Yeah.
Speaker 2: Yeah, and then notice all the things we're the most
Speaker 2: excited about are not the find this code part right, Like,
Speaker 2: so it also has some capability of parsing code, like
Speaker 2: what does this code do?
Speaker 3: You know?
Speaker 2: Not to steal carls under here, but the whole this
Speaker 2: is a link expression, show me in loops. This is
Speaker 2: a set of loops, show me as a linking expression.
Speaker 2: All of that is pretty slight. Yeah, I think it's
Speaker 2: pretty neat. Yeah.
Speaker 1: I use that exploding link thing to write comments for
Speaker 1: people who don't understand link that might be looking at
Speaker 1: the code and trying to figure out what it does.
Speaker 2: It's such a great idea, right to have it exploded
Speaker 2: out as a loop and then make that a block
Speaker 2: comment and then make it back into links.
Speaker 3: This is what this Actually, it's pretty neat because you
Speaker 3: don't know. I remember the pushback against link way back
Speaker 3: in the day showing you hold him because people didn't
Speaker 3: know is going under the covers, and you know, what's
Speaker 3: what's the big go on this? I don't know who cares.
Speaker 3: The people at Microsoft are probably smarter than you. But
Speaker 3: that was the feeling back then. I'm not trying to
Speaker 3: say that declaratively, but that was a feeling back then,
Speaker 3: is you could have faith and anders you know, you
Speaker 3: could have faith in these people.
Speaker 2: No, you do it all the time when you call
Speaker 2: a cryptographic library or you know, any of these things
Speaker 2: like I'm sorry you don't trust APIs do you know
Speaker 2: what you do for a living? That's right, that's right,
Speaker 2: you know, And if I mean, this show has done
Speaker 2: the debate about rms as they emerge, you know, and ascended,
Speaker 2: descended and so forth. But you know, I think the
Speaker 2: case is pretty clear now that for eighty percent of
Speaker 2: the cases in most applications, what the RM spout out
Speaker 2: is efficient, and these days there are good enough ways
Speaker 2: to deal with the other twenty without having to abandon
Speaker 2: an RM.
Speaker 3: That's right. And you know, if anybody out there is
Speaker 3: my history, you know how much I have one hate
Speaker 3: or MS and two have always decided to make my own,
Speaker 3: which is a weird kind of split brain kind of deal.
Speaker 2: Yeah, no, it's it's sound kind of crazy. Next you'll
Speaker 2: be writing your own garbage collector you know, little nuts.
Speaker 2: But I think in the last two years I was
Speaker 2: telling again Erin and I worked together very well that
Speaker 2: I've finally just let go my ORM problem and just
Speaker 2: now I'm using them all the time.
Speaker 1: And how I learned to stop working trust the R
Speaker 1: you know, the big trust, the Trust Entity framework.
Speaker 3: The big thing for me has been that I need
Speaker 3: to have sequel light support for testing for actions, because
Speaker 3: just you you could have a postcrist container spin up
Speaker 3: to run your test, but that just delays things a
Speaker 3: little bit too long, whereas we just do sequal light
Speaker 3: in memory and boom it'll run.
Speaker 1: And do you use dapper d A.
Speaker 3: P P E R. That's what I used for the
Speaker 3: male thing I was telling you about. I used Dapper.
Speaker 1: I like it because it's essentially ado dot net without
Speaker 1: having to write lots of code to handle parameters and
Speaker 1: so good. It just does it.
Speaker 3: Yeah, Sam, Sam, I think is Sam Saffron that that
Speaker 3: created that? Right?
Speaker 1: Yeah, that's right.
Speaker 3: Yeah, you know a funny story behind that. I think
Speaker 3: did we do Oh no, we did a handsle minutes
Speaker 3: on that. I don't think we talked to you guys.
Speaker 3: But back when, so Jeff Atwood when he made stack
Speaker 3: overflow used linked to seql and yah, everyone loved. Link
Speaker 3: to seql is awesome. But it started as the site grew,
Speaker 3: it started to slow down a bit, and so they
Speaker 3: were looking at alternatives and one of the ones they
Speaker 3: looked at was one that I made called Massive, which
Speaker 3: was dubbed a micro orm, and so it didn't quite
Speaker 3: fit what they needed because they needed some perft weeks.
Speaker 3: And so Sam went in there and kind of took
Speaker 3: some inspiration and went off and did his own thing,
Speaker 3: made it fast as heck, and that's where that's where
Speaker 3: dapper started.
Speaker 1: And dapper contrib is another project that works with Dapper
Speaker 1: that gives you all of the crud things already done,
Speaker 1: you know, all the extensions to the to the sequel connection,
Speaker 1: insert update.
Speaker 2: Delete, different and totally different from da PR, which is
Speaker 2: also pronounced daffern is an Azure tool. Don't mix these up.
Speaker 2: You'll be sad. Making sure I grab all these links
Speaker 2: for Dapper and African tradees that folks can take. If
Speaker 2: you haven't taken these out for a spin, you need
Speaker 2: to look at them. But I bring up the ORM
Speaker 2: story because I think Copilot's in the place that ORMs.
Speaker 2: We're back in the day where some folks are having success,
Speaker 2: some folks are not. There are concerns. The product is
Speaker 2: in motion and it's too early to draw hard lines
Speaker 2: because you don't know yet. Don't you don't expect to
Speaker 2: do everything right. It won't you know, find the value
Speaker 2: where the value is and expected to change. I noticed
Speaker 2: there are limits on the free platform, like there is
Speaker 2: a reason to buy the pro plan. You're allowed two
Speaker 2: thousand co completions a month, which is you know, and
Speaker 2: they worked out as eighty per working day. But you're
Speaker 2: figuring out five week like you're gonna be okay, it'll
Speaker 2: be fine.
Speaker 3: Yeah, you know, it's funny in the blog post. Are
Speaker 3: you reading Brooks blog post? Yes? Yeah, I helped him
Speaker 3: write that, and it's funny. I I that's one of
Speaker 3: my contributions. I said, you know, maybe break it down
Speaker 3: by day so people could see eighty by day. And
Speaker 3: I just kind of I didn't do the exact math
Speaker 3: on that because you know, how do you know how
Speaker 3: long a day is and people been working?
Speaker 2: But anyway, yeah, we're talking about software days. This is
Speaker 2: a relative ist determent the best of.
Speaker 3: Times, that's right. So I just picked a number, I said, eighty.
Speaker 2: Nice. Well he's like, yeah, how many weeks off do
Speaker 2: you presume you work a five day day a week,
Speaker 2: and how many weeks do you get off? Like, you
Speaker 2: can play with that number for a while, right, it
Speaker 2: might be forty eight or fifty, you know, fifty's about right.
Speaker 3: Yeah.
Speaker 1: Well, I think unless you have anything else you want
Speaker 1: to talk about, I think we're bout done here. No. Oh,
Speaker 1: I did want to mention you mentioned you're going to
Speaker 1: be at NDC. I just got word that I was
Speaker 1: accepted as a speaker for dev some in June June
Speaker 1: twelfth and thirteenth, and Blazer talked there on Gotcha's and
Speaker 1: also a workshop no Fun. So maybe i'll see you there.
Speaker 2: I guess I'm going to and we'll record some shows
Speaker 2: in person, which we haven't done.
Speaker 1: In a lot, and we have that. Yeah, that would
Speaker 1: be great.
Speaker 3: Is that Tibby's conference?
Speaker 1: Yeah, yes, yeah.
Speaker 3: I got accepted to speak there a couple of years
Speaker 3: ago and I couldn't. I had to back out, and
Speaker 3: so he invited me the next year. He said, we
Speaker 3: really want you to come and do this talk, and
Speaker 3: so it'd be fun to go. I really would love to.
Speaker 3: I've met him once. We had dinner with Key Scott
Speaker 3: Allen of all people, one of the MVP summits, and
Speaker 3: it was he was just a wonderful person.
Speaker 2: So yeah, Tibby's good fun and he's there's a reason
Speaker 2: he's a conference organizer type because he gets you know,
Speaker 2: he's also been a speaker and so forth, so he
Speaker 2: does understand that that sort of thing. Knows other people do.
Speaker 2: So yeah, I know I'm already committed to dev some
Speaker 2: just double check.
Speaker 1: And June is a great time to be in Stockholm
Speaker 1: as opposed to January or February.
Speaker 2: February going to be there in February two because you know,
Speaker 2: I'm an idiot.
Speaker 3: Stockholm's amusing city.
Speaker 2: I love it.
Speaker 1: I love Stockholm. So I'll see that. And Richard, do
Speaker 1: you have anything to announce in terms of dates for
Speaker 1: dev intersection.
Speaker 2: No, we're working hard to trying to figure out what
Speaker 2: exactly what we're going to do in twenty twenty five,
Speaker 2: but there are many forces at work, so to speak.
Speaker 2: So okay, the moment i'd be allowed to say, I
Speaker 2: will say, okay, cool, we're not quite there yet. So
Speaker 2: for better or worse, it's an interesting time, and you know,
Speaker 2: we're having a good time sure for better or worse.
Speaker 2: Besides all the conferences you all know I go to,
Speaker 2: we are also involved in like the Fabric conference. So
Speaker 2: right now the Fabric Conference is absorbing a lot of
Speaker 2: energy because data analytics is big man, Like, it's really
Speaker 2: been crazy. So that's at the end of March and
Speaker 2: we're expending eight thousand people, Like, wow, it's it's a
Speaker 2: big What what Microsoft's figured out with Fabric is really
Speaker 2: doing analyt It's in the cloud, so don't have to
Speaker 2: move your data around. It's all connector driven. There's a
Speaker 2: lot of smart caching going on. The mL tools are
Speaker 2: just integrated, so it's you know, your analysis is a
Speaker 2: lot simpler, Like it's insanely powerful stuff. And now they've
Speaker 2: added in streaming components for real time intelligence, like it's
Speaker 2: just getting richer and richer, and so people just descend
Speaker 2: on this. This show we did, the one we did
Speaker 2: in the spring in twenty twenty four was sold out
Speaker 2: at over four thousand people. So we've got the double
Speaker 2: venue now like it's all one space, but it's huge
Speaker 2: to be able to live to go up to eight thousand,
Speaker 2: so and we expected this all very cool.
Speaker 1: All right, guys, that's it, Rob. Thanks, it's been great.
Speaker 1: It's always great talking.
Speaker 2: Yeah, you too.
Speaker 3: It's good to see you guys again.
Speaker 1: Thank you here, Thanks Ben, and we'll talk to you
Speaker 1: next time on dot that rocks. Dot net Rocks is
Speaker 1: brought to you by Franklin's Net and produced by Pop Studios,
Speaker 1: a full service audio, video and post production facility located
Speaker 1: physically in New London, Connecticut, and of course in the
Speaker 1: cloud online at pwop dot com. Visit our website at
Speaker 1: d O T N E T R O c k
Speaker 1: S dot com for RSS feeds, downloads, mobile apps, comments,
Speaker 1: and access to the full archives going back to show
Speaker 1: number one, recorded in September two thousand and two. And
Speaker 1: make sure you check out our sponsors. They keep us
Speaker 1: in business. Now go write some code, see you next time.
Speaker 2: You got Javans
Speaker 4: And the