1
00:00:01,080 --> 00:00:03,000
Speaker 1: How'd you like to listen to dot net rocks with

2
00:00:03,080 --> 00:00:07,879
no ads? Easy? Become a patron for just five dollars

3
00:00:07,919 --> 00:00:10,800
a month. You get access to a private RSS feed

4
00:00:10,839 --> 00:00:14,279
where all the shows have no ads. Twenty dollars a month,

5
00:00:14,279 --> 00:00:16,879
we'll get you that and a special dot net Rocks

6
00:00:16,960 --> 00:00:21,000
patron mug. Sign up now at Patreon dot dot NetRocks

7
00:00:21,120 --> 00:00:36,759
dot com. Hey, welcome back to dot need rocks. I'm

8
00:00:36,840 --> 00:00:41,079
Carl Franklin, an amateur count And although dev Intersection has

9
00:00:41,359 --> 00:00:44,399
hopefully come and gone, if the world hasn't ended, uh,

10
00:00:44,679 --> 00:00:48,719
we haven't been there yet. We're recording this on September thirty.

11
00:00:48,920 --> 00:00:51,920
Speaker 2: Time shifting is a wonder, but yeah, we're we're headed

12
00:00:51,920 --> 00:00:53,719
there in a few days and then yeah, by the

13
00:00:53,759 --> 00:00:56,399
time this is published, it'll have happened. Actually, I think

14
00:00:56,399 --> 00:00:58,759
I'll be in Lizbeon on the week this is published

15
00:00:59,240 --> 00:01:00,039
for the Azure dev.

16
00:01:00,159 --> 00:01:04,400
Speaker 1: So that's also appropriate because we're talking about Aspire and

17
00:01:04,480 --> 00:01:07,159
by this time, hopefully you'll have done the crazy gotten

18
00:01:07,200 --> 00:01:10,439
at rocks dot com should have been a spirified.

19
00:01:09,920 --> 00:01:13,200
Speaker 2: A spirified because that's a word.

20
00:01:13,560 --> 00:01:15,280
Speaker 1: But we don't know as.

21
00:01:17,640 --> 00:01:19,680
Speaker 2: We can't just because you're going to build it on

22
00:01:19,719 --> 00:01:22,280
stage doesn't mean you're going to deploy it. That's right,

23
00:01:22,680 --> 00:01:23,239
that's right.

24
00:01:25,079 --> 00:01:27,000
Speaker 1: Anyway, Chris Klug is here, we're going to talk to

25
00:01:27,079 --> 00:01:32,599
him about Aspire, and let's start with nineteen seventy two,

26
00:01:32,680 --> 00:01:34,000
which is our show number.

27
00:01:34,599 --> 00:01:35,519
Speaker 2: Yeah, there's a.

28
00:01:35,519 --> 00:01:37,719
Speaker 1: Bunch of stuff happened. The Watergate scandal.

29
00:01:38,040 --> 00:01:41,599
Speaker 2: Yes, I think that's the single biggest piece of news,

30
00:01:41,599 --> 00:01:44,760
although you can always look at everything. Vietnam during seventy two.

31
00:01:44,680 --> 00:01:49,879
Speaker 1: Oh yeah, yeah, significant stuff, the Easter offensive by North Vietnam,

32
00:01:49,959 --> 00:01:54,920
the US response with Operation Linebacker. Nixon went to China.

33
00:01:55,280 --> 00:01:56,159
Speaker 2: Yeah, that's big news.

34
00:01:56,239 --> 00:02:00,599
Speaker 1: Probably probably to take his mind off of water Well,

35
00:02:00,680 --> 00:02:02,280
it was a big breakthrough and it had been worked

36
00:02:02,319 --> 00:02:04,000
on for really a few years. Your Kissinger had been

37
00:02:04,040 --> 00:02:06,079
involved and so forth, like that's the beginning of the

38
00:02:06,120 --> 00:02:08,560
opening of China. That kind of helped lead us to

39
00:02:08,599 --> 00:02:10,560
where we are right now. And we got some beautiful

40
00:02:10,599 --> 00:02:13,439
cherry trees out of it, and they're still there.

41
00:02:13,639 --> 00:02:15,439
Speaker 2: It's pandace. Don't forget the pandits.

42
00:02:15,199 --> 00:02:19,120
Speaker 1: And the pandas, right, the Munich massacre during the Summer

43
00:02:19,159 --> 00:02:26,159
Olympics terrorist attack not good, and the troubles in Northern Ireland.

44
00:02:26,400 --> 00:02:27,400
Speaker 2: Yeah, bloody Sunday.

45
00:02:27,439 --> 00:02:35,680
Speaker 1: The troubles such a whitewashed version. Yeah, description of that troubles.

46
00:02:35,719 --> 00:02:38,039
A bunch of stuff. Like I said before the nineteen

47
00:02:38,080 --> 00:02:43,879
seventy two Winter Olympics, a lot of entertainment things happening.

48
00:02:43,919 --> 00:02:46,199
But I'm gonna let you take it from here with

49
00:02:46,759 --> 00:02:47,680
science and tech.

50
00:02:47,840 --> 00:02:52,199
Speaker 2: Let's do space first, Okay, Big Year. Of course, Mariner

51
00:02:52,360 --> 00:02:56,039
nine arrives at Mars. We always think the Mariners are

52
00:02:56,080 --> 00:02:59,439
all the same, and they weren't. They were a class

53
00:02:59,560 --> 00:03:03,800
of planetary explorer. Some failed, some succeed and so forth.

54
00:03:03,840 --> 00:03:07,639
But Marina nine was a very large mariner was twice

55
00:03:07,759 --> 00:03:11,479
the size of the predecessors. Mariner eight didn't launch especially,

56
00:03:11,560 --> 00:03:14,240
but six and seven did. And this one's literally a

57
00:03:14,319 --> 00:03:16,879
thousand kilos where six and seven were about five hundred.

58
00:03:16,960 --> 00:03:20,159
Why because it carried enough fuel and power plant to

59
00:03:20,240 --> 00:03:23,960
go into orbit around Mars, the first time humans ever

60
00:03:23,960 --> 00:03:27,439
put something in orbit around another planet. Wow, And then

61
00:03:27,479 --> 00:03:29,479
spent about It's spent three hundred and forty nine days

62
00:03:29,479 --> 00:03:33,000
in orbit around Mars operational, taking pictures of the majority

63
00:03:33,080 --> 00:03:37,120
of Mars. Those photos used to plan the Viking landings,

64
00:03:37,120 --> 00:03:40,400
as well as giving us our first detailed photographs it.

65
00:03:40,360 --> 00:03:46,879
Speaker 1: Looks like Gene Roddenberry's you know, Scape of External Planets

66
00:03:47,000 --> 00:03:50,120
was pretty spot on in terms of what of what

67
00:03:50,159 --> 00:03:51,400
Mars actually looks like.

68
00:03:51,919 --> 00:03:54,319
Speaker 2: Yeah, Mars had you know, the problem we had with

69
00:03:54,319 --> 00:03:57,280
Mars was there was a year long dust storm in

70
00:03:57,319 --> 00:03:59,240
the earlier marindim missiones of the good and getting good

71
00:03:59,240 --> 00:04:01,439
pictures and like, what's going on? I just have no

72
00:04:01,479 --> 00:04:03,759
idea that it was this crazy dust him. But Mariner

73
00:04:03,840 --> 00:04:06,319
nine stuck around, was able to orbit rather than just

74
00:04:06,319 --> 00:04:09,319
to a flyby. It's difficult to get into orbit of

75
00:04:09,360 --> 00:04:11,039
on the planet. You think about the threading of the

76
00:04:11,039 --> 00:04:15,680
needle to pull that up. Exceptional achievement, good stuff. How

77
00:04:15,719 --> 00:04:19,560
about in computers? The last two Apollo missions, Okay, Paulo

78
00:04:19,639 --> 00:04:23,199
sixteen Young Duke Mattalie, which is the second rover mission

79
00:04:23,319 --> 00:04:25,839
secually called the J class missions the real science missions,

80
00:04:25,839 --> 00:04:28,399
and the final one of Paulo seventeen with Sernaan, Evans

81
00:04:28,480 --> 00:04:33,199
and Schmidt Harrison Schmidt being the only scientist to set

82
00:04:33,199 --> 00:04:36,360
foot on the Moon. He was a geologist. He had

83
00:04:36,399 --> 00:04:40,680
helped train the other test pilots. There are eleven test

84
00:04:40,680 --> 00:04:42,360
pilots that had walked on the Moon to try and

85
00:04:42,399 --> 00:04:44,199
find good rocks, and needless to say, he was better

86
00:04:44,199 --> 00:04:48,040
at than everybody else. He's the only human face ever

87
00:04:48,079 --> 00:04:50,319
photographed on the moon because he broke all the rules.

88
00:04:50,800 --> 00:04:52,680
He kept flipping up the visor to see the rocks

89
00:04:52,680 --> 00:04:56,399
better because he's a geologist. And it is actually a

90
00:04:56,439 --> 00:04:59,040
photograph of him with the visor flipped because that goldvisor

91
00:04:59,079 --> 00:05:00,920
stopped their eyes from burned out of their heads. But

92
00:05:00,920 --> 00:05:03,199
that didn't matter to rish Schmid. He really wanted to

93
00:05:03,199 --> 00:05:05,560
look at rocks, and he found easily the most important rock.

94
00:05:05,600 --> 00:05:10,360
He found this unshocked chocolatedite, which is a synthesis of

95
00:05:10,680 --> 00:05:15,639
olivine that showed that they rock formations were partially volcanic,

96
00:05:15,680 --> 00:05:17,720
and it spoke to the actual formation of the moon.

97
00:05:17,839 --> 00:05:21,759
Wow Incerning ended that mission with the we leave as

98
00:05:21,759 --> 00:05:24,079
we came, and God willing we shall return with peace

99
00:05:24,079 --> 00:05:24,759
and hope for all men.

100
00:05:27,040 --> 00:05:30,600
Speaker 1: There is one thing we haven't talked about that happened

101
00:05:30,600 --> 00:05:34,959
in nineteen seventy two, and that's Richard Campbell and Carl

102
00:05:34,959 --> 00:05:41,160
Franklin started kindergarten because we were five. We were five

103
00:05:42,040 --> 00:05:46,439
thru and isn't that the year that you went from

104
00:05:46,439 --> 00:05:48,279
New Zealand to Canada?

105
00:05:48,560 --> 00:05:49,800
Speaker 2: No, I just a couple of years before.

106
00:05:49,839 --> 00:05:51,839
Speaker 1: And then oh okay, I thought you said, Oh no,

107
00:05:52,079 --> 00:05:54,160
you were five when you went to your uncle's house

108
00:05:54,720 --> 00:05:57,279
and had prairie dog target.

109
00:05:57,040 --> 00:06:00,199
Speaker 2: Practice five, five or six. Yeah, it's you know, that's

110
00:06:00,199 --> 00:06:05,040
hard to when you're young, The Great Prairie Dog story.

111
00:06:05,160 --> 00:06:08,199
The microcomputer has been invented, or the CPU has been

112
00:06:08,240 --> 00:06:12,199
invented a couple years before, but the first scientific calculator,

113
00:06:12,240 --> 00:06:14,240
the HP thirty five, comes out in nineteen seventy two,

114
00:06:14,240 --> 00:06:16,959
although it does not use a four thousand and four. Now,

115
00:06:16,959 --> 00:06:19,759
this is the time when trigonometry and exponents were done

116
00:06:19,759 --> 00:06:21,720
with slide rulers, so the idea we had an electronic

117
00:06:21,759 --> 00:06:23,879
device that could do Trigg and exponents was a big deal.

118
00:06:25,240 --> 00:06:27,600
It also use the first implementation of a thing called

119
00:06:27,560 --> 00:06:31,240
a reverse polish notation or called postfix notation, where you're

120
00:06:31,319 --> 00:06:34,199
loading registers, so you go one enter to enter and

121
00:06:34,240 --> 00:06:38,040
then plus to add them together. And so if you

122
00:06:38,079 --> 00:06:41,000
were into those old calculators, that's where it began. Nineteen

123
00:06:41,040 --> 00:06:44,959
seventy two. Wow, as another from the previous show or

124
00:06:44,959 --> 00:06:47,279
another reference to Alan Shoeguard, he has now left IBM,

125
00:06:47,360 --> 00:06:50,079
gone to MEMORYX where he makes the shoe guard floppy

126
00:06:50,160 --> 00:06:52,680
drive or read write drive for MEMORYX called the six fifty,

127
00:06:52,720 --> 00:06:55,079
with one hundred and seventy five kilobits a storage on

128
00:06:55,120 --> 00:06:57,759
an eight inch piece of plastic.

129
00:06:57,959 --> 00:07:01,720
Speaker 1: They weren't asking the question about is it live yet?

130
00:07:02,480 --> 00:07:04,639
Speaker 2: No, I think that's an ad A little later on

131
00:07:04,800 --> 00:07:06,680
for cassette daves, well, that's.

132
00:07:06,600 --> 00:07:08,759
Speaker 1: When they got into audio. It's probably later, but we'll

133
00:07:08,759 --> 00:07:10,720
probably get there in a couple of weeks.

134
00:07:10,800 --> 00:07:13,439
Speaker 2: And I'd be remiss not to mention the C programming

135
00:07:13,560 --> 00:07:15,639
language Dennis Richie being released in nineteen.

136
00:07:15,360 --> 00:07:16,839
Speaker 1: Seventy two currently get in Richie.

137
00:07:16,879 --> 00:07:21,000
Speaker 2: And finally in video game history, the Magnavox Odyssey is

138
00:07:21,000 --> 00:07:22,920
released in nineteen seventy two in the US for one

139
00:07:23,040 --> 00:07:26,240
hundred US dollars that'd be about seven hundred bucks to day.

140
00:07:27,160 --> 00:07:30,439
And it was you know, basic screen Pong and you

141
00:07:30,519 --> 00:07:33,720
had two little knobs. It was Pong. Yeah, they had

142
00:07:33,720 --> 00:07:35,639
a few variations on the game, but essentially it was

143
00:07:35,800 --> 00:07:38,040
just Pong. They sold three hundred and fifty thousand units

144
00:07:38,040 --> 00:07:40,639
by nineteen seventy five. This is also the same year

145
00:07:40,720 --> 00:07:45,160
that one Nolan Bushnell makes a video game console called

146
00:07:45,319 --> 00:07:49,519
Pong and forms the company Atari, and is promptly sued

147
00:07:49,519 --> 00:07:51,199
by Magnavox and Settles.

148
00:07:51,959 --> 00:07:55,439
Speaker 1: We would encourage our listeners to search the archives, the

149
00:07:55,480 --> 00:07:58,399
dot Rocks archives for Nolan Bushnell because we talked to him,

150
00:07:58,959 --> 00:07:59,959
yeah a few years ago.

151
00:08:00,360 --> 00:08:03,279
Speaker 2: Yeah, one of one of Yeah, one of my heroes

152
00:08:03,279 --> 00:08:05,240
from back in the day. And it was interesting to

153
00:08:05,279 --> 00:08:07,879
actually meet the man, yeah, in his seventies and drink

154
00:08:07,879 --> 00:08:08,480
whiskey with him.

155
00:08:09,000 --> 00:08:12,360
Speaker 1: Yep. And I just remember him saying at the end

156
00:08:12,439 --> 00:08:15,560
of it was an NBC, No, it was at dev

157
00:08:16,639 --> 00:08:20,839
it was it was or DEEV. Yeah, he was addressing

158
00:08:20,920 --> 00:08:22,800
the group and he said, you know, there's some very

159
00:08:22,959 --> 00:08:28,240
very smart people in this audience, arguably the biggest collection

160
00:08:28,319 --> 00:08:31,879
of smart people in Sweden right now in one room.

161
00:08:32,320 --> 00:08:35,519
And I have some advice. Go have babies.

162
00:08:36,039 --> 00:08:41,279
Speaker 3: Because the stupid people are over popularly and you need

163
00:08:41,279 --> 00:08:44,360
to go home, talk to you significant other and say, honey,

164
00:08:44,440 --> 00:08:46,159
we're going to take one for the team.

165
00:08:47,960 --> 00:08:51,039
Speaker 2: Yeah. He was a grandpa. No two ways about that.

166
00:08:51,080 --> 00:08:55,320
Absolutely funny. That's what I got seventy two crazy year.

167
00:08:55,399 --> 00:08:57,679
Speaker 1: All right, so I guess we should get going with

168
00:08:57,720 --> 00:08:59,120
better no framework.

169
00:08:58,759 --> 00:09:07,519
Speaker 2: Awesome, all right, what do you got?

170
00:09:07,559 --> 00:09:11,480
Speaker 1: Our good old friend Simon Crop is working on this

171
00:09:11,759 --> 00:09:18,120
tool called Excelsior and it's an Excel spreadsheet generation library

172
00:09:18,200 --> 00:09:20,480
with a distinctive data driven approach.

173
00:09:20,679 --> 00:09:23,759
Speaker 2: Oh okay, so is he using l MS.

174
00:09:24,279 --> 00:09:27,200
Speaker 1: I don't think so. And it's pretty pretty much just

175
00:09:28,120 --> 00:09:34,039
you know, driven by Jason data and classes and you

176
00:09:34,080 --> 00:09:36,120
can save it to a stream and you can do

177
00:09:36,200 --> 00:09:43,519
custom headers and ordering and do some styling with with code.

178
00:09:43,840 --> 00:09:47,200
You know, it's all it's all code and Jason data.

179
00:09:48,399 --> 00:09:52,000
Speaker 2: So just a tooling library to dump data into Excel

180
00:09:52,080 --> 00:09:54,399
with some formatting and exactabilities.

181
00:09:54,639 --> 00:09:57,120
Speaker 1: Cool exactly. And there's lots of third party libraries that

182
00:09:57,159 --> 00:09:59,480
do this, you know, the big ones do.

183
00:10:00,080 --> 00:10:02,279
Speaker 2: You can cut your paste, your Brain's out or CSV

184
00:10:02,360 --> 00:10:04,000
all the way, but it's nice to have a code

185
00:10:04,039 --> 00:10:04,480
driven way.

186
00:10:04,559 --> 00:10:08,360
Speaker 1: Well, like I'm saying, there are third party libraries, you know,

187
00:10:08,399 --> 00:10:11,480
from dev Express and Telerating, those guys that have you

188
00:10:11,480 --> 00:10:17,440
know in Grape City, the original spread they have libraries

189
00:10:17,480 --> 00:10:20,279
that you can do this too as well. But this

190
00:10:20,320 --> 00:10:24,000
is an open source, free library from Simon Beautiful. Yeah,

191
00:10:24,120 --> 00:10:26,799
thanks Simon, Yeah, thanks Simon. No I learned it.

192
00:10:26,840 --> 00:10:27,080
Speaker 4: LOVI it.

193
00:10:27,120 --> 00:10:29,759
Speaker 2: Who's talking to us today? Richard grabbed Commentaler Show eighteen

194
00:10:29,799 --> 00:10:31,759
eighty one. The moment we did with when David Fowler

195
00:10:31,799 --> 00:10:34,080
talking a little bit about dot Net Aspire back in

196
00:10:34,120 --> 00:10:36,600
those very early days where I think they were just

197
00:10:36,600 --> 00:10:38,240
trying to figure out what the heck they were making,

198
00:10:38,960 --> 00:10:41,799
and Noel Anderton had this comment. He says, I would

199
00:10:41,799 --> 00:10:45,200
really like to hear them talk about Dapper. That's DAPR

200
00:10:45,919 --> 00:10:48,120
and Aspire. There seems to be a major overlap between

201
00:10:48,159 --> 00:10:51,279
these two projects that look to be mutually exclusive. Aspire

202
00:10:51,320 --> 00:10:53,559
seems to be a dot net centric view, where Dapper

203
00:10:53,679 --> 00:10:58,240
is more technologically agnostic. Less importantly, I'd also like to

204
00:10:58,279 --> 00:11:00,200
know where you see this in relation to intern Ol

205
00:11:00,320 --> 00:11:03,919
Developer Portal's IDP. You have to start an IDP dashboard

206
00:11:03,960 --> 00:11:06,200
and you have the creation of a new component. Scaffolding

207
00:11:06,320 --> 00:11:08,440
uses tooling being used by I DPS. Do you see

208
00:11:08,440 --> 00:11:12,360
Microsoft building and IDP and considering we've really not heard

209
00:11:12,399 --> 00:11:16,440
about IDPs again, so I don't know that it really

210
00:11:16,480 --> 00:11:19,799
took off right. Everybody's got their own approach to doing

211
00:11:19,840 --> 00:11:24,480
these things. But I do appreciate the term scaffolding, which

212
00:11:24,519 --> 00:11:27,840
is certainly the way I've looked at Aspire as code

213
00:11:27,879 --> 00:11:31,320
you use to generate other code that doesn't actually continue.

214
00:11:31,559 --> 00:11:35,000
Can you on from there of certainly will Luke Crisen

215
00:11:35,039 --> 00:11:37,279
on the whole Dapper versus Spire side, I do think

216
00:11:37,320 --> 00:11:39,120
they overlap to some degree, because in the end, it's

217
00:11:39,120 --> 00:11:43,000
trying to make cloud native code in whatever language you want.

218
00:11:43,200 --> 00:11:46,320
In this case we're talking specifically dot Net. I do

219
00:11:46,360 --> 00:11:49,559
think that Thespire goes deeper into the dot Net stack

220
00:11:51,039 --> 00:11:53,480
the Dapper's capable doing it. But I've been interested to

221
00:11:53,519 --> 00:11:54,960
do a Dapper show at some point in the future.

222
00:11:54,960 --> 00:11:58,039
Show we'll pay attention to that. So Noel, thank you

223
00:11:58,039 --> 00:11:59,480
so much for your comment, and a copy of music

224
00:11:59,480 --> 00:12:01,639
Coba is on it even if you'd like copyes to code.

225
00:12:01,639 --> 00:12:03,039
But I read a comment on the website at dot

226
00:12:03,080 --> 00:12:05,879
netroocks dot com or on the facebooks we publish every show.

227
00:12:05,879 --> 00:12:07,360
There a new comment there, and I read in the show.

228
00:12:07,399 --> 00:12:08,720
We'll send you copymies to go by.

229
00:12:08,879 --> 00:12:11,679
Speaker 1: I was just using music to code by yesterday while

230
00:12:11,720 --> 00:12:16,519
I was working on a difficult problem. And uh yeah,

231
00:12:16,639 --> 00:12:21,039
it's still going strong. Twenty two tracks, MP three, flak

232
00:12:21,159 --> 00:12:24,840
and wave formats at musicdocode by dot net. All right,

233
00:12:24,960 --> 00:12:28,679
Chris Klug, let's bring you in here. I'm reading a bio.

234
00:12:29,759 --> 00:12:32,720
I'm reading a bio from the last show and stop

235
00:12:32,759 --> 00:12:35,000
me if I get anything wrong. Chris Klug works as

236
00:12:35,039 --> 00:12:38,639
a developer architect at Active Solution in Stockholm. That's right,

237
00:12:38,759 --> 00:12:41,840
working mostly with cloud based solutions for clients in a

238
00:12:41,840 --> 00:12:45,080
wide range of domains. Lately, his contracts have pulled him

239
00:12:45,080 --> 00:12:49,120
towards the DevOps area, working almost entirely with build and

240
00:12:49,120 --> 00:12:52,879
release automation as well as infrastructure as code. Both were

241
00:12:52,919 --> 00:12:55,600
somewhat uncharted areas to him, which suited him fine, as

242
00:12:55,600 --> 00:12:58,120
he loves learning new things and figuring out how to

243
00:12:58,120 --> 00:13:00,600
make them do what he wants them to do. Obviously,

244
00:13:00,759 --> 00:13:04,039
these days he's working with that that aspire. So welcome back, Chris,

245
00:13:04,240 --> 00:13:06,480
thank you, thanks for having me, thanks for being here.

246
00:13:06,720 --> 00:13:09,879
Speaker 4: I can say that the intro is not really correct anymore.

247
00:13:09,919 --> 00:13:12,039
I haven't done devils for quite a while now, but

248
00:13:12,679 --> 00:13:15,639
I'm not actually touching cloud at this point either, because

249
00:13:15,679 --> 00:13:18,840
I'm at a bank that has everything in house. But yeah,

250
00:13:18,879 --> 00:13:21,559
it's I'm still a developer at least, so that part

251
00:13:21,600 --> 00:13:22,080
was correct.

252
00:13:22,320 --> 00:13:25,799
Speaker 1: You were a full stack guy, right, I mean touch everything.

253
00:13:26,240 --> 00:13:28,960
Speaker 4: I don't defront them anymore, so I don't call myself

254
00:13:29,200 --> 00:13:34,240
a full stack developer anymore. I I personally dislike the

255
00:13:34,320 --> 00:13:37,759
idea of full stack developer because I think there's too

256
00:13:37,919 --> 00:13:40,840
much in front end and back into note to actually

257
00:13:40,840 --> 00:13:43,399
know both of them really well. But that's me at least.

258
00:13:43,480 --> 00:13:46,840
I've decided to focus more on the back end side

259
00:13:46,879 --> 00:13:48,840
of things in the last few years.

260
00:13:49,000 --> 00:13:51,360
Speaker 2: Right, Do you have any thoughts on on no One's

261
00:13:51,360 --> 00:13:53,679
comment about the relationship between Dapper and Aspire.

262
00:13:54,039 --> 00:13:56,960
Speaker 4: I see them as very different things. So Dapper work

263
00:13:57,039 --> 00:14:00,200
as far as I understand, Dapper works pretty well with Aspire.

264
00:14:01,080 --> 00:14:03,759
I'm just I'm not a Dapper person. I've only used

265
00:14:03,799 --> 00:14:08,000
that on one project, and personally in that scenario it

266
00:14:08,840 --> 00:14:12,279
didn't give us very much. But I think Dapper is

267
00:14:12,399 --> 00:14:16,399
more of a way of abstracting away your environment, right,

268
00:14:16,440 --> 00:14:20,840
being able to plug and play different parts and replacing

269
00:14:21,240 --> 00:14:26,440
things in your environment by giving you pre defined interfaces

270
00:14:26,559 --> 00:14:29,960
that people can implement and then provide, whereas I think

271
00:14:30,120 --> 00:14:33,720
Aspire is more of a we will host your services

272
00:14:33,720 --> 00:14:36,000
for you. We're not going to give you any abstractions,

273
00:14:36,440 --> 00:14:38,759
but we will give you a bunch of hosting stuff

274
00:14:38,759 --> 00:14:40,799
for you instead. So they actually work pretty well together

275
00:14:40,879 --> 00:14:44,200
because you can use Aspire to spin up the different

276
00:14:44,200 --> 00:14:47,039
services you need, like reddish and seql and all the

277
00:14:47,080 --> 00:14:49,360
things that you would do and service buses and stuff

278
00:14:49,399 --> 00:14:52,840
like that, and then you use Dapper in your application

279
00:14:53,080 --> 00:14:56,559
to configure how they fit together. So yes, there's a

280
00:14:56,600 --> 00:14:59,919
bit of an overlap with the how it fits together

281
00:15:00,120 --> 00:15:02,679
kind of thing, but they are very.

282
00:15:02,279 --> 00:15:03,399
Speaker 2: I don't know if this is true yet, but I

283
00:15:03,440 --> 00:15:07,159
could see Aspire being able to deploy Dapper as APIs

284
00:15:07,200 --> 00:15:09,519
in front of the services it just configured.

285
00:15:09,159 --> 00:15:12,240
Speaker 4: For in theory. Yes, yeah, I think that would work.

286
00:15:12,519 --> 00:15:15,200
Speaker 2: Yeah, I buy that. And of course there is the

287
00:15:15,200 --> 00:15:17,600
overlap on like the workflow side and things, and they

288
00:15:17,679 --> 00:15:21,360
both generately a dashboard, but yeah, I see there's difference.

289
00:15:21,679 --> 00:15:23,840
The main thing I see with Dapper is it's a

290
00:15:23,919 --> 00:15:27,960
set of building block APIs that Aspire seems to avoid.

291
00:15:27,600 --> 00:15:30,919
Speaker 4: Doing, which I personally kind of like. But that's made

292
00:15:30,919 --> 00:15:33,519
because unless you have a very specific reason where you

293
00:15:33,559 --> 00:15:39,120
actually do switch out your services, then I personally am

294
00:15:39,120 --> 00:15:43,360
not a big fan of the least common denominator thing

295
00:15:43,519 --> 00:15:45,879
for all of the services you want to use. I

296
00:15:46,279 --> 00:15:49,200
don't mind pulling in an SDK for a specific service

297
00:15:49,200 --> 00:15:51,960
that I use, And I also feel like in ninety

298
00:15:52,080 --> 00:15:54,960
nine percent of my cases, the services I use are

299
00:15:54,960 --> 00:15:58,840
the same during development and during production. Because we use

300
00:15:58,840 --> 00:16:01,879
Sequel server, we use Cosmos, we use a bunch of

301
00:16:01,960 --> 00:16:05,360
services that you can run locally using emulators and things instead.

302
00:16:05,480 --> 00:16:08,759
So I haven't run into that porb currently for anything

303
00:16:08,840 --> 00:16:12,600
that we need, but maybe sometime in the future.

304
00:16:13,039 --> 00:16:16,879
Speaker 1: So, in your opinion, what is the most essential service

305
00:16:17,039 --> 00:16:20,600
that dot net Aspire gives you. I mean, there's a

306
00:16:20,600 --> 00:16:23,399
whole bunch of things in there, but what's the most

307
00:16:23,480 --> 00:16:24,159
essential one.

308
00:16:24,240 --> 00:16:26,440
Speaker 4: Oh, the most essential one for me is the ability

309
00:16:26,440 --> 00:16:28,480
to actually it's not a service as such, but it's

310
00:16:28,559 --> 00:16:31,879
running your own projects because you don't necessarily need any

311
00:16:31,919 --> 00:16:36,480
external services to make Aspire really useful. For me, the

312
00:16:36,799 --> 00:16:40,519
biggest thing that makes Aspire something that I really love

313
00:16:40,600 --> 00:16:42,879
having is the fact that I can take multiple of

314
00:16:42,919 --> 00:16:45,519
my services locally and just spin them up and debug

315
00:16:45,559 --> 00:16:48,759
them all at the same time in an easy to

316
00:16:48,840 --> 00:16:52,000
do way. And then on top of that, yes, you

317
00:16:52,039 --> 00:16:54,000
have all of the other services that they can help you

318
00:16:54,039 --> 00:16:57,039
out with, and those are just getting so many it's

319
00:16:57,120 --> 00:16:58,240
ridiculous by now.

320
00:16:58,240 --> 00:17:02,919
Speaker 1: Right Well, in that family of services, when you say

321
00:17:03,000 --> 00:17:05,359
start a project and Aspire, what's the first thing that

322
00:17:05,400 --> 00:17:05,960
you turn on?

323
00:17:09,119 --> 00:17:12,200
Speaker 4: The first thing I probably put put into everything I've

324
00:17:12,200 --> 00:17:14,519
built so far as a sequel, So for instance, yeah,

325
00:17:14,559 --> 00:17:16,480
because I use sequel server.

326
00:17:16,680 --> 00:17:18,640
Speaker 2: How old school of you, right.

327
00:17:18,920 --> 00:17:22,880
Speaker 4: Yeah, I know everybody's moving to postgrists and document databases

328
00:17:22,920 --> 00:17:26,480
and things, but the sequel has always been the foundation

329
00:17:26,759 --> 00:17:30,640
and background of what I've been building. It's very natural

330
00:17:30,680 --> 00:17:32,720
for me to go there. And the fact that is

331
00:17:32,720 --> 00:17:36,079
that easy just spin up, that's what I'm putting in

332
00:17:36,160 --> 00:17:37,720
there is my first thing in most cases.

333
00:17:37,880 --> 00:17:41,880
Speaker 1: Yeah, about the red as cash, I know that that's

334
00:17:41,920 --> 00:17:45,359
something that a lot of maybe a lot of developers

335
00:17:45,400 --> 00:17:48,319
do know about it, but I think there's a huge

336
00:17:48,559 --> 00:17:51,799
sloth of the development community of dot net development community

337
00:17:51,839 --> 00:17:55,200
that is neither either never needed it or didn't know

338
00:17:55,279 --> 00:17:59,759
they needed it. But that can make a huge difference

339
00:17:59,839 --> 00:18:01,960
in performance and scalability.

340
00:18:02,119 --> 00:18:04,319
Speaker 4: It can, and I think it's useful for a lot

341
00:18:04,359 --> 00:18:09,839
of scenarios. We're currently looking at it for my current project,

342
00:18:10,480 --> 00:18:13,319
but we're for we're doing a hybrid cash solution at

343
00:18:13,319 --> 00:18:16,920
the moment with in memory while actually using the met

344
00:18:16,960 --> 00:18:20,440
core hybrid cash with in memory and a sort of

345
00:18:20,440 --> 00:18:24,279
a semi permanent store as well. And we looked at readies,

346
00:18:24,359 --> 00:18:27,319
but we ended up going old school sequel again. Mostly

347
00:18:27,359 --> 00:18:33,079
because we're hosting on prem at a bank that's using Kubernetes, right,

348
00:18:33,119 --> 00:18:35,319
and we can't touch too much of the stuff there,

349
00:18:35,400 --> 00:18:38,000
and trying to get them convinced that hey, we want

350
00:18:38,000 --> 00:18:40,319
to run read this as well was not really an option.

351
00:18:40,480 --> 00:18:42,640
Speaker 2: But you got to talk to it about standing up

352
00:18:42,640 --> 00:18:46,119
a new service. That's an interesting battle to have at

353
00:18:46,119 --> 00:18:46,559
a bank.

354
00:18:46,680 --> 00:18:49,160
Speaker 4: That is a very interesting conversation to be had.

355
00:18:49,400 --> 00:18:54,200
Speaker 2: I promise you, dude, I've done the mineral right. It's okay.

356
00:18:54,599 --> 00:18:56,160
It's one thing to stand it up. It's another thing

357
00:18:56,200 --> 00:18:58,599
to back it up, monitor it and like I know

358
00:18:58,799 --> 00:18:59,559
all of that stuff.

359
00:19:00,119 --> 00:19:02,559
Speaker 4: He's equal they had so that was aacy, But yeah,

360
00:19:02,680 --> 00:19:05,920
I do. I agree with your carlab. I think reddis

361
00:19:06,000 --> 00:19:10,240
is the simplest and by far fastest way to gain

362
00:19:10,319 --> 00:19:13,240
performance out of your APIs and your services if you

363
00:19:13,279 --> 00:19:13,920
know not how to use it.

364
00:19:13,960 --> 00:19:17,640
Speaker 1: I'm doing a manual cash of the dot net rocks data.

365
00:19:17,880 --> 00:19:20,640
So basically, we have a database to keep all this

366
00:19:20,720 --> 00:19:23,920
stuff in, and then we generate JSON files and put

367
00:19:23,960 --> 00:19:29,799
them in a storage account, and then we pull them out,

368
00:19:29,839 --> 00:19:32,799
but only on a timer, you know, like a couple

369
00:19:32,880 --> 00:19:35,680
of times a day or on an hour time or whatever.

370
00:19:35,799 --> 00:19:38,920
So everything's cashed in memory pretty much all the time,

371
00:19:38,960 --> 00:19:41,200
but it is a roll your own cash kind of thing.

372
00:19:41,279 --> 00:19:44,000
And I think that's probably the first thing that Maddie's

373
00:19:44,039 --> 00:19:46,359
going to want to tear out of there, and the

374
00:19:46,480 --> 00:19:49,440
place with redd is when I get on stage with her.

375
00:19:49,319 --> 00:19:52,160
Speaker 2: And again with time shifting, Maddy has already torn out

376
00:19:52,160 --> 00:19:55,480
of there. Well she may or she may not have,

377
00:19:55,519 --> 00:19:57,640
but it will. See it's I got to feel in

378
00:19:57,720 --> 00:19:59,720
that's the first thing to go. I'm kind of excited

379
00:19:59,759 --> 00:20:03,759
to see Chris talking about cloud related stuff on an

380
00:20:03,799 --> 00:20:07,079
on prem implementation, like this is cloud as architecture versus

381
00:20:07,079 --> 00:20:09,200
cloud as a deployment location.

382
00:20:09,759 --> 00:20:13,440
Speaker 4: Yep, yeah, so it's yeah, I don't know why. Well,

383
00:20:13,480 --> 00:20:18,640
it's funny because cloud native or cloud based development always

384
00:20:18,720 --> 00:20:21,519
indicates Kubernatist. For most people, that's fine, there's a and

385
00:20:21,559 --> 00:20:23,720
in this case it happens to be that we are

386
00:20:23,759 --> 00:20:26,279
actually running Kubernatis, but we're doing it on prem. But

387
00:20:27,160 --> 00:20:30,759
for me, the cloud native stuff is slightly different and

388
00:20:31,319 --> 00:20:34,079
it doesn't need to be Kubernetes. But that's where we're

389
00:20:34,119 --> 00:20:39,000
at the moment. But Aspire then has this interesting concept

390
00:20:39,000 --> 00:20:42,359
of deployment where it doesn't need to go to Kubernates

391
00:20:42,400 --> 00:20:46,720
even though you're doing a cloud ish solution.

392
00:20:46,480 --> 00:20:49,000
Speaker 2: Although it certainly can. We did a whole show just

393
00:20:49,119 --> 00:20:52,599
talking about Aspire being a way to get to containers.

394
00:20:52,599 --> 00:20:53,960
If you're not already comfortable with it.

395
00:20:54,079 --> 00:20:59,119
Speaker 1: Ye, is there Docker without Kubernetes in your opinion, not.

396
00:20:59,000 --> 00:21:00,880
Speaker 4: Really too perfect? Honest. If I was going to run

397
00:21:00,920 --> 00:21:05,480
something for local, yes, but for production, no, I wouldn't

398
00:21:05,559 --> 00:21:10,880
run docer, Well, no, I wouldn't depending on how it well, okay,

399
00:21:10,960 --> 00:21:13,759
that's now you got it depends on how you look

400
00:21:13,759 --> 00:21:16,720
at it, right. If I was going to use Ashure,

401
00:21:16,799 --> 00:21:18,920
which is my native home for most of them stuff

402
00:21:18,920 --> 00:21:21,960
I do normally do. I believe in the idea of

403
00:21:21,960 --> 00:21:24,599
having container images in my web apps, for example, to

404
00:21:24,640 --> 00:21:27,960
do web aps for containers and hosting containers instead of

405
00:21:28,960 --> 00:21:33,559
running my applications natively on web apps for example, That

406
00:21:33,680 --> 00:21:37,160
makes sense. But using docer in a way where I

407
00:21:37,359 --> 00:21:40,680
touch docer and do docer run and everything like that,

408
00:21:40,680 --> 00:21:41,240
that's not.

409
00:21:41,680 --> 00:21:41,799
Speaker 2: No.

410
00:21:42,279 --> 00:21:43,079
Speaker 4: I would never do that.

411
00:21:43,200 --> 00:21:43,440
Speaker 1: You're not.

412
00:21:44,319 --> 00:21:45,960
Speaker 4: I'm not going to say it never because there will

413
00:21:45,960 --> 00:21:48,720
be a scenario, right, but right now I haven't seen

414
00:21:48,759 --> 00:21:50,680
that need as such. And if if I was going

415
00:21:50,759 --> 00:21:53,319
to go in that direction. Yeah, kubernet Is an akas

416
00:21:53,359 --> 00:21:54,599
would probably be better at choice.

417
00:21:54,640 --> 00:21:57,160
Speaker 1: So imagine I'm a psychiatrist and you're on my couch,

418
00:21:58,200 --> 00:22:00,720
tell me about Yamo.

419
00:22:02,680 --> 00:22:03,519
Speaker 4: About Yamo.

420
00:22:04,279 --> 00:22:06,559
Speaker 1: What is your relationship to Yamo.

421
00:22:07,359 --> 00:22:11,880
Speaker 4: It's the it's the shitty replacement for Jason because it's, oh,

422
00:22:11,960 --> 00:22:16,519
it doesn't have curly braces, but instead we make it white, white, white,

423
00:22:16,559 --> 00:22:20,559
space sensitive. So a minor little change causes everything to

424
00:22:20,559 --> 00:22:23,240
break down and it's really hard to debug. I don't

425
00:22:23,359 --> 00:22:24,799
like Yamo whatsoever.

426
00:22:25,039 --> 00:22:28,880
Speaker 1: God, I feel so vindicated, Richard Nice. You know here

427
00:22:28,920 --> 00:22:31,599
I was thinking, I was like the you know, the

428
00:22:32,160 --> 00:22:34,880
odd man out saying I don't like Yamo, but apparently

429
00:22:35,039 --> 00:22:36,920
really smart people like Chris don't like it either.

430
00:22:36,920 --> 00:22:38,880
Speaker 4: I wouldn't call myself very sad.

431
00:22:38,920 --> 00:22:41,759
Speaker 2: Listen, anybody who says it like Yamo has Stockholm syndrome.

432
00:22:41,880 --> 00:22:46,039
Let's be clear, right, Like, I get.

433
00:22:45,839 --> 00:22:48,680
Speaker 4: The point, I really do. And if you pull up

434
00:22:48,720 --> 00:22:51,400
a Yamo file that somebody has written that's already there,

435
00:22:51,519 --> 00:22:54,519
it's definitely a lot easier to read than than Jason

436
00:22:54,599 --> 00:22:56,759
because you don't have all of the curly bras and everything.

437
00:22:56,799 --> 00:23:00,559
But authoring them is a different story because offering them,

438
00:23:00,599 --> 00:23:02,319
all of a sudden you do a tab in the

439
00:23:02,319 --> 00:23:04,319
wrong place or a space in the wrong place, and

440
00:23:04,319 --> 00:23:07,160
all of a sudden, oh, you have now modified the

441
00:23:07,279 --> 00:23:09,519
entire thing. I'm not a huge fan.

442
00:23:09,680 --> 00:23:11,880
Speaker 2: Well, ps code helps you by letting you know everything

443
00:23:11,920 --> 00:23:13,119
is read now and it's your fault.

444
00:23:13,200 --> 00:23:13,359
Speaker 4: Yeah.

445
00:23:13,559 --> 00:23:20,440
Speaker 2: True, Yeah, but I appreciate your thinking. YAML should be generated,

446
00:23:20,160 --> 00:23:23,440
should and then should be read only when you look

447
00:23:23,480 --> 00:23:23,680
at it.

448
00:23:23,799 --> 00:23:26,599
Speaker 1: Yeah, it's kind of like assembly language, do not edit,

449
00:23:26,680 --> 00:23:29,880
you are not quality, should be treated as such. When

450
00:23:29,880 --> 00:23:33,640
you said Stockholm syndrome, it's funny because Chris is from Stockholm.

451
00:23:34,160 --> 00:23:34,359
Speaker 2: Yep.

452
00:23:36,359 --> 00:23:41,200
Speaker 1: The jokes just keep coming, just keep coming. Oh man,

453
00:23:41,319 --> 00:23:44,759
all right, So we talked about Reddish. Where are some

454
00:23:44,799 --> 00:23:47,640
of the other hidden gems in Aspire?

455
00:23:47,880 --> 00:23:50,519
Speaker 4: Well, actually, I think there's there are hidden gems in

456
00:23:50,599 --> 00:23:54,319
Aspire that's not really about services like that. There are

457
00:23:54,440 --> 00:23:57,599
features I think that people are missing out on potentially

458
00:23:57,599 --> 00:24:01,240
an Aspire that I find to be really little gems.

459
00:24:01,279 --> 00:24:04,119
It's like being able to add customer commands to the

460
00:24:04,200 --> 00:24:07,079
dashboard is one of those things that just on the

461
00:24:07,160 --> 00:24:09,319
surface is like why would you need that? And then

462
00:24:10,599 --> 00:24:12,920
we're doing it in the current project where we have

463
00:24:13,000 --> 00:24:16,839
a little receive the database. So if somebody pulls it

464
00:24:16,920 --> 00:24:19,119
up and they need to restore the database back to

465
00:24:19,160 --> 00:24:21,799
a database that we can work with. It's not a

466
00:24:21,920 --> 00:24:24,119
manual task. It's not a script that needs to be run.

467
00:24:24,200 --> 00:24:26,799
You go into dashboard, you click the button and you say, hey,

468
00:24:27,000 --> 00:24:30,000
reseve the database, and it sets the database for us.

469
00:24:29,799 --> 00:24:32,400
It's nice, a nice way of doing it. We also

470
00:24:32,440 --> 00:24:35,839
have an export from SQL to Neo for j for

471
00:24:35,920 --> 00:24:38,599
some graph stuff, and we can redo that export using

472
00:24:38,599 --> 00:24:41,079
a command as well. It's just those little things that

473
00:24:41,160 --> 00:24:44,200
make it easier for people to use the dashboard as well.

474
00:24:44,279 --> 00:24:47,480
Speaker 1: It's nice, I think, yeah, plumbing.

475
00:24:47,160 --> 00:24:50,240
Speaker 2: Yeah, and you speak to doing more with how important

476
00:24:50,240 --> 00:24:54,079
a dashboard is in the dev cycle versus in the insductions.

477
00:24:53,599 --> 00:24:56,599
Speaker 4: Well, that's the thing in the production cycle. It's I

478
00:24:56,640 --> 00:25:01,839
think to me currently Aspire kind of is a development

479
00:25:01,960 --> 00:25:05,279
time kind of thing. Once it's deployed, I don't seem

480
00:25:05,319 --> 00:25:09,680
as well deploying the Aspire dashboard or anything like that

481
00:25:09,839 --> 00:25:12,960
into a production environment, even though you can do that now.

482
00:25:14,319 --> 00:25:16,720
I mostly, as I said, look at it as a

483
00:25:16,759 --> 00:25:20,079
dev tool and that's where it can with things like

484
00:25:20,119 --> 00:25:24,279
little commands like that or maybe being able to look

485
00:25:24,279 --> 00:25:26,920
at different durls and actually have them properly describe what

486
00:25:26,960 --> 00:25:30,799
they do. Means that when you do a get pull

487
00:25:31,599 --> 00:25:34,640
F five to start the thing, you actually get everything.

488
00:25:34,720 --> 00:25:36,960
And now with the new support that they have where

489
00:25:37,160 --> 00:25:40,319
if you don't define parameters, it will actually ask you

490
00:25:40,400 --> 00:25:42,880
for missing parameters so you can get it down. You

491
00:25:42,920 --> 00:25:45,000
press have five and the first thing that says is

492
00:25:45,000 --> 00:25:47,240
the dashboard goes up and says, hey, there are missing

493
00:25:47,279 --> 00:25:50,880
parameters here. Can you give me the database password? Can

494
00:25:50,920 --> 00:25:53,440
you give me these other things? And then it stortes

495
00:25:53,480 --> 00:25:57,559
it to your user secrets automatically. Means that getting a

496
00:25:57,599 --> 00:26:00,960
new developer onto a project is so much easier, which

497
00:26:01,000 --> 00:26:02,640
I think is a massive benefit.

498
00:26:02,880 --> 00:26:08,519
Speaker 1: Is yeah nice sharing. Configuration has always been an issue

499
00:26:08,559 --> 00:26:10,960
with me on the different teams that I worked on.

500
00:26:11,480 --> 00:26:15,119
Not not insurmountable, but you know you, like you said,

501
00:26:15,200 --> 00:26:17,240
you do a get pull and it doesn't work because

502
00:26:17,240 --> 00:26:19,839
of some configuration issue and oh you got to add

503
00:26:19,839 --> 00:26:25,680
this little section to your app settings whatever. So let's

504
00:26:25,720 --> 00:26:31,440
talk telemetry here. So open telemetry is everywhere and Aspire

505
00:26:31,519 --> 00:26:35,440
and in Azure, and you have that dashboard but once,

506
00:26:36,160 --> 00:26:39,319
once it's deployed, does that dashboard still work for you

507
00:26:39,400 --> 00:26:42,240
in terms of telemetry or do you go over to

508
00:26:42,319 --> 00:26:46,759
another kind of run time telemetry monitoring thing and Azure.

509
00:26:46,720 --> 00:26:49,920
Speaker 4: Unfortunately, right now, I've been on my bank project for

510
00:26:49,960 --> 00:26:52,480
so long that it's actually been around the time that

511
00:26:52,559 --> 00:26:55,480
Aspire came out, so I haven't been able to do

512
00:26:55,519 --> 00:26:59,279
anything with Aspire with Azure, but I can know the

513
00:26:59,359 --> 00:27:02,039
dashboard that comes with a Spire would not be enough

514
00:27:02,039 --> 00:27:05,359
in my opinion, especially since it's as far as I know,

515
00:27:05,480 --> 00:27:10,880
in memory only right, so it doesn't persistent, So I

516
00:27:10,880 --> 00:27:15,160
would prefer having it offloaded to something else. As I said,

517
00:27:15,200 --> 00:27:17,519
I see the Spire dashboard as a nice thing for

518
00:27:17,599 --> 00:27:22,240
dev and then for production going to something like Honeycomb

519
00:27:22,400 --> 00:27:25,359
for example, or a third party system that is built

520
00:27:25,400 --> 00:27:28,880
specifically for that is probably the better solution. Or yeah,

521
00:27:28,920 --> 00:27:34,559
you can do application insights or monitoring.

522
00:27:34,920 --> 00:27:40,359
Speaker 2: I mean, odds are your administrators already have a telemetry

523
00:27:40,359 --> 00:27:42,480
solution they need you to add too, And that's why

524
00:27:42,480 --> 00:27:44,839
they like open telemetry because they probably have an input

525
00:27:44,839 --> 00:27:47,319
feed for that. It's a good aim your app here

526
00:27:47,519 --> 00:27:50,640
at this endpoint. Now our telemetry adds to our existing

527
00:27:50,720 --> 00:27:52,480
monitoring solution. Yeah, Yep.

528
00:27:52,559 --> 00:27:53,559
Speaker 1: It's a beautiful thing.

529
00:27:53,680 --> 00:27:56,839
Speaker 2: Now, you hope, and then they'll complain about the crappy

530
00:27:56,839 --> 00:27:57,759
feed you've given them.

531
00:27:59,279 --> 00:28:01,839
Speaker 4: But it's also I really like that because it's it's

532
00:28:01,839 --> 00:28:04,599
hard to get away from the fact that whatever dashboard

533
00:28:04,640 --> 00:28:10,519
day or solution they have solutions chosen for telemetry is

534
00:28:10,759 --> 00:28:13,880
a thing that's built purposely full for that thing. So

535
00:28:13,920 --> 00:28:16,200
it's going to be really good for that thing's not

536
00:28:16,680 --> 00:28:19,160
having to focus on that, not having to build your

537
00:28:19,200 --> 00:28:23,160
own telemetry monitoring system, which I've done over and over

538
00:28:23,240 --> 00:28:25,680
again for other clients, it's now really nice just shove

539
00:28:25,720 --> 00:28:28,680
it off and then do some own of your own

540
00:28:28,759 --> 00:28:31,720
custom hotel integrations instead, if you want to have your

541
00:28:31,720 --> 00:28:34,079
own metrics and your own spans and things like that.

542
00:28:34,160 --> 00:28:36,319
Speaker 2: But if the new app is using Kubernetes, they already

543
00:28:36,319 --> 00:28:38,480
have an instrumentation pack for Kubernatores. They know how they

544
00:28:38,480 --> 00:28:40,559
want to look at the state of containers, so that's good.

545
00:28:40,599 --> 00:28:42,559
It's another part of why I don't want you to

546
00:28:42,559 --> 00:28:45,240
add redicity equation, because I now have to tune episode

547
00:28:45,279 --> 00:28:47,119
of telemetry for how do I know if Redis is

548
00:28:47,119 --> 00:28:48,279
happy or not? Yep.

549
00:28:48,519 --> 00:28:51,839
Speaker 4: Yeah, Which that's actually an interesting point where you're saying that, Richard,

550
00:28:52,119 --> 00:28:56,079
that when you deployed, the ops guides will already have

551
00:28:56,119 --> 00:28:59,000
a thing for you, right, Yeah, And I think that's

552
00:28:59,039 --> 00:29:02,240
the way it works in and in most enterprises I've

553
00:29:02,359 --> 00:29:05,400
been involved in, there's always an obstavision that have very

554
00:29:05,440 --> 00:29:10,119
strict opinions, which then is interesting combining that with a

555
00:29:10,240 --> 00:29:15,400
spire's way of thinking about deployments. I know I've been

556
00:29:15,440 --> 00:29:19,680
on the show before and we talked about Infrastructure's code

557
00:29:19,720 --> 00:29:22,279
and some options that were out there and pollumium things

558
00:29:22,319 --> 00:29:25,440
like that, which I think was a cool idea, but

559
00:29:25,519 --> 00:29:29,200
it moved infrastructure into the developers region, and I think

560
00:29:29,319 --> 00:29:32,200
that is honestly a bit of a problem because most

561
00:29:33,079 --> 00:29:37,240
enterprises don't want their developers to mess about with infrastructure.

562
00:29:37,519 --> 00:29:42,559
Speaker 2: Yeah. Now, you're right. If an organization has a deployment

563
00:29:42,599 --> 00:29:44,839
strategy already, and I'm telling you not all of them do,

564
00:29:46,000 --> 00:29:49,839
then they will be concerned. If they want to own

565
00:29:49,880 --> 00:29:51,720
that piece, then they want to understand that piece. And

566
00:29:51,759 --> 00:29:53,720
when you introduce other languages know the tuning around, they're

567
00:29:53,720 --> 00:29:56,400
going to get jumping about it, just like they jumping

568
00:29:56,400 --> 00:30:00,359
about ratus. But sometimes they don't have that. But they

569
00:30:00,400 --> 00:30:02,640
also get into trouble that way. Like, one of the

570
00:30:02,680 --> 00:30:04,960
issues you have when you have a lot of systems

571
00:30:05,039 --> 00:30:08,400
running in VMS are on against services in a shared

572
00:30:08,440 --> 00:30:12,319
infrastructure is badly behaved apps being introduced to the equation. Like,

573
00:30:12,519 --> 00:30:15,119
part of wanting to control the deployment is to know

574
00:30:15,160 --> 00:30:18,359
what it's impacting, to have better security controls on it.

575
00:30:18,680 --> 00:30:22,400
When you leave that too loose, you get surprised. Sometimes,

576
00:30:23,000 --> 00:30:25,119
you know, a new version of that app gets deployed,

577
00:30:25,160 --> 00:30:27,400
breaks this other thing over there, or gets a new

578
00:30:27,400 --> 00:30:29,920
security acount of that, or you know, lights off the

579
00:30:29,960 --> 00:30:32,799
seam right Like I've seen this happen where we didn't

580
00:30:32,799 --> 00:30:34,599
tell it that it's going to message this way, and

581
00:30:34,599 --> 00:30:37,839
suddenly it looks like a Dodos attack. The app operating normally,

582
00:30:37,960 --> 00:30:40,839
like the whole security system just goes berserk because we

583
00:30:40,880 --> 00:30:42,079
did this deployment.

584
00:30:42,160 --> 00:30:46,319
Speaker 1: Like I love Poalumi, especially when you fry it, you know,

585
00:30:46,799 --> 00:30:51,119
because it doesn't melt so fast. It's really good. Geez.

586
00:30:52,279 --> 00:30:54,279
And on that happy note, let's take a little break.

587
00:30:54,319 --> 00:30:57,480
We'll be right back after these very important messages stick around.

588
00:30:59,559 --> 00:31:02,279
Did you know that you can work with AWS directly

589
00:31:02,319 --> 00:31:07,880
from your ide AWS provides toolkits for visual Studio, Visual Studio,

590
00:31:07,960 --> 00:31:12,119
Code and jet Brains Rider. Learn more at aws dot

591
00:31:12,160 --> 00:31:16,240
Amazon dot com, slash net, slash tools.

592
00:31:19,400 --> 00:31:21,680
Speaker 2: And we're back. It's Donna Rocks. I'm Richard Campbell. That's

593
00:31:21,680 --> 00:31:25,400
Carl Franklin. Hey, hey here with our friend Chris and

594
00:31:25,480 --> 00:31:27,799
I seem to have fallen into the grumpy Sisaben role

595
00:31:27,880 --> 00:31:30,680
for this show, which I'm okay with because I know

596
00:31:30,680 --> 00:31:32,359
how to say no is good A where anyway?

597
00:31:32,640 --> 00:31:33,119
Speaker 1: My friend?

598
00:31:34,079 --> 00:31:36,799
Speaker 2: But I think, you know, we speak to this really

599
00:31:36,960 --> 00:31:40,759
challenging dynamic of you're building this complex software at the

600
00:31:40,759 --> 00:31:43,400
point where you have a tool like Aspire to help

601
00:31:43,440 --> 00:31:48,359
you with its construction and deployment, and your administrators need

602
00:31:48,400 --> 00:31:50,160
to understand it and you need to know where to

603
00:31:50,200 --> 00:31:52,480
interface with them, and it's obviously that deployment piece of

604
00:31:52,559 --> 00:31:55,480
telemetry piece, that services piece, Like that's a lot of

605
00:31:55,480 --> 00:31:58,559
conversations to have, like do you try and have that

606
00:31:58,599 --> 00:32:00,920
in advance or you just build some Aspire and see

607
00:32:00,920 --> 00:32:01,279
how it go.

608
00:32:01,640 --> 00:32:04,480
Speaker 4: I would probably recommend having a conversation ahead of time

609
00:32:04,640 --> 00:32:07,480
because it kind of sucks when you spend a year

610
00:32:07,559 --> 00:32:09,839
building something and then you try to deploy it and

611
00:32:10,000 --> 00:32:15,519
opskys goes Nope, no, that's where I think, I'm not

612
00:32:15,559 --> 00:32:18,640
one hundred percent sure that I enjoy your I think

613
00:32:18,680 --> 00:32:22,839
that Aspire is going in the right direction of pushing. Hey,

614
00:32:22,640 --> 00:32:26,480
the configuration of the publishing goes to the developer. Once again,

615
00:32:27,359 --> 00:32:30,319
that doesn't work in a lot of areas unless your

616
00:32:30,400 --> 00:32:33,599
company then is big enough to build their own custom publishers.

617
00:32:33,920 --> 00:32:37,400
Because they now with the experimental stuff in aspires, it

618
00:32:37,480 --> 00:32:40,599
makes it possible for you for an organization to actually

619
00:32:40,640 --> 00:32:43,839
build something that is custom for their organization, which I

620
00:32:43,839 --> 00:32:47,240
guess would be a thing. But then the ops team

621
00:32:47,359 --> 00:32:50,759
needs to spec spence that specify that very well, and

622
00:32:50,799 --> 00:32:52,599
then the dev team has to build it for them

623
00:32:52,640 --> 00:32:55,440
and everything. But then if you you can then reuse

624
00:32:55,480 --> 00:32:56,880
that in theory at least.

625
00:32:56,759 --> 00:32:59,279
Speaker 2: Yeah, I mean, I can see this being a real

626
00:32:59,400 --> 00:33:03,119
battle for the first deploy of the app. But once

627
00:33:03,160 --> 00:33:08,119
we get to an agreement, all that on that. Like you,

628
00:33:08,119 --> 00:33:10,720
you know, we're back to those old agile mindsets. If

629
00:33:10,720 --> 00:33:12,400
I want to be able to iterate quickly, so if

630
00:33:12,440 --> 00:33:15,920
I'm living within the constraints that have passed through the administrators.

631
00:33:15,920 --> 00:33:18,279
Once that the security contest is going to remain the same.

632
00:33:18,279 --> 00:33:22,079
Telemetry context is the same, the deployment pipeline is the same. Hey,

633
00:33:22,119 --> 00:33:26,200
deploy away. You know, don't interrupt me constantly with your

634
00:33:26,759 --> 00:33:29,079
next weird deploy Like I want to be highly involved

635
00:33:29,119 --> 00:33:32,079
in the first couple and after that, I'm kind of

636
00:33:32,160 --> 00:33:34,599
keen to let you guys iterate and get your features

637
00:33:34,640 --> 00:33:37,920
out without having a fight with us too much, or

638
00:33:37,960 --> 00:33:42,359
that we only talk about the delta. Hey, new telemetery here.

639
00:33:43,160 --> 00:33:45,839
You know, you need a new plumber in here. Oh

640
00:33:45,839 --> 00:33:50,200
my goodness, we need new service here. Yeah, I would hope.

641
00:33:50,319 --> 00:33:54,000
I mean, I just and buy me pizza and we

642
00:33:54,000 --> 00:33:56,960
can talk right, like honestly.

643
00:33:57,079 --> 00:34:00,480
Speaker 4: Yeah, if you're that Adamin guy, I'd have to buy

644
00:34:00,519 --> 00:34:05,160
you a pizza. I my current or my current client is.

645
00:34:05,640 --> 00:34:09,199
It's not that idea. Uh, it's it's a very strict

646
00:34:09,320 --> 00:34:15,280
it's the every single application in the whole enterprise needs

647
00:34:15,320 --> 00:34:19,760
to be deployed using the same pipeline in Jenkins oh boy,

648
00:34:19,840 --> 00:34:25,000
Jenkins boy, and mostly focused on Java as well, so

649
00:34:25,159 --> 00:34:28,920
getting in there was kind of an interesting little way

650
00:34:28,960 --> 00:34:31,719
as well. So yeah, we've tried to fly under the

651
00:34:31,800 --> 00:34:34,039
radar and get our stuff done without having to talk

652
00:34:34,079 --> 00:34:36,440
too much to it and sorted it out, and like

653
00:34:36,480 --> 00:34:39,480
I said, reusing sequel for as much as possible because

654
00:34:39,480 --> 00:34:40,880
that's already there and needs to use.

655
00:34:42,159 --> 00:34:46,079
Speaker 2: Yeah, you're literally doing staying within the guardline so you

656
00:34:46,239 --> 00:34:48,800
don't have to talk to them make it easier. Yeah,

657
00:34:48,840 --> 00:34:49,639
I appreciate that.

658
00:34:49,760 --> 00:34:51,480
Speaker 1: I think I told this story before when we were

659
00:34:51,480 --> 00:34:54,639
talking about Aspire, but one of my customers wanted to

660
00:34:54,960 --> 00:35:00,360
aspireify their Blazer server application. So the only real issue

661
00:35:00,400 --> 00:35:07,960
they had was we're using poly and you know, the

662
00:35:07,599 --> 00:35:15,079
the stuff for for that is the HTTP Client Factory

663
00:35:15,800 --> 00:35:18,800
I think, and that's what Aspire uses. So there was

664
00:35:18,880 --> 00:35:25,719
like two you know systems going on there for for

665
00:35:25,880 --> 00:35:30,320
dealing with network outages and things. But that was right.

666
00:35:30,480 --> 00:35:32,840
Speaker 4: Yeah, and that that can be fixed as well because

667
00:35:33,000 --> 00:35:36,639
all of that retry policy stuff for the client factories

668
00:35:36,679 --> 00:35:40,480
in the services default project, so you can you can

669
00:35:40,519 --> 00:35:43,679
either in case, you can either move the police stuff

670
00:35:43,679 --> 00:35:45,800
that you have built in the previous system through there,

671
00:35:46,079 --> 00:35:48,360
or you can remove your police stuff and use the

672
00:35:48,400 --> 00:35:50,639
services to fault and you should be good to go. Yeah,

673
00:35:51,239 --> 00:35:54,280
and I really I must admit I love that approach

674
00:35:54,320 --> 00:35:57,519
of having the Services default project where hey, here is

675
00:35:57,599 --> 00:36:00,360
everything we're doing and it's in C sharp format, where

676
00:36:00,400 --> 00:36:04,119
it's not a gazillion configuration things you need to plug into.

677
00:36:04,239 --> 00:36:06,280
We will give you the C sharp code. It just

678
00:36:06,320 --> 00:36:13,840
makes everything so much easier and exactly Yamo. Yeah, and

679
00:36:13,840 --> 00:36:15,039
it's not even Jason.

680
00:36:15,000 --> 00:36:16,800
Speaker 2: Yeah right, it's its own thing.

681
00:36:17,079 --> 00:36:21,320
Speaker 4: Yeah, the configuration code is always preferable in my world.

682
00:36:22,320 --> 00:36:24,920
It just makes it easier to have it in one

683
00:36:24,960 --> 00:36:26,880
place when you're a developer. I guess it's it makes

684
00:36:26,880 --> 00:36:28,559
it harder when you and admin and you need to

685
00:36:28,599 --> 00:36:31,519
maintain it afterwards, but it's don't know, I like having

686
00:36:31,519 --> 00:36:33,599
it as much as possible in code.

687
00:36:34,000 --> 00:36:37,559
Speaker 2: Yeah, me too. What about testing? Like, what's your testing

688
00:36:37,599 --> 00:36:40,360
strategy for these apps in this style? Like? Is there

689
00:36:40,360 --> 00:36:43,639
anything special? Once you're scaffolding like this, I have.

690
00:36:43,559 --> 00:36:47,119
Speaker 4: A very very specific way of testing. Actually, an Aspire

691
00:36:47,280 --> 00:36:50,559
unfortunately doesn't help with that in any way, shape or form.

692
00:36:51,159 --> 00:36:53,880
So there is a there is a test So there's

693
00:36:53,920 --> 00:36:57,440
the NBC test server thingy, which has got nothing to

694
00:36:57,440 --> 00:36:59,679
do with MBC at all. It's just a new GET

695
00:36:59,719 --> 00:37:03,360
package just named that unfortunately. But it runs your API

696
00:37:03,480 --> 00:37:06,000
in memory, and there's a there's a similar version for

697
00:37:06,599 --> 00:37:09,199
Aspire that can run you to do smoke tests and

698
00:37:09,239 --> 00:37:12,760
things like that. The problem is that you can't do

699
00:37:12,880 --> 00:37:15,960
any mocking. You can't fake any services because of the

700
00:37:16,000 --> 00:37:19,639
way that Aspire works, and that means that to me,

701
00:37:21,199 --> 00:37:23,880
it doesn't really work for testing. So what we're doing,

702
00:37:23,920 --> 00:37:25,639
and I do in most of my project is for

703
00:37:25,719 --> 00:37:29,840
all of the API projects, I use I tested those individually,

704
00:37:30,159 --> 00:37:32,320
and then I use the in memory test server for

705
00:37:32,440 --> 00:37:34,960
those and I verify that all of the Jason stuff

706
00:37:34,960 --> 00:37:38,159
comes back as I expected to. And I also like

707
00:37:38,400 --> 00:37:40,480
doing it integration style all the way down to the

708
00:37:40,559 --> 00:37:42,480
database and not back up again, so I know that

709
00:37:42,559 --> 00:37:44,360
it really works with all the layers.

710
00:37:44,639 --> 00:37:47,719
Speaker 2: Nice. Yeah, yeah. And the main thing is you want

711
00:37:47,719 --> 00:37:49,679
it automated as part of the pipeline as well, or

712
00:37:49,679 --> 00:37:52,159
at least you know so you're always checking.

713
00:37:52,079 --> 00:37:56,199
Speaker 4: YEP, and currently we don't have that in my project.

714
00:37:56,280 --> 00:37:59,280
But it's funny because I've been building the APIs for

715
00:37:59,360 --> 00:38:03,079
our system and I've only done tests. So I have

716
00:38:03,280 --> 00:38:05,239
all my integration tests and they go green, and I

717
00:38:05,280 --> 00:38:06,960
say it works. And then I have front end people

718
00:38:07,079 --> 00:38:10,480
building a React front end and they come and complain

719
00:38:10,519 --> 00:38:13,000
but it doesn't work. But I haven't actually fired up

720
00:38:13,039 --> 00:38:15,159
the front end on my machine for about a year

721
00:38:16,599 --> 00:38:19,559
and it's actually worked. It's worked pretty well because I

722
00:38:19,599 --> 00:38:21,800
we agree on the contract of what they want to

723
00:38:21,800 --> 00:38:25,000
get from the end point the end point, I write

724
00:38:25,039 --> 00:38:28,679
the test to verify that the endpoint. It does what

725
00:38:28,760 --> 00:38:30,760
it says and comes back in the right format and

726
00:38:30,800 --> 00:38:32,280
it looks right, and then it.

727
00:38:32,159 --> 00:38:34,039
Speaker 1: Doesn't show up on the browser. That's your problem.

728
00:38:34,119 --> 00:38:38,760
Speaker 4: Yeah, pretty much like that. Yeah, it does break once

729
00:38:38,800 --> 00:38:41,400
in a while, but it works nice. And I like

730
00:38:41,480 --> 00:38:44,320
the fact that you can go to and from API

731
00:38:44,440 --> 00:38:48,000
to database and verify the jobs or the Jason that

732
00:38:48,079 --> 00:38:51,679
comes back because you know that that really works. It's

733
00:38:51,719 --> 00:38:54,599
not I'm not a big fan of unit tests as

734
00:38:54,639 --> 00:38:58,360
such because they don't show you your system actually working.

735
00:38:58,360 --> 00:39:01,880
Speaker 2: In my opinion, Well, that's yeah, that's not what unit

736
00:39:01,920 --> 00:39:04,519
tests are really for, right, Like you need you need

737
00:39:04,519 --> 00:39:07,360
a more than kind of tests. Tests are for you

738
00:39:07,480 --> 00:39:10,519
running locally as you're doing builds.

739
00:39:09,519 --> 00:39:12,840
Speaker 4: And it's it's mostly if you to me, unit tests

740
00:39:12,840 --> 00:39:15,559
are great if you have really complex code like that

741
00:39:15,679 --> 00:39:20,280
does a lot of complex stuff, but ninety percent of

742
00:39:20,360 --> 00:39:23,400
our systems don't do very complex stuff. You can look

743
00:39:23,400 --> 00:39:25,079
at the code and go, I know that this is

744
00:39:25,079 --> 00:39:27,960
going to work because I can see the code, and

745
00:39:28,000 --> 00:39:30,639
then I don't feel like writing a gazillion unit test

746
00:39:30,719 --> 00:39:32,679
on that because it's that simple.

747
00:39:32,760 --> 00:39:33,400
Speaker 2: It's plumbing.

748
00:39:33,480 --> 00:39:36,360
Speaker 1: I think a lot of the things that were complex

749
00:39:36,440 --> 00:39:42,159
that we used to use, uh, you know, test first

750
00:39:42,559 --> 00:39:47,280
for a test driven development for is all the stuff

751
00:39:47,320 --> 00:39:50,320
that the browser does now that we used to have

752
00:39:50,360 --> 00:39:52,960
to hand code. Like you know, me as a Blazer developer,

753
00:39:53,880 --> 00:39:56,920
I don't do any of that old crazy Ajax stuff,

754
00:39:57,000 --> 00:40:03,639
you know anymore. And the way that architecture has evolved,

755
00:40:04,239 --> 00:40:07,039
it's just, you know something's too complex, you just break

756
00:40:07,079 --> 00:40:09,880
it apart, and then you have two or three pieces

757
00:40:09,880 --> 00:40:12,320
where you had one, and you put unit tests around them,

758
00:40:12,320 --> 00:40:16,119
and Bob's your uncle. So yeah, I think the whole

759
00:40:16,280 --> 00:40:22,039
idea of complex code in general is, you know, things

760
00:40:22,039 --> 00:40:22,920
have gotten simpler.

761
00:40:23,079 --> 00:40:24,719
Speaker 4: I think, yeah, I think in most cases you can

762
00:40:24,800 --> 00:40:27,039
break it down. And like I said, I don't do

763
00:40:27,079 --> 00:40:28,880
a lot of unit test, but I spent the entire

764
00:40:28,920 --> 00:40:33,719
day to day writing actually unit tests on a serialization

765
00:40:33,840 --> 00:40:37,719
stuff that we're building. But I don't care about the

766
00:40:37,840 --> 00:40:40,519
unit test ask tests. To be perfectly honest, I don't

767
00:40:40,559 --> 00:40:43,599
care about them verifying my code. I care about being

768
00:40:43,639 --> 00:40:46,159
able to write click and say run tests so that

769
00:40:46,199 --> 00:40:47,840
I can run it without having to spin it up,

770
00:40:47,840 --> 00:40:49,599
so I can make a change, I can run the

771
00:40:49,599 --> 00:40:51,559
test and also going, hey, I want to debug this

772
00:40:51,639 --> 00:40:54,280
to see what this value is. Right now, debug test

773
00:40:54,440 --> 00:40:57,599
is just so much simpler than having to run an application.

774
00:40:57,719 --> 00:41:00,599
So I believe that there are definitely cases unit tests

775
00:41:00,599 --> 00:41:04,360
are nice, but they're not for finding bugs or checking

776
00:41:04,360 --> 00:41:06,480
my code in most cases because that gets checked by

777
00:41:06,519 --> 00:41:07,599
the integration tests.

778
00:41:08,639 --> 00:41:11,280
Speaker 2: There's a whole there's a whole conversation yet to be

779
00:41:11,360 --> 00:41:15,519
had here about the structure of testing in these cloud

780
00:41:15,559 --> 00:41:19,079
apps now, like even how you break down testing a

781
00:41:19,079 --> 00:41:21,920
given service or testing your end against a mock of

782
00:41:21,960 --> 00:41:25,920
a service like this has all gotten really complicated, it has,

783
00:41:27,239 --> 00:41:30,000
and I'm just impressed with just how much people just

784
00:41:30,159 --> 00:41:32,960
test in production now because you can always roll back,

785
00:41:33,119 --> 00:41:34,760
you know. It's like you can fight for a long

786
00:41:34,800 --> 00:41:37,119
time to find a way to test is independentally or

787
00:41:37,159 --> 00:41:41,639
you could ship and see you and roll back if

788
00:41:41,679 --> 00:41:42,400
you must, And.

789
00:41:42,440 --> 00:41:46,199
Speaker 4: I think some were some were in I prefer not

790
00:41:46,280 --> 00:41:48,159
to test it in production if I can get a

791
00:41:48,400 --> 00:41:51,960
get away from it. But yeah, the closer you can

792
00:41:52,039 --> 00:41:55,880
get to production tests, the better it is, obviously, because

793
00:41:55,920 --> 00:41:57,719
it's it's going to be what the users are going

794
00:41:57,800 --> 00:41:58,159
to use.

795
00:41:58,400 --> 00:41:58,599
Speaker 1: Right.

796
00:41:59,360 --> 00:42:04,400
Speaker 4: Yeah, we've I've done several different iterations. I think all

797
00:42:04,480 --> 00:42:06,760
developers have done that over the years, trying to figure

798
00:42:06,760 --> 00:42:09,440
out what works for you and how do we make

799
00:42:09,480 --> 00:42:13,400
this work. And especially in a service oriented architecture where

800
00:42:13,840 --> 00:42:18,239
we've got HTV services, if you can just define the

801
00:42:18,440 --> 00:42:22,320
interfaces and basically document how they work, then I think

802
00:42:22,360 --> 00:42:25,159
it works pretty well even if you're distributed, because you

803
00:42:25,159 --> 00:42:29,880
can verify one service individually from another one. And even better,

804
00:42:30,039 --> 00:42:33,400
to be perfectly honest, is don't let other teams use

805
00:42:33,440 --> 00:42:38,199
your service. Give them an SDK style project. Instead, give

806
00:42:38,239 --> 00:42:40,400
them a new gift package that has methods on it

807
00:42:40,440 --> 00:42:43,880
that you control that calls your API, which means that

808
00:42:43,920 --> 00:42:47,360
they can just add your SDK client to their system

809
00:42:47,440 --> 00:42:50,159
and call it like a c sharp thing. And you're

810
00:42:50,199 --> 00:42:53,000
in control of the API, but you're also in control

811
00:42:53,039 --> 00:42:55,280
of the thing calling the API, which means that it's

812
00:42:55,360 --> 00:42:57,199
easier for you to verify that it works and it's

813
00:42:57,199 --> 00:42:58,960
easier for you to make changes.

814
00:42:59,360 --> 00:43:05,280
Speaker 2: Yeah, for sure. And plus you know the incremental updating

815
00:43:05,360 --> 00:43:08,519
instead of change model and a B testing. All these

816
00:43:08,559 --> 00:43:12,639
strategies about not needing a huge testing framework that the

817
00:43:12,639 --> 00:43:15,199
little things that you could trial, and even dark featuring

818
00:43:15,800 --> 00:43:19,239
in the field is ways to test stuff without having

819
00:43:19,280 --> 00:43:22,880
to build a huge test infrastructure and limiting your impact

820
00:43:22,880 --> 00:43:25,199
if you do make mistakes, so that often you can

821
00:43:25,280 --> 00:43:28,440
just feature switch something back off again and then the

822
00:43:28,480 --> 00:43:30,719
next bill will try and make another iteration.

823
00:43:30,360 --> 00:43:33,480
Speaker 1: On it or feature switch it on for just the

824
00:43:33,519 --> 00:43:38,400
admin users you know, or or you the tester, so

825
00:43:38,480 --> 00:43:40,760
you can test it without giving the feature everybody.

826
00:43:41,280 --> 00:43:43,760
Speaker 2: Mm hmm. Yeah, I think it's.

827
00:43:43,360 --> 00:43:44,159
Speaker 1: Just using the old nag.

828
00:43:44,280 --> 00:43:47,239
Speaker 4: And there's an interesting thing as well with if we

829
00:43:47,320 --> 00:43:50,199
go back to the Aspire stuff and testing is as

830
00:43:50,199 --> 00:43:51,840
I said, I don't do a lot of testing like

831
00:43:52,119 --> 00:43:55,599
with Aspire, but I kind of like with the service

832
00:43:55,639 --> 00:43:58,880
discovery built into Aspire, it actually allows you to mock

833
00:43:59,039 --> 00:44:05,079
external resources as well, very very easily. So in tests

834
00:44:05,119 --> 00:44:07,679
you can go and say, hey, I have this external resource,

835
00:44:07,719 --> 00:44:10,800
but it's your own mocked service, and then for production

836
00:44:10,920 --> 00:44:12,679
you go and say, I have this service over here

837
00:44:12,719 --> 00:44:15,840
that we want to use. That's actually a very nice

838
00:44:15,920 --> 00:44:18,519
feature to do as well, because it means that you

839
00:44:17,880 --> 00:44:20,599
don't have to mock everything in your code. You can

840
00:44:20,599 --> 00:44:23,199
actually mock the API that you're using instead, which is

841
00:44:23,239 --> 00:44:26,119
a nice little benefit of having Aspire in place.

842
00:44:26,360 --> 00:44:29,280
Speaker 2: Nice, So what's missing from Aspire at this point, Like,

843
00:44:29,320 --> 00:44:31,960
we haven't really dug into the latest version nine point

844
00:44:32,000 --> 00:44:34,880
five at all. I'm going to do a separate show

845
00:44:34,920 --> 00:44:36,800
on that, but you know.

846
00:44:37,440 --> 00:44:39,480
Speaker 4: Yeah, I haven't looked at it either.

847
00:44:39,519 --> 00:44:42,320
Speaker 2: To be honest, it's moving for relatively rapidly. We think

848
00:44:42,519 --> 00:44:45,719
we did that original nine to oh show with David

849
00:44:46,400 --> 00:44:49,719
in January of twenty four, so you know, here we're

850
00:44:49,760 --> 00:44:52,400
not We're just over a year and a half on

851
00:44:52,639 --> 00:44:55,239
and we've had incremental updates. I don't think they're going

852
00:44:55,280 --> 00:44:58,599
to increment from nine until dot net ten ships obviously

853
00:45:00,039 --> 00:45:03,639
would be my guess, but they have pushed out a

854
00:45:03,679 --> 00:45:07,360
dot change every few months. But do you stuff see

855
00:45:07,440 --> 00:45:09,320
things that are missing from it? Still?

856
00:45:11,000 --> 00:45:13,280
Speaker 4: The thing is, it's really hard because I know I

857
00:45:13,679 --> 00:45:15,079
use the things that are in there, and I have

858
00:45:15,119 --> 00:45:17,519
a really hard time saying like, well, this is really missing. Yes,

859
00:45:17,599 --> 00:45:20,719
I think the testing part is missing, and I've talked

860
00:45:20,760 --> 00:45:26,760
to the David and Damien about that and they know

861
00:45:26,920 --> 00:45:31,079
it's missing. But there's also not a very easy fix

862
00:45:31,159 --> 00:45:36,320
for it as such. Unfortunately, the thing about them shipping

863
00:45:36,400 --> 00:45:39,360
very rapidly on the other hand is also that some

864
00:45:39,400 --> 00:45:41,639
of the things are under experimental as well, so you

865
00:45:41,679 --> 00:45:44,840
actually or the mark experimental, so you actually have to

866
00:45:44,880 --> 00:45:46,480
go and say, if I want to use this feature,

867
00:45:46,519 --> 00:45:48,480
I need to turn off a bunch of warnings and things.

868
00:45:49,280 --> 00:45:52,920
I don't know. I get that they want to get

869
00:45:52,960 --> 00:45:56,440
it out there, but I'd rather have experimental things in

870
00:45:56,519 --> 00:45:59,719
a non released version. So basically you had a release

871
00:45:59,880 --> 00:46:02,880
vers non release version of it before and then not

872
00:46:03,000 --> 00:46:06,280
put it into the release version until it's not experimental anymore,

873
00:46:06,719 --> 00:46:09,239
because you can't really take a dependency on everything that

874
00:46:09,440 --> 00:46:12,519
is in there, even if it's not a release candidate

875
00:46:12,719 --> 00:46:15,159
or sorry, even if it's a if it's a release version.

876
00:46:16,199 --> 00:46:19,440
But that's just them iterating quickly, I guess. So we're

877
00:46:19,480 --> 00:46:20,880
going to have to live with that for a while,

878
00:46:23,360 --> 00:46:26,519
and that's that's good. They are iterating that quick rappily,

879
00:46:26,599 --> 00:46:28,840
and it's really hard to actually follow along with everything

880
00:46:28,840 --> 00:46:32,239
that's going going out because there's new stuff, but they're

881
00:46:32,280 --> 00:46:35,440
also there's most of this stuff that comes out is

882
00:46:35,960 --> 00:46:39,559
in my opinion, a lot of little edge cases, a

883
00:46:39,599 --> 00:46:42,079
little scenarios that they're trying to figure out that's missing

884
00:46:42,079 --> 00:46:44,599
that I haven't run into in other cases. I think

885
00:46:44,880 --> 00:46:47,840
the last thing they did was the publisher's stuff, which

886
00:46:47,880 --> 00:46:52,000
is undocumented and experimental at the moment. That is going

887
00:46:52,039 --> 00:46:54,719
to be interesting if they can get it into a

888
00:46:54,760 --> 00:46:57,320
non experimental state and maybe make it a bit easier

889
00:46:57,320 --> 00:47:02,320
for you to build a publisher, and also maybe document

890
00:47:02,400 --> 00:47:05,480
how to build a publisher because it's undocumented at the moment,

891
00:47:06,440 --> 00:47:11,239
So I had to build one for a demo I'm

892
00:47:11,239 --> 00:47:13,599
doing for one of my talks, and the only way

893
00:47:13,639 --> 00:47:15,519
to figure out how it works is to look at

894
00:47:15,519 --> 00:47:17,679
the open source versions one of the other open source

895
00:47:17,800 --> 00:47:19,840
versions and copy the code from there and then start

896
00:47:20,039 --> 00:47:24,880
messing with it. And that's Yes, they're releasing quickly, but

897
00:47:25,440 --> 00:47:28,320
it's not documented either, so it can be a bit

898
00:47:28,320 --> 00:47:29,880
hard to pick up the new stuff as well.

899
00:47:30,199 --> 00:47:32,639
Speaker 2: Yeah, yeah, I don't extend. All these things are moving

900
00:47:32,679 --> 00:47:35,039
so quickly, so they think it's challenging to try and

901
00:47:35,039 --> 00:47:39,719
step in there and aspire. To me, has always been

902
00:47:39,719 --> 00:47:42,960
a brown fieldy kind of thing, like you're not really

903
00:47:43,039 --> 00:47:46,000
starting apps from scratch in this class. It's pretty rare,

904
00:47:46,039 --> 00:47:49,239
So you're trying to get more cloud centric on an

905
00:47:49,280 --> 00:47:52,480
existing application and you can interspend it aspire into it,

906
00:47:52,920 --> 00:47:54,400
or are you getting a chance to start from the

907
00:47:54,480 --> 00:47:55,880
beginning with Aspire.

908
00:47:56,360 --> 00:47:59,239
Speaker 4: I start everything from scratch with Aspire to perfect honest,

909
00:47:59,280 --> 00:48:03,559
But I I work in a world where I only

910
00:48:03,599 --> 00:48:05,599
do I normally only do three to six months of

911
00:48:05,679 --> 00:48:09,519
the project because of well, I guess ADHD or something

912
00:48:09,599 --> 00:48:15,880
like that. I can't. It's I'm happy that I have

913
00:48:16,000 --> 00:48:19,480
my employer active solution that supports that, because I actually,

914
00:48:20,199 --> 00:48:23,440
if I get into a project that isn't fun, I

915
00:48:23,480 --> 00:48:29,320
actually get depressed and it goes bad sometimes. So being

916
00:48:29,360 --> 00:48:32,280
that I only go onto projects very very rapidly like that,

917
00:48:32,800 --> 00:48:34,679
it also means I often go on new stuff. So

918
00:48:34,719 --> 00:48:37,320
I will come in, I will build the foundational stuff,

919
00:48:37,320 --> 00:48:39,320
and then once the foundational stuff is up, I will

920
00:48:39,360 --> 00:48:41,679
move on to something else. So I'm one of those

921
00:48:41,760 --> 00:48:44,440
lucky people that actually do get to do Aspire new

922
00:48:44,559 --> 00:48:46,000
and then start from scratch.

923
00:48:46,760 --> 00:48:47,159
Speaker 2: Very nice.

924
00:48:47,760 --> 00:48:50,840
Speaker 4: We didn't do it quite in this project. We actually

925
00:48:50,880 --> 00:48:54,280
worked and had two services up and running before we

926
00:48:54,400 --> 00:48:57,000
put Aspire in place, but it was still very very

927
00:48:57,039 --> 00:48:58,840
early days as such.

928
00:48:59,320 --> 00:48:59,480
Speaker 2: Right.

929
00:49:00,840 --> 00:49:02,840
Speaker 4: But I'm also saying, like you say, brown Field stuff,

930
00:49:02,840 --> 00:49:05,719
I say that to everybody. It's if you've got a

931
00:49:05,760 --> 00:49:09,920
solution that has more than one project in it. See

932
00:49:09,920 --> 00:49:11,559
if you can get aspired to work, because it's going

933
00:49:11,639 --> 00:49:14,079
to make everything easier to work with. And honestly, if

934
00:49:14,119 --> 00:49:18,719
you only have one project but it's slightly complex, put

935
00:49:18,760 --> 00:49:21,519
a spire onto and anyway, so you get the dashboard,

936
00:49:21,599 --> 00:49:24,440
you get the open telemetry. No, you don't need the

937
00:49:24,519 --> 00:49:27,199
retripolsies and all the stuff that you get for free,

938
00:49:27,239 --> 00:49:31,679
but just the open telemetry dashboard and the ability to

939
00:49:31,679 --> 00:49:33,960
plug into that and being able to see your logs

940
00:49:33,960 --> 00:49:37,320
in a nicer way, that's worth it for a single,

941
00:49:37,440 --> 00:49:39,400
single project solution in my opinion, right.

942
00:49:39,480 --> 00:49:40,559
Speaker 2: Right, Yeah, I bet that.

943
00:49:40,559 --> 00:49:42,199
Speaker 1: Well, I'm going to keep that in mind as I

944
00:49:42,239 --> 00:49:46,440
go into this. We're doing this live, you know, aspire

945
00:49:46,440 --> 00:49:48,079
ify dot net rocks dot com.

946
00:49:48,159 --> 00:49:51,599
Speaker 2: Yeah, and you're living the dream and the adventure man

947
00:49:51,719 --> 00:49:55,079
like I hope that's as well. Well, and again time

948
00:49:55,079 --> 00:49:56,559
shifting it'll have already happened.

949
00:49:57,679 --> 00:49:59,000
Speaker 1: We hope, we hope.

950
00:50:01,079 --> 00:50:04,239
Speaker 2: But I mean, I was appreciate Chris. You haven't done

951
00:50:04,320 --> 00:50:07,280
one project, Inspire, You've done a bunch. You wouldn't keep

952
00:50:07,360 --> 00:50:08,920
using this if it wasn't actually helping you.

953
00:50:09,000 --> 00:50:14,079
Speaker 4: No, no, no, no, it's it's awesome. It's also I'm

954
00:50:14,199 --> 00:50:17,639
not an AI person at least Richard, you know that

955
00:50:17,679 --> 00:50:20,000
we've had conversations about that, and I have opinion it's

956
00:50:20,000 --> 00:50:23,320
about AI and everything. If you're sort of wanting to

957
00:50:23,360 --> 00:50:27,280
be a bit bleeding edge in the Microsoft sphere, it's

958
00:50:27,320 --> 00:50:30,000
either AI or Aspire. There's nothing else to actually look

959
00:50:30,000 --> 00:50:33,079
at at the moment the thing that comes out. But

960
00:50:33,519 --> 00:50:36,920
having that stat I actually love Aspire. I've loved the

961
00:50:36,960 --> 00:50:40,320
idea of it since I saw the first like release

962
00:50:41,280 --> 00:50:43,400
version that they've showed to the m v P s,

963
00:50:43,599 --> 00:50:46,800
and there's I don't know, it just solves so many

964
00:50:47,039 --> 00:50:52,440
little little things. It's not overwhelmingly wow, this is awesome,

965
00:50:52,599 --> 00:50:56,679
it will change revolutionize my world, but it solves a

966
00:50:56,719 --> 00:51:00,280
bunch of little things that annoy you every day and

967
00:51:00,360 --> 00:51:02,880
every time you press F five to start your application.

968
00:51:04,480 --> 00:51:06,559
It's I don't know, it's it's hard to say about

969
00:51:06,599 --> 00:51:10,480
those little things make it a little more more enjoyable.

970
00:51:10,519 --> 00:51:12,079
It's actually right code, and I think.

971
00:51:11,920 --> 00:51:14,679
Speaker 2: It does strike me as a strategy to get gradually pregnant.

972
00:51:14,679 --> 00:51:17,519
All in this case, we're talking a gradually cloud native

973
00:51:17,719 --> 00:51:21,079
that yes, you you know, as you learn more about

974
00:51:21,079 --> 00:51:23,679
what it is to live in the cloud. ASPIRER was

975
00:51:23,719 --> 00:51:27,119
already there and ready to help you with the next problem. Yeah,

976
00:51:27,239 --> 00:51:31,559
that's it. I appreciate that he had. Davids did a

977
00:51:31,599 --> 00:51:34,480
good job of letting us gradually get involved and think

978
00:51:34,559 --> 00:51:36,840
more cloud dative. You don't have to jump out climb

979
00:51:36,920 --> 00:51:39,320
up this huge cliff before anything works, right.

980
00:51:39,280 --> 00:51:40,880
Speaker 4: No, because that's kind of like you said, like it

981
00:51:41,119 --> 00:51:44,360
started off talking about a bit about Kubernetes, because I've

982
00:51:44,639 --> 00:51:46,719
been into the Kubernetes area as well for a while,

983
00:51:46,719 --> 00:51:49,880
and it's that's a that's a steep hill to climb

984
00:51:49,960 --> 00:51:52,880
before you get anything done. And then once you understand

985
00:51:52,920 --> 00:51:55,760
Kuberneties and you have to start doing helm charts and

986
00:51:55,800 --> 00:51:59,679
deployment pipelines for that, it's it's a pain, and it

987
00:51:59,719 --> 00:52:02,679
does and solve your local development in any way either.

988
00:52:02,800 --> 00:52:04,840
So it's I don't know. I think this is a

989
00:52:04,960 --> 00:52:08,800
nice way to make your day to day job easier.

990
00:52:08,960 --> 00:52:12,079
If you don't want to use it for deployment or whatever,

991
00:52:12,199 --> 00:52:14,960
that's going to have to completely fine, But your daily

992
00:52:15,119 --> 00:52:16,920
work is more enjoyable.

993
00:52:18,440 --> 00:52:19,239
Speaker 2: I appreciate that.

994
00:52:19,480 --> 00:52:21,960
Speaker 1: What's in your inbox, Chris, what's on your to do list?

995
00:52:23,760 --> 00:52:24,079
Speaker 2: Sleep?

996
00:52:26,440 --> 00:52:29,000
Speaker 4: I'm currently actually spending a lot of time working on

997
00:52:30,480 --> 00:52:33,960
I've done two new presentations that I'm working on or

998
00:52:34,239 --> 00:52:36,119
have have worked on, and we'll have to refinal a

999
00:52:36,159 --> 00:52:41,199
little bit after NBC Copenhagen working on a two day

1000
00:52:42,760 --> 00:52:49,800
really wonky workshop on Microsoft Web Development where they attendees

1001
00:52:49,840 --> 00:52:53,880
get to play with a spinnet Core minimal APIs, NBC

1002
00:52:54,039 --> 00:53:01,679
g RPC, your project or lanes as identity server and

1003
00:53:01,760 --> 00:53:04,559
some other stuff, so they basically get a little tour

1004
00:53:04,639 --> 00:53:06,920
of everything. A lot of things you can find in

1005
00:53:06,960 --> 00:53:08,480
acenet core. So that's kind of cool.

1006
00:53:08,639 --> 00:53:09,440
Speaker 1: That's very cool.

1007
00:53:10,360 --> 00:53:14,000
Speaker 4: Yeah, it's interesting going into so many different things and

1008
00:53:14,480 --> 00:53:17,280
sniff around like what can we do here, what can

1009
00:53:17,280 --> 00:53:20,199
we do there, and show people that acenet core is

1010
00:53:20,239 --> 00:53:22,000
more than mbassy.

1011
00:53:22,400 --> 00:53:25,880
Speaker 2: Yeah, yeah, it certainly is and always have been. But

1012
00:53:26,119 --> 00:53:28,480
you know, yes, it's basically the same thing you just

1013
00:53:28,519 --> 00:53:30,719
did in this past hour. Chris is like, there's more

1014
00:53:30,760 --> 00:53:32,920
to aspire than you know, and you can there's a

1015
00:53:32,920 --> 00:53:34,639
bunch of different points to grab at it. So I

1016
00:53:34,679 --> 00:53:37,280
appreciate that that you break down the pieces and say

1017
00:53:37,280 --> 00:53:38,880
you could use this, and you could use this, and

1018
00:53:39,039 --> 00:53:41,159
did you know about this? And there's lots of ways

1019
00:53:41,199 --> 00:53:41,440
to help.

1020
00:53:41,480 --> 00:53:43,960
Speaker 4: And it's also I think like most people are stuck

1021
00:53:44,039 --> 00:53:46,960
in not stuck, but most A lot of people work

1022
00:53:47,000 --> 00:53:49,599
in enterprise environments where there's you're working on the same

1023
00:53:49,679 --> 00:53:53,880
thing all the time and you get kind of shoved

1024
00:53:53,920 --> 00:53:55,960
into this corner of this is the way that it works,

1025
00:53:56,000 --> 00:53:57,840
and you don't have time to look at everything else.

1026
00:53:57,880 --> 00:53:59,920
So that was kind of the idea behind my workshop

1027
00:54:00,199 --> 00:54:03,480
was let's take people that work on maybe not so

1028
00:54:03,679 --> 00:54:06,599
cool enterprise projects and show them what else is out there,

1029
00:54:06,639 --> 00:54:08,719
so that if they come up with something new that

1030
00:54:08,800 --> 00:54:12,039
needs to be built, maybe Project or Leans can help them,

1031
00:54:12,119 --> 00:54:14,920
or building a new service using DRPC, you might be

1032
00:54:14,960 --> 00:54:17,440
easier for some things and things like that. So that's

1033
00:54:17,639 --> 00:54:18,599
the idea behind it.

1034
00:54:18,800 --> 00:54:20,400
Speaker 2: Nice, very good, I appreciate it.

1035
00:54:20,480 --> 00:54:22,960
Speaker 1: Chris. Thanks for spending an hour with us. It's been great.

1036
00:54:23,119 --> 00:54:25,079
Speaker 4: Well, thank you for having me again. It's it's always

1037
00:54:25,119 --> 00:54:26,079
awesome to be on the show.

1038
00:54:26,239 --> 00:54:31,280
Speaker 1: Ye all right, go get some sleep. We'll talk to

1039
00:54:31,320 --> 00:54:33,559
you next time on dot net rocks.

1040
00:54:54,159 --> 00:54:56,719
Speaker 5: Dot net Rocks is brought to you by Franklin's Net

1041
00:54:56,960 --> 00:55:00,920
and produced by Pop Studios, a full service audio, video

1042
00:55:01,000 --> 00:55:05,079
and post production facility located physically in New London, Connecticut,

1043
00:55:05,320 --> 00:55:10,119
and of course in the cloud. Online at PWOP dot com.

1044
00:55:10,320 --> 00:55:12,480
Visit our website at d O T N E t

1045
00:55:12,679 --> 00:55:16,719
R O c k S dot com for RSS feeds, downloads,

1046
00:55:16,880 --> 00:55:20,559
mobile apps, comments, and access to the full archives going

1047
00:55:20,599 --> 00:55:23,960
back to show number one, recorded in September two thousand

1048
00:55:24,000 --> 00:55:26,679
and two. And make sure you check out our sponsors.

1049
00:55:26,800 --> 00:55:29,800
They keep us in business. Now, go write some code.

1050
00:55:30,159 --> 00:55:30,920
See you next time.

1051
00:55:31,840 --> 00:55:33,679
Speaker 4: You got jam Vans

1052
00:55:35,719 --> 00:55:35,760
Speaker 1: And

