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

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

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

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

5
00:00:18,519 --> 00:00:35,679
up now at patreon dot dot NetRocks
dot com. Hey guess what. It's

6
00:00:35,679 --> 00:00:39,359
dot ned rocks all over again.
I'm Carl Franklin and I'm Richard Campbell,

7
00:00:39,399 --> 00:00:42,039
and we're here with Rocky Lotke.
We're gonna be talking to him in just

8
00:00:42,079 --> 00:00:46,320
a minute. But what's up with
you, mister Campbell? What's new?

9
00:00:46,359 --> 00:00:48,920
Oh? When's the last time we
shot a three show day? I know

10
00:00:49,039 --> 00:00:53,000
it's been a while. Yeah,
yeah, it's been fun. Usually I

11
00:00:53,079 --> 00:00:57,079
have a whiskey at this time of
day, yeah, when it's the last

12
00:00:57,079 --> 00:01:00,240
show of the day, but I
am staining from alcohol during the week.

13
00:01:00,439 --> 00:01:04,719
There've been doing this since the first
of January. That's smart. Yeah,

14
00:01:04,760 --> 00:01:08,159
all right, I appreciate that.
Where I have now been, you know,

15
00:01:08,200 --> 00:01:11,879
in the new office, have actually
put the crystal decanter filled with whiskey

16
00:01:11,920 --> 00:01:15,319
in the office, so I don't
even have to I'd have to get out

17
00:01:15,319 --> 00:01:19,359
of my chair. Oh okay,
if you had a drip tube, that

18
00:01:19,400 --> 00:01:22,920
would be even better. I have
a I think there's Shivus regal in there

19
00:01:23,000 --> 00:01:26,239
right now, you know. After
shooting that that windows weekly stuff people bugging

20
00:01:26,280 --> 00:01:29,280
me about. Just make a YouTube
channel at that. That's like one of

21
00:01:29,280 --> 00:01:32,040
the things I could add to a
channel like that is like, what's in

22
00:01:32,079 --> 00:01:36,680
the decant you know, in your
decanter? What's in my decandor? Like

23
00:01:36,920 --> 00:01:40,879
decantors are out of style ever since
bottles became cheap well, and for decanters

24
00:01:40,920 --> 00:01:42,359
for whiskey are kind of like,
nah, why do you do that?

25
00:01:42,400 --> 00:01:47,280
Decanters are for wine, isn't it? Well? These it's really just a

26
00:01:47,319 --> 00:01:49,400
thing you put. Once upon a
time, there weren't bottles for whiskey,

27
00:01:49,519 --> 00:01:55,120
right, and so you would take
you would take your decanter your bottle while

28
00:01:55,120 --> 00:02:00,120
out be clear, your servant would
take your decander down to the whiskey purveyor

29
00:02:00,159 --> 00:02:04,079
and they would fill it from the
barrel and go back home on a like

30
00:02:04,120 --> 00:02:07,039
a growler for whiskey exactly. That's
the way it used to be. But

31
00:02:07,840 --> 00:02:10,520
have bottles, in fact, we
have fancy bottles, right, Yeah,

32
00:02:10,599 --> 00:02:14,280
the things are good, all right? Well cool, let's start things off

33
00:02:14,360 --> 00:02:23,439
right with a little better no framework. All right, man, what do

34
00:02:23,479 --> 00:02:27,680
you got? Well, you you
don't have to know it, so you

35
00:02:27,800 --> 00:02:30,199
better not. You're not better know
it, and it's certainly not a framework.

36
00:02:31,120 --> 00:02:36,280
Don't you should know this? Well? Yeah, play yourself. This

37
00:02:36,319 --> 00:02:39,360
is seriously good music. Okay.
So my better no framework is my band's

38
00:02:39,360 --> 00:02:44,280
website, which I don't know as
if I've even talked about my band's website,

39
00:02:44,360 --> 00:02:47,879
Franklin Brothers band dot com. But
I'm Franklin Brothers band dot com.

40
00:02:47,919 --> 00:02:52,280
You can see our schedule, but
more importantly, you can see a slew

41
00:02:52,479 --> 00:02:57,360
of live videos that we've recorded of
the band, and we meaning me.

42
00:02:58,759 --> 00:03:04,479
The band uses a very cool technology
for it's like all the latest stuff,

43
00:03:04,479 --> 00:03:08,080
but I've been doing it since like
twenty twelve, where you have this headless

44
00:03:08,120 --> 00:03:14,759
mixer right with inputs and outputs and
headphone preamps and all that stuff. Everybody

45
00:03:14,759 --> 00:03:17,360
connects to it, even including the
sound guy sound guy with an iPad,

46
00:03:17,800 --> 00:03:23,159
all the musicians with iPhones or or
you know whatever kind of phone, and

47
00:03:23,439 --> 00:03:29,039
they can dial in their own personal
mix. Each person gets their own mix

48
00:03:29,159 --> 00:03:34,120
that they can modify. With their
phone, and so it takes monitors off

49
00:03:34,120 --> 00:03:38,120
the stage. Everybody gets in ear
headphones and we've been working like this for

50
00:03:38,159 --> 00:03:40,680
a long long time. Nice.
One of the sign benefits of using this

51
00:03:40,759 --> 00:03:45,639
is I could just plug in a
computer and it will record, you know,

52
00:03:45,879 --> 00:03:49,919
thirty two tracks all the channels,
all the channels, and for the

53
00:03:49,960 --> 00:03:53,199
audio wonks right after in the signal
flow, right after the preamp. So

54
00:03:53,599 --> 00:03:58,400
you plug in the microphone, the
preamp amplifies it and then it gets recorded.

55
00:03:58,400 --> 00:04:00,000
So there's no effects, there's no
nuhing thing on it. It's drop

56
00:04:00,080 --> 00:04:03,680
yeah yeah, I know, minimal
room yeah yeah. And so as long

57
00:04:03,719 --> 00:04:06,560
as I get a good signal and
it's not too hot or too low,

58
00:04:06,960 --> 00:04:10,639
I can take that back in the
studio and mix it and then sync it

59
00:04:10,719 --> 00:04:13,039
up to videos and stuff. So
that's what I've done with all of these

60
00:04:13,120 --> 00:04:15,680
videos. So it also cursed me, Like, no monitors means it's a

61
00:04:15,680 --> 00:04:17,279
lot more room on the stage,
yeah, hack of a lot more portable

62
00:04:17,439 --> 00:04:23,279
rig like you can more yeah,
more control is more. Yeah. It's

63
00:04:23,279 --> 00:04:27,279
important that you don't get all the
bleed from the monitors going into the microphones,

64
00:04:27,319 --> 00:04:29,959
which makes it very difficult to mix
the front of the house. Yeah

65
00:04:30,000 --> 00:04:33,839
for sure. So anyway, I
recently published a new video which is a

66
00:04:33,879 --> 00:04:41,399
new mix of an older recording that
we did, Jay and I did with

67
00:04:41,519 --> 00:04:44,839
a few other people, some people
horns from the band, some not.

68
00:04:46,279 --> 00:04:50,120
Of the thrill is gone and so
this is a song that BB King covered

69
00:04:50,160 --> 00:04:54,480
it. He didn't write it originally, but he has the most famous version

70
00:04:54,480 --> 00:04:59,480
of it from nineteen sixty nine.
And the guy who played bass on that

71
00:05:00,480 --> 00:05:04,480
with bb with Bebe, who actually
kind of wrote the groove according to him,

72
00:05:04,519 --> 00:05:09,639
like he came up with that groove
he played it with us. Wow,

73
00:05:09,800 --> 00:05:14,240
Jerry Jamott, who's I mean a
legend, a legend ye as Schofield

74
00:05:14,399 --> 00:05:17,720
told me. He's R and B
Royalty. Dude, how the hell did

75
00:05:17,800 --> 00:05:21,879
that happen so well? And I
mean we were talking before, But that

76
00:05:21,959 --> 00:05:27,480
may the BB King version may not
even be the best version that Jerry played

77
00:05:27,519 --> 00:05:30,800
on. Yeah. Well, yeah, that's true. Yeah, because he

78
00:05:30,800 --> 00:05:33,279
also did the Aretha Franklin version.
Well you're thinking of Son of a Preacher

79
00:05:33,319 --> 00:05:35,360
Man. Oh no, I'm mixing
up songs. Yeah, son of a

80
00:05:35,360 --> 00:05:38,480
Preacher Man. Yes, so we
also did Son of a Preacher Man.

81
00:05:38,560 --> 00:05:41,480
You can find that. But me
idiot. I had no idea that he

82
00:05:41,519 --> 00:05:45,319
did that with Aretha on Aretha frank
And so we're playing in the band and

83
00:05:45,399 --> 00:05:47,360
night drummer says, hey, have
you ever heard Aretha Franklin's version of that?

84
00:05:48,040 --> 00:05:50,800
No, So we listened to it. It's great. And then I

85
00:05:50,920 --> 00:05:55,399
look, Hey, that sounds like
Jerry Jamatt playing bass. Sure enough,

86
00:05:55,600 --> 00:05:58,560
it is. And I asked him. I asked him, Hey, do

87
00:05:58,600 --> 00:06:01,800
you know son of a preacher?
Do it? Do I do? I?

88
00:06:02,120 --> 00:06:05,800
Maybe I do. Rocky, you
can chime in here because the reason

89
00:06:05,839 --> 00:06:11,040
that I'm showing this is because I
remember you came to see my band at

90
00:06:11,079 --> 00:06:14,920
Sailfest in New London one year.
I remember seeing you from the stage.

91
00:06:15,079 --> 00:06:16,560
Yeah. Absolutely, My wife and
I came all the way out there just

92
00:06:16,600 --> 00:06:20,240
for that. Actually, it was
awesome. That was so cool. There's

93
00:06:20,279 --> 00:06:26,120
nothing better than a summer night and
fireworks, yeah, with the water in

94
00:06:26,160 --> 00:06:30,759
the background and the weather and the
and yeah. And it was a fantastic

95
00:06:30,839 --> 00:06:34,439
experience and you guys really knocked it
out of the park. I was very

96
00:06:34,519 --> 00:06:38,879
impressed. Thanks. Well, I'm
very proud of this band and we don't

97
00:06:38,879 --> 00:06:40,920
make any money, but we sure
have a hell of a lot of fun.

98
00:06:42,839 --> 00:06:46,639
Fair enough. Yeah, anyway,
that's my better No framework have fun

99
00:06:46,680 --> 00:06:49,680
with that, and who's talking to
us today? Richard grabbed a comment off

100
00:06:49,720 --> 00:06:55,000
of Show eight sixteen twenty holy Man
going back a little bit. This is

101
00:06:55,240 --> 00:07:00,319
from January twenty nineteen with one Rocky
Laka when we were talking about migrating dot

102
00:07:00,360 --> 00:07:03,720
net standard back when that was a
thing yecause of course he was doing it

103
00:07:03,720 --> 00:07:06,600
with CSLA as well, so he
had certainly some good opinions about it.

104
00:07:08,000 --> 00:07:14,920
And a longtime listener Tony Drake,
who's out of Melbourne, Australia, Melbourne,

105
00:07:14,959 --> 00:07:17,000
and I would also point out one
of my favorite comments of all time

106
00:07:17,079 --> 00:07:21,199
was the one that he sent us
back in twenty eleven when we did that

107
00:07:21,759 --> 00:07:27,800
code mash with the Java posse.
Oh yeah, that was a lot of

108
00:07:27,800 --> 00:07:30,079
bourbon was involved, as a lot
of bourbon, had a lot of bourbon,

109
00:07:30,199 --> 00:07:33,439
and I as if I recall correctly, those guys got hammered and we

110
00:07:33,439 --> 00:07:36,240
were kind of professionals. Oh no, because that was the thing. If

111
00:07:36,240 --> 00:07:39,319
you make fun of the other guy's
stack, you have to take a drink,

112
00:07:39,360 --> 00:07:42,360
which is why, because I was
thirsty, I led off with a

113
00:07:42,360 --> 00:07:46,240
bunch of Java jokes, as you
do but now I think a couple of

114
00:07:46,319 --> 00:07:53,120
them were sleeping by the end of
shows. Not the comment I'm going to

115
00:07:53,160 --> 00:07:56,680
read. I'm going to read Tony's
comment in relation to that dot Standard issues,

116
00:07:56,720 --> 00:08:00,360
which is he said, I love
the show highlights the slight man we've

117
00:08:00,399 --> 00:08:03,319
gotten into. I want to say
something as someone who is building a large

118
00:08:03,319 --> 00:08:07,319
app with CSLA and loved it.
Now working in KRE two to two with

119
00:08:07,399 --> 00:08:11,120
dls oh Man KRE two and Standard
two oh and four point seven to one,

120
00:08:11,480 --> 00:08:16,680
which can use the DLLs from stead
of two oh and an angular seven

121
00:08:16,879 --> 00:08:20,560
SPA as the UI is hosted on
Azure. I came from fifteen years as

122
00:08:20,600 --> 00:08:24,560
a PICK developer in the nineteen nineties. I'm million SQL in dot net in

123
00:08:24,600 --> 00:08:30,519
two thousand and five. I share
those stories with the ADP PICK Basic something

124
00:08:30,600 --> 00:08:33,879
like that. Yeah, I know
with you, it's amazing how much change

125
00:08:33,879 --> 00:08:37,559
we do go through as software engineers. And I would love to have a

126
00:08:37,559 --> 00:08:39,960
beer with Rocky and you both.
I have no real friends who know the

127
00:08:41,000 --> 00:08:46,720
pain we all feel of being in
this odd, odd business. Imagine if

128
00:08:46,799 --> 00:08:52,480
making bridges involved redoing the theories in
practices every five years and no, no

129
00:08:52,559 --> 00:08:54,120
thanks, no, no, no, no, no, I don't think

130
00:08:54,159 --> 00:08:58,360
it's better, Like you know the
big When our software crashes, you just

131
00:08:58,440 --> 00:09:03,440
reboot, which crashes. Beep per
die. None good. If anything I

132
00:09:03,480 --> 00:09:07,960
got for this podcast, it is
stay current. So I feel smuged that

133
00:09:07,000 --> 00:09:11,759
my current business solutions are moving one
hundred percent to Core and keeping up with

134
00:09:11,759 --> 00:09:15,320
the latest JavaScript frameworks and packages like
autumn Apper and so on is the best

135
00:09:15,320 --> 00:09:16,960
way forward. One thing you forgot
to mention is how hard it can be

136
00:09:18,039 --> 00:09:22,080
to realer in this old tech to
keep it going. Getting a developer and

137
00:09:22,120 --> 00:09:24,919
who's never seen WPF for wind forums, and while they know dot net,

138
00:09:26,279 --> 00:09:30,120
it's all new, so it can't
necessarily be easy keep on the latest or

139
00:09:30,159 --> 00:09:33,320
previous releases. My rule keep current. Yeah, good advice. I can't

140
00:09:33,399 --> 00:09:37,279
argue that, Tony. True enough, and thanks so much for your comment.

141
00:09:37,440 --> 00:09:39,639
I mean it was a few years
ago, but not that many.

142
00:09:39,679 --> 00:09:41,840
So a copy of music Code Buy
is on its way to unit. If

143
00:09:41,840 --> 00:09:43,240
you'd like a copy of music Cobe, I write a comment on the website

144
00:09:43,240 --> 00:09:46,360
at dot at rocks dot com or
on the facebooks. We publish every show

145
00:09:46,360 --> 00:09:48,440
there, and if you comment there
and a reading the show, we'll send

146
00:09:48,440 --> 00:09:52,399
you a copy of music cope,
and you could certainly send us a tweet

147
00:09:52,480 --> 00:09:54,919
or an X or whatever the hell
you call it. These days, I'm

148
00:09:54,000 --> 00:09:58,200
at Carl Franklin, He's at Rich
Campbell, but the cool kids are hanging

149
00:09:58,200 --> 00:10:01,360
out. I'm massed on, I'm
at Carl Franklin at tech Hub dot social,

150
00:10:01,440 --> 00:10:05,240
and I'm Rich Campbell at masadon dot
social. Send us a tweet.

151
00:10:05,399 --> 00:10:09,279
I believe Rocky you're also on massadon, aren't you. I am. I'm

152
00:10:09,399 --> 00:10:15,320
Rocky Lotka at fostadon dot org fostaedon. Hmm, very cool. Well,

153
00:10:15,440 --> 00:10:18,720
this is usually where I introduced the
guest, although Rocky needs no introduction.

154
00:10:18,799 --> 00:10:22,480
But just in case you don't know
who Rocky Locky is. He wrote the

155
00:10:22,600 --> 00:10:26,279
very first book on dot net with
Billy Hollis that I ever read, ever,

156
00:10:26,799 --> 00:10:31,440
ever, ever. I always think
of Billy and Rocky as your inspiration

157
00:10:31,480 --> 00:10:33,240
for Donna at Rocks full stop.
Yeah. I mean basically, when we

158
00:10:33,279 --> 00:10:37,399
would hang out in the behind the
scenes, you know, in the speaker's

159
00:10:37,399 --> 00:10:41,639
lounge at conferences and stuff, we'd
be having these great conversations and I was

160
00:10:41,720 --> 00:10:43,519
like, these have got to be
shared. Yeah, yeah, so good

161
00:10:43,519 --> 00:10:50,399
old friends that in a disturbing addiction
to a couple of mechanics from Boston and

162
00:10:50,600 --> 00:10:54,039
there you go, Dot Ross.
I still listen to those reruns. Those

163
00:10:54,039 --> 00:10:56,559
guys are retired, I know,
well one of them died and past.

164
00:10:56,639 --> 00:11:01,240
Yeah Tommy, yeah, car talk. But yeah, you're right. I

165
00:11:01,279 --> 00:11:03,679
mean, I'm a public radio junkie
and I always like this stuff. And

166
00:11:05,240 --> 00:11:09,480
you kids got to remember that we've
been doing this show. I've been doing

167
00:11:09,519 --> 00:11:11,480
this show since two thousand and two, which is like two years before the

168
00:11:11,519 --> 00:11:15,679
word podcast happened. Yeah, yeah, no, I'm the new guy.

169
00:11:15,759 --> 00:11:16,919
I only did it. I was
only a guest in two thousand and four.

170
00:11:18,320 --> 00:11:20,679
So we're going to rename this show. Three old guys talk about the

171
00:11:20,679 --> 00:11:28,080
old times. There, very old
guys, that's true. We're all grayer

172
00:11:28,200 --> 00:11:33,559
on this video. Oh my god. Yeah, So Rocky, what's up?

173
00:11:33,639 --> 00:11:39,519
What's new? Hey? I am
talking to you from well Sunny Palm

174
00:11:39,559 --> 00:11:43,360
Springs, California. What's up with
that? Iway was expecting he has to

175
00:11:43,399 --> 00:11:46,960
share snow stories because you're supposed to
be in Minnesota. That's well, and

176
00:11:48,000 --> 00:11:52,960
that's why I'm not in Minnesota right
there. Very good. My wife and

177
00:11:52,960 --> 00:11:54,600
I are like, yeah, let's
get out of here before it gets too

178
00:11:54,679 --> 00:11:58,559
bad, and quite enough of that. Yeah, are your kids grown and

179
00:11:58,600 --> 00:12:05,720
gone now, Rocky, They are, ye ye. The oldest is well

180
00:12:05,720 --> 00:12:11,879
married and they just bought their house, and the younger one just got engaged.

181
00:12:11,679 --> 00:12:16,960
He just proposed to his longtime girlfriends. So very exciting and that's excellent.

182
00:12:16,080 --> 00:12:18,840
One of them's a bass player too, right, Yeah, actually both

183
00:12:18,879 --> 00:12:24,679
well, both of them are amazing
musicians. But the oldest one plays bass

184
00:12:24,679 --> 00:12:31,120
in tuba and the younger one well
now primarily is the lead guitar in his

185
00:12:31,200 --> 00:12:35,320
band, but he plays everything kind
of he's kind of like you, Carl,

186
00:12:35,440 --> 00:12:41,480
he's puts and I remember you and
I had this conversation, probably with

187
00:12:41,600 --> 00:12:48,279
my son actually, about how it's
you know, he's got talent, right,

188
00:12:48,440 --> 00:12:52,679
just kind of a natural talent,
but that by itself doesn't do anything

189
00:12:52,919 --> 00:12:58,559
unless you put in the work and
you see people like him and you get

190
00:12:58,639 --> 00:13:03,600
up on age and just to the
rest of us, effortlessly, you know,

191
00:13:05,120 --> 00:13:07,919
do tear it up. Tear it
up. And people come up to

192
00:13:07,960 --> 00:13:11,399
me, they say, how long
have you been playing? And I say,

193
00:13:11,440 --> 00:13:16,679
oh, about twenty minutes. No, you're right, you have to

194
00:13:16,759 --> 00:13:20,480
do every day and people don't realize
that they think, Oh, you know,

195
00:13:20,519 --> 00:13:22,720
that's why people think that people are
born with this ability, like they

196
00:13:22,759 --> 00:13:26,960
can just it just oozes out of
them. And well it does after forty

197
00:13:28,039 --> 00:13:30,360
years of doing the same thing every
day, you know. I mean,

198
00:13:30,399 --> 00:13:35,759
I do think there's some innate,
you know, talent or something that some

199
00:13:35,799 --> 00:13:39,879
people have and others maybe have less
of. But honestly, I'm not so

200
00:13:39,000 --> 00:13:43,159
sure. I mean, when I
started taking piano lessons when I was three,

201
00:13:43,200 --> 00:13:45,879
it was really really hard, four
or five or whatever it was,

202
00:13:46,159 --> 00:13:48,960
it was really really hard. And
you know, it was only because my

203
00:13:50,039 --> 00:13:54,799
mother made me practice. And I
don't mean like you're going out of practice,

204
00:13:54,799 --> 00:14:00,159
honey, I mean you've been practice. I encourage you to read the

205
00:14:00,159 --> 00:14:03,919
book Talent is Overrated I have,
Yeah, Malcolm Gladwell yeah, and then

206
00:14:05,399 --> 00:14:09,240
yeah, And it's because this was
a couple of psychologists that were going to

207
00:14:09,279 --> 00:14:15,840
go define talent and in the process
found out it doesn't exist. Interesting,

208
00:14:15,919 --> 00:14:20,399
Yeah, that you can always find
other evidence of effort, an environment and

209
00:14:20,679 --> 00:14:24,799
upbringing. Yeah. Oh god.
Clara, my youngest daughter, who's twenty

210
00:14:24,840 --> 00:14:28,240
one now, she said to me
when I was in Spain visiting her.

211
00:14:28,440 --> 00:14:33,080
She said, Dad, I'm really
mad at you, like, why cause

212
00:14:33,080 --> 00:14:41,039
you didn't make me practice. I'm
like, well, this is a fine

213
00:14:41,080 --> 00:14:45,240
how do you do? Right?
It's like you didn't want to and you

214
00:14:45,279 --> 00:14:48,559
wouldn't and I did try. Yeah, yeah, didn't try hard enough.

215
00:14:48,600 --> 00:14:52,679
But yeah no, I really you
know, I would read the book Talent

216
00:14:52,759 --> 00:14:56,480
is Overrated and just watch the journey
these folks went on to try and quantify

217
00:14:56,600 --> 00:15:03,480
talent and realize behind every remarkable set
of abilities is a big pile of effort.

218
00:15:03,679 --> 00:15:05,480
Yeah. Absolutely, What did he
say, ten thousand hours is what

219
00:15:05,559 --> 00:15:09,200
it takes. Well, that's another
set of metrics. But it was the

220
00:15:09,200 --> 00:15:11,679
big thing, you know. It
was things like why are athletes consistently born

221
00:15:11,720 --> 00:15:16,360
in January? Top tier athletes are
born in January February, right, because

222
00:15:16,360 --> 00:15:18,840
of the way the schools select their
grades, so they tend to be biggest

223
00:15:18,840 --> 00:15:24,480
in the class, which means they're
quote talented, which means they get additional

224
00:15:24,519 --> 00:15:28,159
training. Yeah, there was a
thing about hockey players in Canada. That's

225
00:15:28,240 --> 00:15:31,279
right. It applies there for the
same and for exactly the same reason,

226
00:15:31,279 --> 00:15:35,960
because of the way the system works. But it's always the same case that

227
00:15:35,039 --> 00:15:39,840
you get into as soon as you
dig in a little, because they were

228
00:15:39,879 --> 00:15:43,519
perceived as talented, they got extra
training, and the extra training is the

229
00:15:43,519 --> 00:15:46,360
important part. Well, and this
pertains to programming as well. I mean,

230
00:15:46,399 --> 00:15:48,600
if you don't practice all that,
if you're not doing it all the

231
00:15:48,639 --> 00:15:52,759
time, after a while, you
kind of atrophy and you forget things.

232
00:15:52,799 --> 00:15:58,399
And I'm also it's amazing how little
practice we do. We tend to just

233
00:15:58,519 --> 00:16:03,519
do do the work, and so
you rarely I feel like you press.

234
00:16:03,600 --> 00:16:06,320
You rarely press against the edges of
your skill unless you do it intentionally.

235
00:16:06,399 --> 00:16:10,000
Like the bypart of this is we're
prone to pick the new library to not

236
00:16:10,080 --> 00:16:12,399
want to build the app the same
way again, even though it's you know,

237
00:16:12,960 --> 00:16:17,240
talk about bad bridge building. It's
like, well that bridge work great,

238
00:16:17,519 --> 00:16:19,159
I'm never doing that again. I'm
going to do it a totally different

239
00:16:19,159 --> 00:16:22,679
way this time. Fortunately, in
our business, there's so many shiny new

240
00:16:22,720 --> 00:16:29,120
toys that we can play with that
it's not it's not a sacrifice. Like

241
00:16:29,240 --> 00:16:34,679
I just just sorted a Quest three
and only because Jeff Fritz told me that

242
00:16:36,279 --> 00:16:41,360
you can program it with Maui.
Because it's an essentially an Android device,

243
00:16:41,399 --> 00:16:44,960
you can write a Maui app and
run it on your Quest three. So

244
00:16:45,000 --> 00:16:47,679
I'm like, I'm all over that, honey. I got to buy one

245
00:16:47,720 --> 00:16:49,799
of these. It's gonna cost one
thousand dollars. And she's like, yeah,

246
00:16:49,799 --> 00:16:53,039
okay, whatever, it's for work. She didn't say that, by

247
00:16:53,080 --> 00:17:00,360
the way, she was like,
what's it for? Don't you have one?

248
00:17:02,879 --> 00:17:07,720
Anyway, no quession. Let's talk
about CSLA eight, Rocky. I'm

249
00:17:07,759 --> 00:17:12,720
happy to talk about that. I'm
having a blast speaking of, you know,

250
00:17:12,799 --> 00:17:22,079
learning new things and actually I suppose
doing practice. It's yeah. CSLA

251
00:17:22,200 --> 00:17:26,880
of course has been around in one
form or another since nineteen ninety six,

252
00:17:26,960 --> 00:17:33,200
I want to say ninety seven.
Yeah, And you know, it's just

253
00:17:33,359 --> 00:17:37,839
for me at its core. Hopefully
it provides great value to a whole lot

254
00:17:37,839 --> 00:17:42,039
of people, but for me personally, it's the way that I get to

255
00:17:42,240 --> 00:17:47,200
go out and learn whatever is new
and shiny, right, and yeah,

256
00:17:47,359 --> 00:17:52,640
you know, so, CSLA eight
is primarily about dot net eight, and

257
00:17:52,519 --> 00:17:56,440
really the thing that has changed the
most between dot net seven and dot net

258
00:17:56,480 --> 00:18:04,200
eight is Blazer and trying to figure
out the depths of these changes that have

259
00:18:04,200 --> 00:18:11,519
happened in Blazer and make CSLA continue
to work. It's been quite challenging.

260
00:18:11,559 --> 00:18:17,200
I gotta say, it's a It
really forces a person to dig into parts

261
00:18:17,240 --> 00:18:22,119
of dot Net and Blazer that I
hopefully most people never have to look at.

262
00:18:22,319 --> 00:18:25,559
Right now, do you do a
new c SLA version for every version

263
00:18:25,559 --> 00:18:30,839
of dot Net? Typically? I
try. And also for some years now

264
00:18:32,000 --> 00:18:38,079
we've been doing semantic versioning, so
we store up all of the breaking changes,

265
00:18:38,920 --> 00:18:44,759
and you know, so nowadays once
a year we get to release all

266
00:18:44,759 --> 00:18:52,599
the breaking changes. Yeah surprised,
Yeah, exactly, you know. And

267
00:18:52,039 --> 00:18:56,119
so yeah, if Microsoft were to
change their cadence, then we might have

268
00:18:56,160 --> 00:19:00,359
to reevaluate, right, because you
know, once a year is fine.

269
00:19:00,640 --> 00:19:04,640
In fact, that's probably as fast
as anybody would ever want. But there's

270
00:19:04,640 --> 00:19:08,160
plenty of people pushing saying it's too
fast. Still, Yeah, oh,

271
00:19:08,200 --> 00:19:14,319
absolutely right, absolutely right. And
you know, both both the dot net

272
00:19:14,400 --> 00:19:18,200
stuff and and the c s l
A, you know, every every breaking

273
00:19:18,279 --> 00:19:23,599
change has a real cost to everybody
that uses you know, your framework or

274
00:19:23,599 --> 00:19:27,240
your tool or whatever it is,
and trying to keep that in mind and

275
00:19:27,279 --> 00:19:33,519
minimize the impact is an important piece
of any long term project, I think.

276
00:19:33,640 --> 00:19:36,640
But how do how do you why
do you need a breaking change at

277
00:19:36,640 --> 00:19:40,279
this point? Is it really really
an art re architecture or is it just

278
00:19:40,359 --> 00:19:45,559
reflecting breaking changes in the framework,
so they come in different flavors, I

279
00:19:45,559 --> 00:19:52,759
guess sometimes, you know, and
when dot net introduces generics or you know,

280
00:19:52,839 --> 00:19:59,599
Blazer absolutely requires that you support dependency
injection or you can't play right then,

281
00:19:59,759 --> 00:20:03,119
or a sink and a weight,
you know, these these are things

282
00:20:03,200 --> 00:20:08,759
that you have to adopt, I
believe, right, in order to remain

283
00:20:10,279 --> 00:20:12,920
modern and current. And yeah,
otherwise why are you calling it eight?

284
00:20:14,079 --> 00:20:15,799
Yeah? Yeah, why are you
using c s l A if you're not

285
00:20:15,920 --> 00:20:19,480
using generics? Otherwise, why are
you using CSLA? That's right? Yeah.

286
00:20:21,079 --> 00:20:26,799
If if CSLA quits working, you
know, with Blazer, then what's

287
00:20:26,839 --> 00:20:30,839
the point? And you know,
so I so some of them, I'm

288
00:20:30,960 --> 00:20:33,720
like a victim of you know what
I mean? And yeah, right,

289
00:20:33,799 --> 00:20:37,519
yeah, no, you you should
support Blazer. Blazer requires dependency injection,

290
00:20:37,839 --> 00:20:41,079
tada, you have to make major
changes. You should try having a website

291
00:20:41,119 --> 00:20:51,599
with one hundred Blazer videos on YouTube
with accompanying repos of code and trying to

292
00:20:51,640 --> 00:20:56,119
stay current on that. As a
Dante PA probably get done by the time

293
00:20:56,680 --> 00:21:00,079
dot Net nine comes out, ye
right, right, but our horrible process.

294
00:21:00,759 --> 00:21:03,359
But I always have to say,
you know, this is for dot

295
00:21:03,480 --> 00:21:06,880
A if you want dot net seven, watch this video, go to this

296
00:21:07,000 --> 00:21:15,599
repo. It's it's gonna get fun. The other big category is feature enhancements

297
00:21:15,720 --> 00:21:22,200
or tech debt, right, that
are not imposed by Mike, you know,

298
00:21:22,319 --> 00:21:26,799
essentially not imposed by the platform.
But you know, I keep learning

299
00:21:26,079 --> 00:21:30,519
and the people that use c SLA, the community, you know, comes

300
00:21:30,559 --> 00:21:33,880
in and says, hey, you
know, why does it why does this

301
00:21:33,960 --> 00:21:36,400
work this way? Wouldn't it be
better if it worked that other way?

302
00:21:37,160 --> 00:21:40,480
And you know, sometimes we'll go
back and forth, have a conversation,

303
00:21:41,960 --> 00:21:44,759
and sometimes the answer is no,
it should stay the way it is.

304
00:21:44,799 --> 00:21:48,200
But other times it's like, you
know, you're right, the world has

305
00:21:48,319 --> 00:21:52,839
changed, or we got we got
it wrong when we built this piece of

306
00:21:52,200 --> 00:21:56,839
this feature ten years ago. Yeah, yeah, or was it right at

307
00:21:56,839 --> 00:22:00,960
the time, Like I got to
imagine, often you get suggested that this

308
00:22:00,000 --> 00:22:03,559
would be a better way, and
in the first couple of times it said,

309
00:22:03,599 --> 00:22:06,759
you're like, nah, it's not
sufficiently different. But then more time

310
00:22:06,839 --> 00:22:11,400
passes and the environments passed. It
suddenly that weird idea two years ago is

311
00:22:11,400 --> 00:22:18,799
getting rather mainstream now. Absolutely right, absolutely, and yeah and again,

312
00:22:18,839 --> 00:22:22,440
you know, I try to minimize
these breaking changes because there's a such a

313
00:22:22,519 --> 00:22:29,440
huge cost to people. But sometimes, you know, independency injection and acinc

314
00:22:29,480 --> 00:22:34,279
and a weight are two that were
really tremendous. They had just you know,

315
00:22:34,359 --> 00:22:37,319
because they're they're viral. As soon
as you start using acinc and a

316
00:22:37,319 --> 00:22:44,759
weight in your code, it spreads
everywhere and a good way. Right,

317
00:22:45,079 --> 00:22:49,759
well, it is a good way, but it forces all your consumers to

318
00:22:51,119 --> 00:22:57,519
adopt it to right. And dependency
yeah, yeah, and dependen the injection

319
00:22:57,680 --> 00:23:02,519
is the same thing as soon as
you aren't using it. You know,

320
00:23:02,680 --> 00:23:07,400
a whole lot of things that were
pretty common, you know, like using

321
00:23:07,440 --> 00:23:11,920
static helper methods to do to simplify
some coding. You can't use static methods

322
00:23:11,920 --> 00:23:15,559
and dependency injection. They don't go
together. And so yeah, one or

323
00:23:15,559 --> 00:23:22,119
the other. Yeah, and uh. And then you also consider like Blazer

324
00:23:22,240 --> 00:23:26,200
for example, just web programming in
general, in async. You know,

325
00:23:26,319 --> 00:23:30,559
a web request is a synchronous operation. If you think about it, I

326
00:23:32,240 --> 00:23:34,880
send a request, I get a
response. Something changes. But now with

327
00:23:36,559 --> 00:23:41,400
frameworks like Blazer, little pieces of
the UI can update independent of other pieces

328
00:23:41,440 --> 00:23:47,440
of the UI. And you know, if when do you call a weight

329
00:23:47,799 --> 00:23:52,240
invoke, a sync state has changed
versus state has changed, you know,

330
00:23:52,640 --> 00:23:56,880
when you know these questions, Like
most people who come from a you know,

331
00:23:57,200 --> 00:24:03,079
a Windows let's say program background and
then get into the web me I

332
00:24:03,160 --> 00:24:07,119
understand this stuff. It's like,
why when do I do that? Yeah,

333
00:24:07,240 --> 00:24:11,400
that's true. Although I think if
you're coming from WPF into Blazer it's

334
00:24:11,440 --> 00:24:18,799
a little easier because for a lot
of WPF apps things have been async for

335
00:24:18,839 --> 00:24:22,440
a long time. It's true,
the very old stuff was probably still synchronous.

336
00:24:22,480 --> 00:24:26,519
But you know, and Windows Forms
that's the one, right if you've

337
00:24:26,519 --> 00:24:32,599
got a Windows Forms code base and
that's been your life, yea, all

338
00:24:32,680 --> 00:24:36,559
the stuff. Yeah, you've been
thinking syncrasy for a long time. By

339
00:24:36,559 --> 00:24:40,160
the way, Rocky, we I
think we say this every time we talk

340
00:24:40,240 --> 00:24:44,440
to you, but I did it. I'm actually not done yet. I'm

341
00:24:44,519 --> 00:24:47,640
working on a Windows Forms project for
a friend of mine who's got a little

342
00:24:47,680 --> 00:24:51,920
software company dealing with machines and stuff. So he's reading from data from an

343
00:24:51,920 --> 00:24:56,519
industrial machine that's doing something, spinning
out some CSB data. I'm graphing it,

344
00:24:56,599 --> 00:24:59,920
doing some standard deviation and charting and
all that stuff. And it's fun.

345
00:25:00,559 --> 00:25:06,759
But it's really been amazing, Like
how how much I missed Windows Forms

346
00:25:07,559 --> 00:25:12,440
the designer and wind Forms is the
anomaly. Yeah, right, like never

347
00:25:12,480 --> 00:25:18,240
to seems to be never to be
repeated. This one one great designer that

348
00:25:18,279 --> 00:25:21,680
we are are prone to measuring everything
against. And I always say the same

349
00:25:21,720 --> 00:25:26,359
thing here is because it's pixel based
and the world moved on from pixels into

350
00:25:26,720 --> 00:25:33,400
you know, everything else sort of
flow based, flow based yep, yep,

351
00:25:33,519 --> 00:25:40,160
yeah, and we could just go
back to pixels. Well yeah,

352
00:25:40,759 --> 00:25:45,559
you know, but no, that's
not even true. I mean Windows Forms

353
00:25:45,319 --> 00:25:49,519
at the end, I guess at
the end, what what end are we

354
00:25:49,559 --> 00:25:53,480
talking about? Yeah? Right,
wait when it when it quit changing radically?

355
00:25:55,799 --> 00:26:02,000
Yeah, it was twousand and five. Yeah, had the reflow capabilities

356
00:26:02,039 --> 00:26:07,559
and you could handle huge screens and
little screens and all the things that HTML

357
00:26:07,680 --> 00:26:14,200
and xamble were designed to solve.
And yet somehow Windows Forms did it in

358
00:26:14,240 --> 00:26:21,400
a way that was still dragons drop, still dragon drop. Yeah. That

359
00:26:21,519 --> 00:26:26,519
was old quote of yours about why
w p F E was succeeding when w

360
00:26:26,640 --> 00:26:30,400
PF was struggling because his w p
F E a k a. Silver Light

361
00:26:30,319 --> 00:26:33,519
was designed for the web and in
the web development were used to lousy tools.

362
00:26:33,920 --> 00:26:42,400
Yeah, so I'm curious as to
what you did for Blazer in c

363
00:26:42,519 --> 00:26:47,559
s l A in dot Net eight, that was different for Blazer and dot

364
00:26:47,640 --> 00:26:52,440
Net seven. Well, the big
thing there's there's several but but the biggest

365
00:26:52,480 --> 00:27:02,240
thing in Blazer eight is this new
blended model with different rendering, right.

366
00:27:02,359 --> 00:27:10,240
So, yeah, and even the
default template for a Blazer app. Now,

367
00:27:11,400 --> 00:27:17,880
the home page is a server static
page. Uh, the weather page

368
00:27:18,200 --> 00:27:25,839
is a server static streaming page,
and the counter page runs in web assembly

369
00:27:26,359 --> 00:27:32,160
in the browser or server or both, or server or both. And yeah,

370
00:27:32,200 --> 00:27:36,799
but it's the only page with interactivity, and in all cases it server

371
00:27:36,960 --> 00:27:42,160
pre renders the counter page does,
which isn't always obvious if you're especially in

372
00:27:42,200 --> 00:27:48,759
a dev environment. But when you
start trying to, for example, say

373
00:27:48,799 --> 00:27:52,960
that I would like to have some
sort of consistent state within my app,

374
00:27:55,680 --> 00:28:00,039
you know, in prior to this
point, your consistency state could always be

375
00:28:00,160 --> 00:28:06,480
managed in a scope service, whether
that was on Blazer, server or web

376
00:28:06,519 --> 00:28:11,960
assembly, because your code was always
always running within a consistent DEI scope dependency

377
00:28:12,000 --> 00:28:18,079
injection scope. Well, now on
a server static page, every time that

378
00:28:18,119 --> 00:28:22,240
page gets rendered, a scope is
created and destroyed for the life of the

379
00:28:22,279 --> 00:28:27,559
page. Rendering that fraction of a
second. And if your code is running

380
00:28:27,599 --> 00:28:33,119
on WASM, you get a scope
for the length that you're running in WASM,

381
00:28:33,559 --> 00:28:37,799
and if you're running in a server
interactive mode, you get a scope

382
00:28:37,799 --> 00:28:41,519
for the length that you're running in
server interactive. But you think about that

383
00:28:41,599 --> 00:28:45,519
counterpage. It server pre renders,
so a scope is created, it server

384
00:28:45,640 --> 00:28:52,000
pre renders, then the scope is
destroyed, then the page flickers because it

385
00:28:52,119 --> 00:28:56,319
switched to WASM, for example,
and a new scope is created, and

386
00:28:56,400 --> 00:29:04,119
so any attempt on your part to
maintain consistent state is just gone. It's

387
00:29:04,319 --> 00:29:08,480
very hard and until everything settles in. And I noticed this in the in

388
00:29:08,519 --> 00:29:12,559
the basic web assembly thing. You
know, if you, for example,

389
00:29:12,599 --> 00:29:18,000
put a button on the homepage and
give the homepage some interactivity, that you

390
00:29:18,039 --> 00:29:21,160
could try clicking that button the first
time you see it, but it ain't

391
00:29:21,279 --> 00:29:26,160
going to happen until web assembly comes
down, and then you're going to get

392
00:29:26,200 --> 00:29:32,920
your on after render with the first
render set to true and then now now

393
00:29:33,039 --> 00:29:37,079
you can use it well. And
that's that comes just ignoring the CSLA aspects.

394
00:29:37,160 --> 00:29:41,200
That's a UI design thing, right, and I think Microsoft in their

395
00:29:41,359 --> 00:29:47,279
template should have done a better job, like with the counter page of showing

396
00:29:47,359 --> 00:29:52,960
how you that button. The counter
button should have been disabled until it becomes

397
00:29:53,000 --> 00:29:56,559
interactive, which you can do.
But it's left. It's kind of like

398
00:29:56,599 --> 00:30:00,640
a math problem, right It's it's
left to the left, up to the

399
00:30:00,680 --> 00:30:04,880
reader to figure out how to do
this thing. Right, We're still trying

400
00:30:04,880 --> 00:30:10,279
to sort out how automode is useful
right now. It really isn't because there's

401
00:30:10,319 --> 00:30:12,200
an outstanding bug. This is a
bug that I found and I went to

402
00:30:12,240 --> 00:30:17,480
report it, and I missed it
by four hours. Somebody had added it

403
00:30:17,519 --> 00:30:22,160
as a bug, and then Steve
Sanderson jumped in and everybody and they confirmed,

404
00:30:22,240 --> 00:30:25,480
yep, this is a problem.
So if you're in automode, what's

405
00:30:25,480 --> 00:30:30,480
supposed to happen is youmediately should get
a server side rendered you know, Blazer

406
00:30:30,559 --> 00:30:36,480
server interactivity. So when I clicked
that button on the homepage like that I

407
00:30:36,559 --> 00:30:40,680
was just talking about, you shouldn't
have that. You should have that server

408
00:30:41,119 --> 00:30:45,920
rendering immediately, the server side code. But what ends up happening is it

409
00:30:45,960 --> 00:30:52,039
works just like the web assembly template, which is that nothing works until web

410
00:30:52,079 --> 00:30:57,119
assembly comes down, and then you
get this brief moment of server interactivity,

411
00:30:57,160 --> 00:31:00,920
and then when you refresh the page, you're in WASM. Yep, ye,

412
00:31:02,279 --> 00:31:04,599
so that's a bug that they're working
on it, buddy. That'll just

413
00:31:04,640 --> 00:31:08,880
make it more complicated though, yeah, because it will go through three modes

414
00:31:10,480 --> 00:31:14,240
instead of two. Well you already
have three, right, well, but

415
00:31:14,279 --> 00:31:18,480
a service side rendering for the very
first page, and then you when WASM

416
00:31:18,519 --> 00:31:22,119
comes down, you finally get server, and then when you refresh, you

417
00:31:22,119 --> 00:31:27,759
get WASM. This is the way
it works. So the so I initially

418
00:31:27,960 --> 00:31:33,480
I wrote a blog post actually because
I worked through a solution, a solution

419
00:31:33,920 --> 00:31:40,839
to this problem, which is if
you ignore the WASM piece, it's actually

420
00:31:40,839 --> 00:31:48,400
not too bad because you can maintain
an in memory cash. You have to

421
00:31:48,400 --> 00:31:51,559
figure out some way to have a
unique identifier for the user, which I

422
00:31:51,640 --> 00:31:56,200
used a cookie with a guid right, pretty straightforward, and then you can

423
00:31:56,319 --> 00:32:04,079
look up the user's state over and
over again. Every time the scope gets

424
00:32:04,119 --> 00:32:07,519
recreated, you go back and look
up the state and grab it, right,

425
00:32:08,319 --> 00:32:14,880
so the user can have consistent state
across all these spaces. And you

426
00:32:14,960 --> 00:32:17,640
might be telling me, Rocky,
you shouldn't have any global state. I'm

427
00:32:17,680 --> 00:32:21,279
like, well, in a business
app, you have to. In a

428
00:32:21,319 --> 00:32:23,480
business app, you know, you've
got to know the user's department or I

429
00:32:23,480 --> 00:32:27,440
mean there's just all sorts of stuff
that you have to have, right.

430
00:32:27,640 --> 00:32:34,359
I solve this problem, rocky by
using a cascating app state component and you

431
00:32:34,400 --> 00:32:37,039
know, implementing that as a cascading
parameter. And that seems to work really

432
00:32:37,039 --> 00:32:42,720
really well, but doesn't bridge to
WASM and then back that's the question.

433
00:32:43,079 --> 00:32:45,119
Yeah, it seems too. If
you mute, if you mutate the state

434
00:32:45,240 --> 00:32:49,480
on the WASM side, does it
go back to the server, because I

435
00:32:49,920 --> 00:32:53,079
are you talking about having mixed So
if you have one page with server interactivity

436
00:32:53,079 --> 00:32:58,079
and one page with WASM interactivity,
does it work across both? Yes,

437
00:32:58,160 --> 00:33:01,519
I'm talking about that default template where
or maybe? So here's the thing I

438
00:33:01,559 --> 00:33:05,720
think, Carl, is when you
look at this new render mode, I

439
00:33:05,839 --> 00:33:12,200
find it very compelling because most apps
have a lot of pages that just show

440
00:33:12,279 --> 00:33:17,559
data and then some pages that are
very interactive. And so the ability to

441
00:33:17,640 --> 00:33:23,519
have server static, static rendered pages
that just do the show data part,

442
00:33:24,160 --> 00:33:29,079
I mean, that's so fast and
simple and awesome, and I want that

443
00:33:30,039 --> 00:33:34,119
and seamlessly. I want when the
user goes to a page that's a data

444
00:33:34,240 --> 00:33:37,680
entry page, I want that to
happen. Right, you want the WASM

445
00:33:37,119 --> 00:33:40,720
quick interaction effect well or server side
I mean either way, but yeah,

446
00:33:40,799 --> 00:33:44,400
that's absolutely right. What I don't
want is if you have a static home

447
00:33:44,440 --> 00:33:46,079
page and then you go to one
that's interactive and I want to have to

448
00:33:46,119 --> 00:33:50,359
wait for websimily to download. I
want that to happen behind the scenes.

449
00:33:50,519 --> 00:33:52,799
That's what this is all about,
right, Yeah, hiding the big hall.

450
00:33:53,039 --> 00:33:57,720
That's exactly what it is. Yeah, because I do think in the

451
00:33:57,880 --> 00:34:00,400
end, especially for a large line
of business apps, you do want WASM

452
00:34:00,400 --> 00:34:06,279
because you want to be leveraging that
client side memory and lowering the server lower.

453
00:34:06,480 --> 00:34:08,639
So it's obvious what the solution is
for the developer. Don't use like

454
00:34:08,719 --> 00:34:13,199
per page or per component rendering.
If you have state, well I would

455
00:34:13,199 --> 00:34:15,280
pick one. I would pick web
assembly, which you're going to have that

456
00:34:15,360 --> 00:34:20,880
bonk in the beginning. But then
after web assembly is downloaded, it's cashed

457
00:34:20,920 --> 00:34:23,639
and all that stuff, and you've
got your state or read my blog post

458
00:34:23,679 --> 00:34:29,760
Carl, and just it works,
and now I built it into CSLA.

459
00:34:29,880 --> 00:34:32,639
That's that's the even better problem.
Yeah, that's what we're talking. If

460
00:34:32,639 --> 00:34:39,639
you're using CSLA, then all this
this problem has been solved within the framework

461
00:34:39,679 --> 00:34:45,239
and hopefully at some point Microsoft solves
it inside of Blazer, right, but

462
00:34:45,639 --> 00:34:50,800
in the meantime, you know,
they the last I was seeing on any

463
00:34:50,840 --> 00:34:54,880
of the stuff on GitHub for Blazer
as well, we might consider doing it

464
00:34:54,920 --> 00:35:00,199
for dot net nine and uh that
stinks. So yeah, it's not going

465
00:35:00,280 --> 00:35:04,679
to happen soon. And gentlemen,
I got to interrupt for one moment for

466
00:35:04,719 --> 00:35:10,280
it was a very important message.
Then we're back. It's dot in a

467
00:35:10,400 --> 00:35:14,960
rocks. I'm Richard Campbell, that's
Carl Franklin. Hey, hey, and

468
00:35:15,039 --> 00:35:17,800
over there is Rocky Lock hanging out
in the sun. Because that's unfair.

469
00:35:22,639 --> 00:35:25,559
I'm going to send some Minnesota snow
to you Internet. Yeah, thank you

470
00:35:25,760 --> 00:35:31,039
much. This is the reward for
empty nesting that you can just go.

471
00:35:31,119 --> 00:35:35,639
You know, what we could do
is work from Palm Springs and right,

472
00:35:36,320 --> 00:35:38,679
as long as you got internet,
life is good. Yeah, you make

473
00:35:38,719 --> 00:35:45,760
it work. I appreciate the render
modes and really overcoming these issues of how

474
00:35:45,800 --> 00:35:47,920
do we make this perform where we'll
still all those benefits, Like it does

475
00:35:49,039 --> 00:35:52,440
feel like they're smoothing off the edges
of the challenge of working with WASM,

476
00:35:52,480 --> 00:35:57,480
which is just this kind of hefty
initial load. Yep, yeah, I

477
00:35:57,519 --> 00:36:00,400
mean they're doing, they're moving in
the right direction. I got to say,

478
00:36:00,440 --> 00:36:07,599
it feels like the mixed render mode
stuff in dot Net eight isn't complete.

479
00:36:07,840 --> 00:36:10,880
No it's not. Yeah, it
is V one of what they called

480
00:36:12,039 --> 00:36:15,559
universal right, yeah, exactly they
were. There's the thing though, they

481
00:36:15,559 --> 00:36:19,880
were so excited about saying, now
you can just sprinkle interactivity wherever you want.

482
00:36:19,880 --> 00:36:21,960
You want a little ASM over here, you want little server over there,

483
00:36:22,239 --> 00:36:24,639
and that's all cool. But as
Rocky is saying, reek's havoc with

484
00:36:24,719 --> 00:36:30,960
dependency injection in any kind of state
management. So I say, pick pick

485
00:36:30,000 --> 00:36:35,400
one web assembly or server, make
it global, and use that for now.

486
00:36:35,480 --> 00:36:39,559
And and I totally appreciate that,
Carl, I really do. But

487
00:36:39,679 --> 00:36:49,280
I want it all. So this
is what I've been Yeah, I want

488
00:36:49,320 --> 00:36:53,840
it all, and I want it
now. So that, yeah, that

489
00:36:54,519 --> 00:37:01,880
that state thing was is one big
issue. Another one is user identity being

490
00:37:01,960 --> 00:37:09,239
consistent across all of these render modes, and there appears to be I don't

491
00:37:09,280 --> 00:37:13,559
know if it's an intentional like feature
thing, or if it's a bug.

492
00:37:13,719 --> 00:37:20,719
It's we've we've got some discussion on
the Blazer GitHub about this. But sometimes

493
00:37:22,000 --> 00:37:30,039
well you can always use the authentication
state provider in the UI, but it's

494
00:37:30,119 --> 00:37:35,400
disallowed for some reason in library code. And so if you've got a DLL

495
00:37:35,599 --> 00:37:38,840
with business logic, in that business
logic includes needing to know the user identity,

496
00:37:39,039 --> 00:37:45,480
which is no, it says it's
not allowed for use. And so

497
00:37:46,320 --> 00:37:52,280
I actually have such a terrible message. It's terrible, isn't it all?

498
00:37:52,480 --> 00:37:55,440
Right? It's like, yeah,
yeah, it's a it's a runtime message

499
00:37:55,480 --> 00:37:59,679
that comes up and says, yes, the service is not allowed in this

500
00:37:59,800 --> 00:38:01,679
kind of text or something to that
effect. Right, So you had to

501
00:38:01,679 --> 00:38:07,760
put some band aids around that so
they can inject something that looks like a

502
00:38:07,800 --> 00:38:12,400
principle just for the requirements. Right. Well, actually, what I did

503
00:38:12,559 --> 00:38:17,400
is I created an abstract way to
get at the current user that either pulls

504
00:38:17,440 --> 00:38:22,599
it from HTTP context or from the
authentication state provider, depending on which one's

505
00:38:22,639 --> 00:38:29,039
actually available. I thought we weren't
supposed to use HTTP context anymore. Well,

506
00:38:29,320 --> 00:38:34,119
they changed the way that all works
in Blazer eight. In Blazer six

507
00:38:34,159 --> 00:38:38,079
and seven you really couldn't use it
because it wasn't consistent and or available.

508
00:38:38,639 --> 00:38:43,360
But now because of the way the
server rendering stuff works. I want to

509
00:38:43,400 --> 00:38:50,360
say, I can't tell you why
but you can actually use it when in

510
00:38:50,400 --> 00:38:57,719
the cases that you can't get at
the authentication state provider, HTTP context appears

511
00:38:57,719 --> 00:39:00,719
to always be available and stable.
Wow, yeah, it's it's rocky lock

512
00:39:00,719 --> 00:39:05,719
Alazer. Gentlemen, He'll be here
for another twenty minutes. Try to feel

513
00:39:06,159 --> 00:39:10,280
Yeah, but also these are things
you know we'll have to revise after nine

514
00:39:10,880 --> 00:39:15,320
Oh, I hope these are.
This feels like placeholder code. It's like,

515
00:39:15,360 --> 00:39:19,639
for now, we will do this. Yes, it sure feels so.

516
00:39:19,679 --> 00:39:22,840
Really, what you're saying is that
CSLA eight, if you're not using

517
00:39:22,840 --> 00:39:27,880
it with Blazer in dot net eight, you're a fool. It sounds like

518
00:39:27,920 --> 00:39:30,559
that. I like, I want
to use this everywhere now. Well,

519
00:39:30,760 --> 00:39:34,880
I mean hopefully CSLA continues to be
super useful for your other code too.

520
00:39:35,000 --> 00:39:40,440
But yes, I'm trying desperately to
tackle these really big issues in Blazer eight.

521
00:39:42,360 --> 00:39:45,719
But I think you're also bridging the
path for folks who've built with CSLA

522
00:39:45,800 --> 00:39:49,239
for wind forms. It's like,
if you want to go Blazer, you

523
00:39:49,320 --> 00:39:52,320
can. Yes, yes, not
a huge leap. That is exactly right.

524
00:39:52,519 --> 00:39:57,599
Yeah, that's been forever. That's
been the promise of CSLA, right,

525
00:39:57,719 --> 00:40:04,159
is you can switch youI technology geez
with minimal and zero hopefully zero,

526
00:40:04,239 --> 00:40:09,679
but the most minimal change to your
business logic and domain model and stuff.

527
00:40:09,760 --> 00:40:14,119
Yeah, and I appreciate that like
this, You've done all this work to

528
00:40:14,159 --> 00:40:17,159
make a good domain model for your
business, you know, but you do

529
00:40:17,280 --> 00:40:22,400
need to change clients. That's the
demand. Although I got to think the

530
00:40:22,440 --> 00:40:24,960
shifting CSLA to the cloud was not
a trivial thing back in the day either.

531
00:40:25,280 --> 00:40:30,760
Well, but CSLA was designed initially
from the ground up to be a

532
00:40:30,760 --> 00:40:37,800
distributed world or distributed tool, and
so yeah, shifting to the cloud certainly

533
00:40:38,000 --> 00:40:43,760
like things like kubernedes, we did
all sorts of cool stuff that became possible,

534
00:40:44,440 --> 00:40:49,599
but it didn't impact It had no
breaking change, you know, Like

535
00:40:50,039 --> 00:40:52,559
right, you didn't take a dependency
that needed a VM anywhere. No,

536
00:40:52,559 --> 00:40:55,320
no to make it hard, you
know, make expensive to run in a

537
00:40:55,320 --> 00:41:00,800
cloud. Everybody's existing code. You
just could choose to deploy it in the

538
00:41:00,800 --> 00:41:04,679
cloud or not. And yay.
Right, as an in app service,

539
00:41:04,679 --> 00:41:09,519
I presume app service and then ultimately
containers and right, and then and then

540
00:41:09,559 --> 00:41:14,920
what we did do is add a
bunch of cool features, for like routing

541
00:41:15,119 --> 00:41:20,360
to subgroups of containers that are running
you know, you think about kubernetes.

542
00:41:21,159 --> 00:41:24,360
You know, you might have some
pods that are running on machines that have

543
00:41:24,480 --> 00:41:30,159
GPUs and other pods that are not
and and so right, and so you

544
00:41:30,159 --> 00:41:34,679
want to wear cloth specific routing,
and so CSLA supports that. So you

545
00:41:34,719 --> 00:41:37,679
can say, well, this n
you know, this particular object, this

546
00:41:37,880 --> 00:41:44,239
class business class has to run on
a server that has a GPU versus,

547
00:41:44,480 --> 00:41:46,480
right, you know others don't.
So yeah, and you don't want to

548
00:41:46,480 --> 00:41:50,519
provision everything with GPUs because they're charged
a ton for those these days, the

549
00:41:50,760 --> 00:41:57,159
exactly are everybody does? That's great? Yeah, but you know that's really

550
00:41:57,199 --> 00:42:02,199
the cloud natification of c s l
A. Yeah, natification. Natification.

551
00:42:02,760 --> 00:42:07,199
I love that word. You told
me last week to make new words.

552
00:42:07,239 --> 00:42:15,119
I'm just following constructions, oh man. But I mean, isn't it amazing

553
00:42:15,159 --> 00:42:20,760
to think in those terms now that
we literally need to route by workload requirement

554
00:42:21,000 --> 00:42:24,000
for cost efficiency? Right? I
mean most people don't, let's let's be

555
00:42:24,079 --> 00:42:29,159
fair, right, but when you
do, you really do. And having

556
00:42:29,159 --> 00:42:32,800
that capability right yeah. Yeah,
And same thing with this diversity of client

557
00:42:34,039 --> 00:42:37,679
it's like more and more choices for
working on on these clients and and the

558
00:42:37,679 --> 00:42:43,840
advantages that they have. Right,
Well, apparently Carl was just telling me

559
00:42:43,880 --> 00:42:47,599
that I can run CSLA on what
was it an Oculus or what was that?

560
00:42:47,679 --> 00:42:52,480
Oh yeah, Quest three ques three
right right right? Yeah, the

561
00:42:52,480 --> 00:42:57,119
android Maui. Yeah, yeah,
because CSLA works great in Maui too.

562
00:42:57,199 --> 00:43:00,679
So there you go, go c
s l A on a on a Quest

563
00:43:00,760 --> 00:43:06,440
three. That's now I need to
go buy a Quest three. You're going

564
00:43:06,480 --> 00:43:07,960
to be able to talk to she
who must be obeyed about it. It's

565
00:43:07,960 --> 00:43:14,480
a business expense. It's a business
expense. And beat Saber, but you

566
00:43:14,519 --> 00:43:17,960
know whatever, all right, you
guys don't hate play games like you talk

567
00:43:19,000 --> 00:43:23,239
about the definitive VR game, Like
the game it's Beat Saber. Just is

568
00:43:23,280 --> 00:43:27,519
it all right? Beat Saber?
Yeah? Oh yes, I think I

569
00:43:27,559 --> 00:43:31,760
played that. You've seen it,
the two lightsabers cutting things apart as they

570
00:43:31,800 --> 00:43:36,320
go by. Yeah, that's right. Like, look, it's hard to

571
00:43:36,360 --> 00:43:38,360
find a good VR game. VR
games are difficult. Most games don't adapt

572
00:43:38,400 --> 00:43:43,360
well to VR, like first person
shooters is VR is a mistake? Man,

573
00:43:43,400 --> 00:43:49,719
that's like instant nausea, right,
I mean, but somehow I my

574
00:43:50,000 --> 00:43:52,679
current I got one of Oculus Rift
or something like that. Yeah, it's

575
00:43:52,719 --> 00:43:59,280
quite old now, but I got
it because Elite dangerous the spaceship right right,

576
00:43:59,840 --> 00:44:02,440
And I don't understand this, And
you might know, Richard, why

577
00:44:02,599 --> 00:44:07,480
is it that I get instant nausea
with like a first person shooter thing?

578
00:44:07,639 --> 00:44:10,840
Yes, but man, I can
fly a spaceship for a long time and

579
00:44:10,880 --> 00:44:15,239
I never have any issues at all, no problem. I mean I have

580
00:44:15,280 --> 00:44:20,079
friends who are in the gaming industry
who, when the VR thing came on,

581
00:44:20,320 --> 00:44:23,079
worked on trying to fix games.
The main problem with first person shooters

582
00:44:23,199 --> 00:44:29,400
is that you move way faster to
first person shooter than is normal. Like

583
00:44:29,440 --> 00:44:30,800
you literally, like for a Call
of Duty, that kind of game,

584
00:44:30,800 --> 00:44:35,920
you're running at thirty miles an hour
because it's boring if you're not. And

585
00:44:35,960 --> 00:44:38,599
as soon as you put that in
your face where the perception of speed is

586
00:44:38,639 --> 00:44:45,239
more relevant, your body is deeply
concerned. Like it triggers things where you

587
00:44:45,320 --> 00:44:47,559
never have a sense of speed in
space. It's not there. You're just

588
00:44:47,639 --> 00:44:51,760
drew. You know, you're just
moving. It's on the directional view.

589
00:44:52,079 --> 00:44:55,800
It's not actually effects of acceleration.
And that's what's making a nauseous is your

590
00:44:55,800 --> 00:45:02,840
body believes it's accelerating that isn't getting
the right signals to your balance center and

591
00:45:02,880 --> 00:45:07,320
so things you're poisoned, and so
it tries to make you throw everything up.

592
00:45:07,639 --> 00:45:12,400
Hey, guys, I just found
this while you guys were talking that

593
00:45:12,400 --> 00:45:16,519
that whole issue that I brought up
about auto render mode looks like that was

594
00:45:16,559 --> 00:45:20,000
closed. And I'm going to read
from the lank and i'll give you the

595
00:45:20,360 --> 00:45:25,199
link show notes. Yeah, so
it says Auto render Mode Improvements improves the

596
00:45:25,199 --> 00:45:30,840
auto render modes so that components are
more response and have a decreased initial time

597
00:45:30,880 --> 00:45:36,719
to interactivity when web assembly resources are
not already cased. So these are the

598
00:45:36,760 --> 00:45:43,159
improvements. Removes the time out for
loading the boot canfig This prevents server interactivity

599
00:45:43,159 --> 00:45:46,840
from always being used when the connection
quality is poor. Introduces a limit to

600
00:45:46,880 --> 00:45:52,559
the maximum parallel web assembly resource downloads
when an auto component initiates the startup of

601
00:45:52,639 --> 00:45:57,400
the web assembly run time. This
limit is set to one and overrides any

602
00:45:57,480 --> 00:46:01,320
user specific limit and fixes an issue
where the circuit sometimes remains open even if

603
00:46:01,320 --> 00:46:06,320
web assembly gets selected for auto inner
activity. So there you go, they're

604
00:46:06,320 --> 00:46:08,199
working on it. Let's cool.
Film at eleven. I'll go, I'm

605
00:46:08,199 --> 00:46:10,599
gonna check it out and I'll tell
you how it works. Well, like

606
00:46:10,760 --> 00:46:15,639
Sanderson's doing the reviews, so I'm
in confidence level high. Yeah. Well,

607
00:46:16,079 --> 00:46:19,360
you know, I got to I
don't know who the person is who

608
00:46:19,360 --> 00:46:22,320
did this particular work with McMillan,
McKinnon, Buck mcmannon Buck. Yeah,

609
00:46:22,320 --> 00:46:25,480
but I'm looking down the reviews and
I gotta think. When you get a

610
00:46:25,519 --> 00:46:30,760
comment from Steve Sanderson about your code
and the comment is looks great, Yeah,

611
00:46:30,840 --> 00:46:37,639
that's gotta be a good dayne oh
Man. Well and he's Sanderson thinks

612
00:46:37,679 --> 00:46:39,679
my work looks great. Well,
and he said, you know when I

613
00:46:39,840 --> 00:46:45,519
because he didn't, he wasn't confident
that this was a real bug. So

614
00:46:45,800 --> 00:46:49,679
I went and published it to Azure
and did the things that he asked me

615
00:46:49,719 --> 00:46:52,320
to, and he's like, yeah, that's a bug, guy, So

616
00:46:52,360 --> 00:46:54,239
we have to get on this right
away. Nice. Yeah, so I'm

617
00:46:54,440 --> 00:47:00,000
happy to have contributed to this.
Oh and yeah, the contributor is actually

618
00:47:00,079 --> 00:47:04,199
Microsoft employee too. Yep, So
there you go. Awesome, that's real

619
00:47:04,239 --> 00:47:07,320
time work for a recorded show.
I know, right, well, but

620
00:47:07,360 --> 00:47:09,039
that is the thing, right.
The Blazer team, and this is part

621
00:47:09,079 --> 00:47:16,119
of why I'm so happy to be
involved with and heavily invested in Blazer is

622
00:47:16,159 --> 00:47:20,480
because of exactly this, right.
I mean, they're just it's a very

623
00:47:20,519 --> 00:47:25,119
active group, very responsive to get
HUB issues. Maybe not always responsive in

624
00:47:25,159 --> 00:47:29,840
the way that I would like,
but they're not necessarily agreeing with you,

625
00:47:29,880 --> 00:47:34,039
but they are disagreeing with you in
real time. And that's fine. You

626
00:47:34,079 --> 00:47:37,159
know. I do that with people
that contribute or you know, come into

627
00:47:37,159 --> 00:47:38,960
CSLA sometimes too. They're like,
yeah, blah blah blah, and I'm

628
00:47:38,960 --> 00:47:44,320
like, yeah, that's you know, interest, I hear you, but

629
00:47:44,440 --> 00:47:47,039
it's not the right thing or you
know, you gotta admit though. I

630
00:47:47,039 --> 00:47:51,280
mean, you must feel like Yoda
sometimes when people bring things to you,

631
00:47:52,920 --> 00:47:54,880
a dark spot in the force,
I see you. Well, you know.

632
00:47:57,039 --> 00:48:00,079
So yeah, just about a month
ago, somebody contacted me and we

633
00:48:00,119 --> 00:48:06,880
did some work. It had a
really complicated, well have set of business

634
00:48:06,920 --> 00:48:09,519
logic, which is the I mean, CSLA should be perfect for that,

635
00:48:09,559 --> 00:48:15,239
and they built it with CSLA and
this one page that was going through like

636
00:48:15,480 --> 00:48:21,840
all these super complicated rules and it
could take a minute or two to finish

637
00:48:22,679 --> 00:48:29,119
and which is ridiculous, right,
And so we were looking through this whole

638
00:48:29,159 --> 00:48:37,480
thing, and part of it was
that Blazer was refreshing the UI constantly because

639
00:48:37,559 --> 00:48:43,440
there were fields that were being changed, so we disconnected during this big process,

640
00:48:43,519 --> 00:48:46,960
disconnect the UI, right, and
so there's no binding that sped it

641
00:48:47,039 --> 00:48:52,280
up by thirty seconds all by itself. Because the way that Blazer you monitors

642
00:48:52,480 --> 00:49:00,440
the background dom can it can And
this is not unique to Blazer, Windows

643
00:49:00,440 --> 00:49:04,920
forms WPF. We've had this sort
of issue forever where data binding can be

644
00:49:04,960 --> 00:49:13,440
overly aggressive. Right. But then
the other thing is that pretty much all

645
00:49:13,480 --> 00:49:21,000
these rules needed the user identity and
they didn't want to cash the user identity

646
00:49:21,079 --> 00:49:25,039
because they want like they want admins
to be able to go revoke your rights

647
00:49:25,280 --> 00:49:29,960
in the middle of using the app. Oh yeah, the customers love that.

648
00:49:30,159 --> 00:49:32,559
And I'm like, well, but
couldn't you cash? Couldn't you cash

649
00:49:32,599 --> 00:49:37,760
it for like just ten seconds?
Right? Can you give me some warning?

650
00:49:37,239 --> 00:49:42,320
So we ended up adding into CSLA
and this is the thing, right,

651
00:49:43,079 --> 00:49:45,800
So CSLA eight now, and this
was not a breaking change. It's

652
00:49:45,840 --> 00:49:52,719
just like this transparent enhancement where you
can turn on cashing for certain types and

653
00:49:52,760 --> 00:50:00,639
say I would like you to cash
this user identity query and you know,

654
00:50:00,719 --> 00:50:06,159
for ten seconds and what Basically we
went from one to two minutes to run

655
00:50:06,199 --> 00:50:09,719
this page down to like two seconds. Wow, wow between the just for

656
00:50:09,760 --> 00:50:14,679
a little bit of cashing, a
little bit of cashing and stopping the UI

657
00:50:14,840 --> 00:50:19,960
from data binding refresh constantly. Yep
then right yeah, So I don't know

658
00:50:20,000 --> 00:50:22,159
if that makes me feel like Yoda
exactly, but it man, that is

659
00:50:23,639 --> 00:50:28,320
I mean talk about satisfying when we
were done with that. I just that

660
00:50:28,400 --> 00:50:32,519
gives you a warm, happy feeling, right, Yeah, especially for something

661
00:50:32,559 --> 00:50:39,000
around the survivors a perimeter create.
Yeah, but I I love that sort

662
00:50:39,000 --> 00:50:43,559
of shirt duration cash taking pain away
too, right, Like we're not doing

663
00:50:43,559 --> 00:50:45,920
any voodoo cashing here. You're not
going to wait for you deal with a

664
00:50:45,920 --> 00:50:50,320
lot of expiring and so on.
It's just hey, this is going to

665
00:50:50,360 --> 00:50:53,079
get called a ton so if we
hang on it for just a little while,

666
00:50:53,480 --> 00:50:58,400
we're going to save a lot of
external calls. Yeah exactly right.

667
00:50:58,559 --> 00:51:01,000
Yeah, in this case probablybably one
hundred or two hundred. I mean it

668
00:51:01,039 --> 00:51:07,480
was just amazing. Yeah, yeah, great worker, great solution. It

669
00:51:07,559 --> 00:51:09,320
is kind of a workaround, like
it shouldn't be necessary, shouldn't be called

670
00:51:09,320 --> 00:51:13,360
that much. But this code you
can fix. His code you can't fix.

671
00:51:13,760 --> 00:51:17,320
Yeah, yeah, that's right.
You know that's just bouncing act I

672
00:51:17,400 --> 00:51:24,920
just got asked to do a project
in Blazer in Automode, and I said,

673
00:51:25,199 --> 00:51:29,079
you know it's broken, isn't it? And the guy wrote back and

674
00:51:29,119 --> 00:51:30,519
said, no, they just fixed
it. So that's how I found it.

675
00:51:30,599 --> 00:51:36,039
So there, I'm really anxious now
to use this project now that it

676
00:51:36,079 --> 00:51:39,480
works. If it works, do
you think they fixed it in eight one

677
00:51:39,559 --> 00:51:45,039
hundred or whatever or two hundred whatever
version just came out this week or yeah,

678
00:51:45,039 --> 00:51:46,719
I don't know. I don't know, but I know that Visual Studio

679
00:51:46,880 --> 00:51:51,440
there's an update to Visual Studio which
we'll bring down the latest stut net.

680
00:51:51,519 --> 00:51:55,079
So I'm hoping that it's fixed.
That's a solution. Yeah. So I

681
00:51:55,079 --> 00:51:59,920
feel like all we've talked about for
CSL eight is Blazer. Is there any

682
00:52:00,079 --> 00:52:02,239
thing else that's important? I mean
eight is faster than seven, but I

683
00:52:02,239 --> 00:52:06,039
don't know there's much for CSOLA to
do there. Yeah, that's the interesting

684
00:52:06,039 --> 00:52:08,519
thing is yes it is. You
know, there's so many better things,

685
00:52:09,039 --> 00:52:16,320
but they're automatic. There were very
few maybe no changes. I'm trying to

686
00:52:16,360 --> 00:52:21,639
think. I mean, I've been
cleaning up the code, you know,

687
00:52:22,079 --> 00:52:24,039
as I go in to do some
of these other things. You know,

688
00:52:24,079 --> 00:52:28,480
a Visual Studio keeps coming up and
going, hey, there's this new language

689
00:52:28,480 --> 00:52:31,559
feature you should you know, Yeah, I think there's a lot of older

690
00:52:31,639 --> 00:52:36,960
C sharp in that code base that
could be quote unquote modernized. Not that

691
00:52:37,000 --> 00:52:40,719
it's broken, just that there's new
language features and so. But you know

692
00:52:40,760 --> 00:52:46,159
that doesn't break anything unless you do
it wrong. Well, but see,

693
00:52:46,159 --> 00:52:52,519
I just I hit what do I
hit? Control? Control period and let

694
00:52:52,599 --> 00:52:55,639
the refactor thing do the refactoring and
nice, you know, but I do

695
00:52:55,719 --> 00:53:00,039
have to say there's a couple well
one in particular, it keeps one I

696
00:53:00,119 --> 00:53:06,440
need to collapse simple if else things
down into uh you know, the statement

697
00:53:06,559 --> 00:53:09,400
question mark block. I don't like
that either. Oh I hate that.

698
00:53:10,119 --> 00:53:15,559
You know, that is readable one
step too far from readability for me.

699
00:53:15,800 --> 00:53:19,199
And I agree there's a whole lot
of old C programmers that are like,

700
00:53:19,320 --> 00:53:24,679
no, that's the way to go
that way, And I'm sorry, but

701
00:53:24,760 --> 00:53:30,639
I disagree that's you know, you
can I said this before recently, and

702
00:53:30,679 --> 00:53:34,280
this is something that I've done when
I'm writing for a customer and I'm working

703
00:53:34,320 --> 00:53:37,480
on their code and they don't understand
it. You know, I would take

704
00:53:37,639 --> 00:53:43,599
like a link statement and ask chat
cheapt to explode it into four nested four

705
00:53:43,679 --> 00:53:47,840
loops with comments and then leave that
as a comment in the code, so

706
00:53:49,159 --> 00:53:52,000
somebody who wasn't familiar with that syntax
could actually see what's going on and you

707
00:53:52,000 --> 00:53:55,320
can understand. Yeah, that's cool. Yeah. Are you seeing chat chept

708
00:53:55,440 --> 00:54:00,599
for anything basically what you're talking about? That sort of thing? Yeah,

709
00:54:00,960 --> 00:54:05,920
you know, I mean it's I
guess I use it constantly and don't actually

710
00:54:06,000 --> 00:54:13,400
think about it because it's like intell
a sense on steroids, right. I

711
00:54:13,400 --> 00:54:16,719
don't often just ask for stuff,
like, you know, go to chat

712
00:54:16,719 --> 00:54:22,639
GPT. I rely on copilot that's
built in just to be helping me out

713
00:54:22,760 --> 00:54:27,519
and and it is helpful, it
is. I sometimes ask chat GPT to

714
00:54:27,639 --> 00:54:30,559
make copilot code better. You know, is there any way to make this

715
00:54:30,639 --> 00:54:37,079
better from a non coding perspective?
You know, I play tabletop role playing

716
00:54:37,079 --> 00:54:45,639
games, and so I have been
using well, actually I suppose it's not

717
00:54:45,679 --> 00:54:50,960
really chat GPT. It's more dolly, isn't it, but creating various graphic

718
00:54:51,039 --> 00:54:57,039
assets to you know, liven up
my uh some of the gaming and and

719
00:54:57,199 --> 00:55:02,280
uh I have started dabbling though by
by providing love that providing the historical background

720
00:55:02,360 --> 00:55:07,519
of my world because we've been playing
in the same world for you know,

721
00:55:07,639 --> 00:55:15,760
like thirty five years in real time
human time, So upload the historical background

722
00:55:15,760 --> 00:55:19,480
of the world and then asking it
to like write poems or create a legend

723
00:55:19,519 --> 00:55:22,960
about this hero or wow. And
it's fiction anyway, so it doesn't have

724
00:55:23,000 --> 00:55:28,800
to be perfect any respect, save
the feel. And I'd love that pretty

725
00:55:28,840 --> 00:55:31,920
amazing. Actually, if you want
to play a fun game and you don't

726
00:55:31,920 --> 00:55:36,159
have anything to do for the next
ten minutes, good five minutes, good

727
00:55:36,159 --> 00:55:39,639
at chat GPT, and ask it
to create a picture of something food,

728
00:55:39,880 --> 00:55:45,039
right, whatever it is, you
know, describe some food and it'll give

729
00:55:45,039 --> 00:55:47,039
you a picture and then say,
okay, now make it look more delicious,

730
00:55:47,079 --> 00:55:51,360
and see what happens. And do
that three or four or five times,

731
00:55:51,800 --> 00:55:54,400
even more delicious, even more delicious, and you'll be surprised at what

732
00:55:54,480 --> 00:55:59,320
you get. Does it get better, does it get horrifying? No,

733
00:55:59,400 --> 00:56:01,559
it gets It's just more of the
same. So if there was a guy

734
00:56:01,559 --> 00:56:05,360
in New York who did this with
a bagel, you know, give me

735
00:56:05,400 --> 00:56:08,559
a bagels and locks or something like
this to phrase marketing, Okay, now

736
00:56:08,599 --> 00:56:13,519
make it more delicious, and it
just piled on the stuff and he kept

737
00:56:13,559 --> 00:56:17,840
going until it was like you know, a square meter of meat with two

738
00:56:19,280 --> 00:56:24,320
to that's not more delicious, that's
just impossibly filling. Yeah, it's fun

739
00:56:24,360 --> 00:56:27,840
though, you know, you can
do with anything. It's like they get

740
00:56:27,920 --> 00:56:31,760
more hot Carnegie Delli disease. Yeah, you could just say make it more

741
00:56:31,920 --> 00:56:36,239
and then your favorite adjective and see
what it does and then keep going.

742
00:56:36,760 --> 00:56:42,440
Yeah, then go excessive, Give
me a puppy, make it cuter,

743
00:56:42,719 --> 00:56:46,719
make it more cute, more cute, more cute. Seven story puppy is

744
00:56:46,800 --> 00:56:50,360
cute as puppy of all. Oh
yeah, the eyes will be as big

745
00:56:50,400 --> 00:56:54,599
as plates by the time you're done. Well, this has been a lot

746
00:56:54,599 --> 00:56:59,320
of fun, Rocky, What's next? What are you working on now?

747
00:56:59,559 --> 00:57:04,000
Well, continue to work of course
on on CSLA and that sort of thing.

748
00:57:05,480 --> 00:57:09,920
And I'm working with uh, well, what was x Spirit We just

749
00:57:10,639 --> 00:57:20,599
renamed zbia and in that context primarily
doing cloud modernization type work and get up

750
00:57:20,679 --> 00:57:25,840
migrations and all sorts of cool stuff
like that, and so that's pretty neat

751
00:57:27,360 --> 00:57:31,280
and but yeah, for for me, you know, I just continue to

752
00:57:31,320 --> 00:57:37,360
really be enjoying myself with with Blazer
and dot net eight and and oh,

753
00:57:37,400 --> 00:57:42,320
I guess the other thing that I
am working on and got a new person

754
00:57:42,400 --> 00:57:49,280
to jump in and help. Is
a humanitarian toolbox Project Nice. That is

755
00:57:49,880 --> 00:57:55,079
a kid's I D kit that has
gone through several iterations thanks to changing web

756
00:57:55,159 --> 00:58:01,280
and mobile technologies. Right right,
the current incarnation is actually a Blazer MAUI

757
00:58:01,400 --> 00:58:07,280
hybrid. Cool, and I feel
pretty good about Mali program, liking it

758
00:58:07,320 --> 00:58:12,360
a lot. So that's how I
only do Mali apps now unless I have

759
00:58:12,440 --> 00:58:16,920
to hybrid hybrid. Yeah, it's
more consistent. I don't know what you

760
00:58:16,920 --> 00:58:22,559
think, Rocky, you're still in
xama Land sometimes, yes, I well,

761
00:58:22,599 --> 00:58:27,800
I think for unless you're If you're
trying to create something that is has

762
00:58:27,880 --> 00:58:34,840
to be really like native iOS versus
native Android feeling, then the Blazer hybrid

763
00:58:34,920 --> 00:58:37,880
is not the way to go.
But if you're trying to create something where

764
00:58:37,920 --> 00:58:42,920
you're mostly concerned about having consistency,
I don't care if you're on an iPhone

765
00:58:43,000 --> 00:58:46,000
or an Android. I want the
app to work the same way and I

766
00:58:46,039 --> 00:58:52,639
want to be able to contain the
cost, then I think the Blazer Mali

767
00:58:52,719 --> 00:59:00,440
hybrid is fantastic because it gives you
a pretty darn efficient from a developer cost

768
00:59:00,519 --> 00:59:05,320
perspective, way to create an app
that runs on and not really just iOS

769
00:59:05,320 --> 00:59:08,840
and Android, but also it can
be a Windows and MacApp also, and

770
00:59:08,920 --> 00:59:13,880
so it's quast three. Yeah that's
true. I hadn't even thought about that

771
00:59:14,079 --> 00:59:16,840
like that. Yeah, all right, we got to run. I got

772
00:59:16,840 --> 00:59:20,880
another show to do here. So
thanks again, Rocky. It's always great

773
00:59:20,880 --> 00:59:23,239
catching up with you. Thanks for
being you. It's a pleasure, I

774
00:59:23,320 --> 00:59:25,519
mean, thank you all very much. Trade to chat with your friend.

775
00:59:25,679 --> 00:59:51,440
Okay, we'll see you next time
on dot net rocks. Dot net Rocks

776
00:59:51,519 --> 00:59:55,119
is brought to you by Franklin's Net
and produced by Pop Studios, a full

777
00:59:55,199 --> 01:00:00,639
service audio, video and post production
facility located physic in New London, Connecticut,

778
01:00:00,800 --> 01:00:07,199
and of course in the cloud online
at pwop dot com. Visit our

779
01:00:07,239 --> 01:00:10,000
website at d O T N E
t R O c k S dot com

780
01:00:10,039 --> 01:00:15,880
for RSS feeds, downloads, mobile
apps, comments, and access to the

781
01:00:15,880 --> 01:00:20,519
full archives going back to show number
one, recorded in September two thousand and

782
01:00:20,559 --> 01:00:23,000
two. And make sure you check
out our sponsors. They keep us in

783
01:00:23,079 --> 01:00:31,280
business. Now go write some code, see you next time. You got jamdavans and
