WEBVTT

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

