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