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

2
00:00:05,360 --> 00:00:08,560
Become a patron for just five dollars a month. You

3
00:00:08,599 --> 00:00:11,320
get access to a private RSS feed where all the

4
00:00:11,359 --> 00:00:14,560
shows have no ads. Twenty dollars a month, we'll get

5
00:00:14,599 --> 00:00:18,440
you that and a special dot NetRocks patron mug. Sign

6
00:00:18,519 --> 00:00:22,120
up now at Patreon dot dot NetRocks dot com.

7
00:00:22,160 --> 00:00:24,679
Speaker 2: Hey Carl and Richard here with your twenty twenty four

8
00:00:25,000 --> 00:00:26,000
DC schedule.

9
00:00:26,320 --> 00:00:29,640
Speaker 1: We'll be at as many NDC conferences as possible this year,

10
00:00:29,960 --> 00:00:33,200
and you should consider attending no matter what. The Copenhagen

11
00:00:33,240 --> 00:00:37,640
Developers Festival happens August twenty sixth through the thirtieth. Tickets

12
00:00:37,679 --> 00:00:40,719
at Cphdevfest dot com.

13
00:00:40,880 --> 00:00:44,719
Speaker 2: Ndcporto is happening October fourteenth through the eighteenth. Tickets at

14
00:00:44,799 --> 00:00:46,600
Ndcporto dot com.

15
00:00:46,600 --> 00:01:03,119
Speaker 1: We'll see you there, we hope. Welcome back. It's dot

16
00:01:03,200 --> 00:01:06,120
net Rox. I'm Carl Franklin and Amateur Campbell and we're

17
00:01:06,159 --> 00:01:08,359
here with Mark Rendell. We're going to introduce him in

18
00:01:08,400 --> 00:01:10,280
a minute, but first I want to check him in

19
00:01:10,319 --> 00:01:12,799
by Buddy Richard. You ready for dev Intersection Well, and

20
00:01:12,920 --> 00:01:13,719
this show publishes.

21
00:01:13,760 --> 00:01:15,400
Speaker 2: We will be most of the way through the show,

22
00:01:15,439 --> 00:01:17,519
I think we'll be close to doing like the closing

23
00:01:17,599 --> 00:01:22,200
session and stuff as we usually do. Right, Yeah, yeah, yeah, No,

24
00:01:22,280 --> 00:01:24,239
we got our got our act together, got a new

25
00:01:24,400 --> 00:01:29,200
version of a generative AI show, which has been an

26
00:01:29,200 --> 00:01:31,439
adventure to put together. Boy boy, there are a lot

27
00:01:31,439 --> 00:01:34,920
of AI conferences right now. Yeah, I know it's little nuts.

28
00:01:34,719 --> 00:01:38,640
Speaker 1: But still dev intersection with all your favorite Microsoft people

29
00:01:38,799 --> 00:01:41,000
and YE speakers.

30
00:01:40,519 --> 00:01:42,719
Speaker 2: The Hanselman's and the Hunters and all that good stuff.

31
00:01:42,760 --> 00:01:42,920
Speaker 3: Yeah.

32
00:01:42,959 --> 00:01:45,760
Speaker 1: The Scott's, Yeah, the major Scott and the lesser Scott's.

33
00:01:46,879 --> 00:01:49,400
Speaker 2: They're all vps. Now I mean this, there's one Guthrie

34
00:01:49,400 --> 00:01:52,400
but he's not there. But you know he's on sabbatical.

35
00:01:52,799 --> 00:01:53,760
What's up with that? Yeah?

36
00:01:53,760 --> 00:01:56,040
Speaker 1: What is that with that? What does Scott Guphery do

37
00:01:56,079 --> 00:01:58,760
on sabbatical? Does he read tech manuals? Does he create

38
00:01:58,799 --> 00:02:01,959
a few more patents? No, he's got teenage boys. I

39
00:02:02,000 --> 00:02:04,519
think he's got other things to worry about. Yeah, that's good.

40
00:02:04,959 --> 00:02:08,439
All right, Well let's jump into better note of framework.

41
00:02:08,560 --> 00:02:09,560
Roll the crazy music.

42
00:02:09,680 --> 00:02:18,800
Speaker 2: Awesome? Alight, do you go?

43
00:02:19,039 --> 00:02:22,000
Speaker 1: So this was our clickbait story on security this week.

44
00:02:22,360 --> 00:02:23,840
Speaker 2: But it's not clickbait if it's true.

45
00:02:24,120 --> 00:02:25,560
Speaker 1: Yeah, I know, but that's what we call him.

46
00:02:25,599 --> 00:02:27,280
Speaker 2: We called it.

47
00:02:27,400 --> 00:02:29,759
Speaker 1: The last story is always the one people want to

48
00:02:29,800 --> 00:02:32,800
hear about the most, you know, so we let them

49
00:02:32,840 --> 00:02:35,039
slog through all the other stories and then we spring

50
00:02:35,039 --> 00:02:37,000
it on them. So here it is. You're you're not

51
00:02:37,000 --> 00:02:42,639
going to believe this. Researchers find sequel injection to bypass

52
00:02:42,800 --> 00:02:45,159
Airport TSA security checks.

53
00:02:45,360 --> 00:02:45,639
Speaker 2: Nice.

54
00:02:46,000 --> 00:02:48,840
Speaker 1: So what this means is there is a vulnerability where

55
00:02:49,360 --> 00:02:53,759
somebody could use SEQL injection when they bought a ticket,

56
00:02:54,159 --> 00:02:57,560
and that ticket could give them status as crew, right,

57
00:02:57,759 --> 00:03:01,080
and then they could walk right on, go right up

58
00:03:01,120 --> 00:03:05,159
into the you know, the bulkhead seats or whatever, sit

59
00:03:05,280 --> 00:03:10,960
down and enjoy all of the crew you know amenities.

60
00:03:11,120 --> 00:03:13,280
Speaker 2: Not that there's not many of crew amenities, but yeah,

61
00:03:13,280 --> 00:03:15,080
you're definitely gonna have access to more seats.

62
00:03:15,280 --> 00:03:15,520
Speaker 1: Yeah.

63
00:03:15,599 --> 00:03:18,680
Speaker 2: The bigger one here is that you know, you can

64
00:03:18,719 --> 00:03:22,039
go to the crew line at the TSA. Yeah, yeah,

65
00:03:22,199 --> 00:03:25,159
and they that's a very cursorly view. And you don't

66
00:03:25,199 --> 00:03:27,400
have to be dressed as crew, I mean, you don't

67
00:03:27,400 --> 00:03:30,520
have to be working on that flight, right, but if

68
00:03:30,560 --> 00:03:32,800
you are crew, you get a special pass and you

69
00:03:32,879 --> 00:03:36,840
get all sorts of amenities. Yeah, interesting. Yeah, they normally

70
00:03:36,879 --> 00:03:38,919
check ID, So I wonder if you actually try to

71
00:03:38,960 --> 00:03:42,080
do that, if if when you got to the line,

72
00:03:42,080 --> 00:03:43,039
they're like, where's your ID?

73
00:03:43,319 --> 00:03:46,680
Speaker 1: Now that's just you know, raining on my parade here, Richard.

74
00:03:46,840 --> 00:03:49,960
Speaker 2: I still love that that, you know, sequel injection attacks.

75
00:03:50,039 --> 00:03:52,759
Speaker 1: Yeah, sequel injection. I thought we were done with this.

76
00:03:53,120 --> 00:03:53,319
Speaker 3: Nah.

77
00:03:53,599 --> 00:03:55,960
Speaker 2: No, still like it's number one or number two in

78
00:03:55,960 --> 00:03:56,960
the O ausp tense.

79
00:03:57,120 --> 00:04:00,159
Speaker 1: Oh of course, yeah, yeah, still still it was it's

80
00:04:00,159 --> 00:04:02,080
like sixteen years ago we learned about this.

81
00:04:02,360 --> 00:04:05,159
Speaker 2: Yeah, yeah, it's been it's been decades, and it's just

82
00:04:05,199 --> 00:04:09,599
a you know, sanitize your inputs. Bobby Tables is out there.

83
00:04:10,000 --> 00:04:11,800
Speaker 1: And Bobby Tables you got to watch out for him.

84
00:04:11,800 --> 00:04:13,639
All right, That's what I got. Who's talking to us today?

85
00:04:13,680 --> 00:04:16,120
Speaker 2: Richard grabbed a comment off a show eighteen eighty eight,

86
00:04:16,160 --> 00:04:18,360
the one we did with Steve Smith talking about modular monoliths,

87
00:04:18,399 --> 00:04:20,360
and I know we're going to talk about simplicity with Mark,

88
00:04:20,439 --> 00:04:24,040
So I thought this conversation just tied in so well

89
00:04:24,079 --> 00:04:27,439
with that whole problem space, because that's the show that

90
00:04:28,000 --> 00:04:32,439
Smith did focused on, you know, simplifying a monolith, tearing

91
00:04:32,519 --> 00:04:35,319
out pieces to optimize them. That kind of thing that

92
00:04:35,399 --> 00:04:38,439
whole idea that you don't have to go totally micro services.

93
00:04:38,439 --> 00:04:40,240
You can just do what you need to do. And

94
00:04:40,279 --> 00:04:42,399
Mark had this comedy. He said it was a different Mark,

95
00:04:42,720 --> 00:04:45,160
not our gas card. He said. From an application level,

96
00:04:45,160 --> 00:04:47,040
I agree with Steve's point of view that we to

97
00:04:47,079 --> 00:04:49,240
start with a monolith and then split off whatever needs

98
00:04:49,240 --> 00:04:51,879
to be spun into its own services as the need arises.

99
00:04:52,079 --> 00:04:54,160
From a hosting point of view, though the reality is

100
00:04:54,199 --> 00:04:57,879
most businesses unfortunately, when you start down one technical direction,

101
00:04:58,040 --> 00:05:00,839
regardless of what it is, you're likely to keep going

102
00:05:00,920 --> 00:05:05,720
down that forever because temporary solutions become permanently yep. For example,

103
00:05:06,160 --> 00:05:08,720
moving from something like app service to Kubernetes is a

104
00:05:08,800 --> 00:05:11,959
huge jump and it'll be hard to get business buy

105
00:05:12,040 --> 00:05:14,639
in for what the need arises from it. Yeah, and

106
00:05:14,680 --> 00:05:16,360
I found you can use something like Kubernetes as a

107
00:05:16,399 --> 00:05:19,319
service from the onset, but with very minimal setup thanks

108
00:05:19,360 --> 00:05:22,879
to manage the services like as your Kubernetes services, which

109
00:05:22,879 --> 00:05:25,439
gives you the flexibility to about resilience and scalability and

110
00:05:25,439 --> 00:05:28,040
everything else as the need arises without having to overhaul

111
00:05:28,079 --> 00:05:31,040
the entire system architecture. And I appreciate the thinking Mark,

112
00:05:31,079 --> 00:05:34,000
because my workaround would be to stay in app service,

113
00:05:34,240 --> 00:05:38,600
but then to spin off the problem service as a

114
00:05:39,079 --> 00:05:41,399
logic app right right, that just you know, make it

115
00:05:41,399 --> 00:05:43,959
a servilest component. It just gets called the same and

116
00:05:44,000 --> 00:05:46,720
you can keep it in the security context. But I'm

117
00:05:46,759 --> 00:05:48,199
not going to argue with you about moving from app

118
00:05:48,199 --> 00:05:51,399
service to Kubernetes. That's a huge lift. But that's the

119
00:05:52,079 --> 00:05:55,480
all micro services mantras to do that huge lift, and

120
00:05:55,560 --> 00:05:57,000
I don't think people want to do it. So the

121
00:05:57,040 --> 00:05:59,720
fact that we can spin off bits into servilest components

122
00:06:00,040 --> 00:06:02,959
and deal with their performance issues or their behavior issues

123
00:06:03,000 --> 00:06:06,399
separately is the simple workaround rather than looking at the

124
00:06:06,399 --> 00:06:08,120
big wall of climbing up Kubernetties.

125
00:06:08,199 --> 00:06:10,720
Speaker 1: Yeah, that's why we have modular monoliths, so you can

126
00:06:10,759 --> 00:06:12,759
break off the pieces and need broken off.

127
00:06:12,680 --> 00:06:15,040
Speaker 2: Right, and you could break them off in less painful ways. Yeah,

128
00:06:15,040 --> 00:06:16,319
I mean, you could even spin it up as a

129
00:06:16,319 --> 00:06:17,800
separate app service, but I wouldn't.

130
00:06:17,959 --> 00:06:18,839
Speaker 1: Nope, I wouldn't either.

131
00:06:20,079 --> 00:06:21,720
Speaker 2: So Mark, thank you so much for your comment, and

132
00:06:21,800 --> 00:06:23,240
a copy of music co Buy is on its way

133
00:06:23,240 --> 00:06:24,639
to you. And if you'd like a copy of music Code,

134
00:06:24,720 --> 00:06:26,399
I write a comment on the website at dot at

135
00:06:26,480 --> 00:06:28,800
rocks dot com or on the facebooks. We publish every

136
00:06:28,800 --> 00:06:30,279
show there, and if you comment there and everyone on

137
00:06:30,319 --> 00:06:32,199
the show, we'll send you copy of music.

138
00:06:31,839 --> 00:06:34,920
Speaker 1: To go buy. And you can follow us on x

139
00:06:35,040 --> 00:06:38,160
Twitter if you want. That's we've been there for years.

140
00:06:38,160 --> 00:06:41,079
But the cool kids are hanging out at mastadon. I'm

141
00:06:41,160 --> 00:06:44,000
at Carl Franklin at tech Hubs Social.

142
00:06:43,680 --> 00:06:45,759
Speaker 2: And I'm Rich Campbell at macedon dot social.

143
00:06:45,839 --> 00:06:47,600
Speaker 1: Send us a tute. It's another way that you can

144
00:06:47,639 --> 00:06:50,480
get a copy of music to code buy. Absolutely all right,

145
00:06:50,600 --> 00:06:55,040
so let's bring back Rendel Mark Rendel. He is one

146
00:06:55,040 --> 00:06:58,199
of our favorite guests. He's the founder of Rendall Labs,

147
00:06:58,279 --> 00:07:02,000
which provides consulting services and workshops to dot net development

148
00:07:02,040 --> 00:07:07,199
teams across all industries. His particular obsessions are API design

149
00:07:07,240 --> 00:07:13,279
and development, performance observability, and code based modernization. He also

150
00:07:13,360 --> 00:07:16,560
uses skills acquired during a few years as a professional

151
00:07:16,600 --> 00:07:20,519
stand up comic to deliver entertaining and informative talks at

152
00:07:20,560 --> 00:07:24,079
conferences around the world, and recently learned to play bass

153
00:07:24,199 --> 00:07:27,879
so he could join tech parity band The Line Breakers.

154
00:07:28,199 --> 00:07:29,839
Speaker 3: Hey dude, hi man.

155
00:07:29,720 --> 00:07:33,040
Speaker 1: Congratulations, Welcome to the world of music for no money.

156
00:07:33,279 --> 00:07:38,279
Speaker 3: Thank you, thank you so much. I am loving it.

157
00:07:38,279 --> 00:07:40,240
Speaker 1: It's been a while, It has been a while.

158
00:07:40,319 --> 00:07:42,600
Speaker 2: You did the parity band thing for a while there, Carl.

159
00:07:42,639 --> 00:07:44,800
But did you actually get into trouble with that? Was

160
00:07:44,839 --> 00:07:48,360
that back before parody was like accept the use? Oh okay,

161
00:07:49,160 --> 00:07:51,160
well yeah, here's the story.

162
00:07:51,199 --> 00:07:56,680
Speaker 1: So Don Box and Ted Pattison and George Bullock and

163
00:07:56,959 --> 00:08:00,240
a couple other people started this band called ban On

164
00:08:00,240 --> 00:08:04,399
the Runtime, and band On the Runtime was parodies of

165
00:08:04,480 --> 00:08:10,120
C sharp to well known music, right, so fifty ways

166
00:08:10,160 --> 00:08:14,439
to send a message, you know, that kind of stuff, right,

167
00:08:15,120 --> 00:08:19,360
And so the Microsoft lawyers had a problem with it

168
00:08:19,439 --> 00:08:25,720
because parody law says you can parody a song by

169
00:08:25,920 --> 00:08:28,199
you know, changing the words like weird al does like

170
00:08:28,639 --> 00:08:32,080
because I'm fat, I'm fat ham on hole week, right,

171
00:08:33,039 --> 00:08:37,600
But you can't parody something like C sharp using a

172
00:08:37,679 --> 00:08:41,320
song that's not covered by parody law. So you can't

173
00:08:41,399 --> 00:08:45,279
change the words to parody something else. We weren't actually

174
00:08:45,279 --> 00:08:48,120
poking fun at the songs. We're using the songs to

175
00:08:48,159 --> 00:08:51,679
poke fun at dot net. And they, the lawyers kind

176
00:08:51,679 --> 00:08:55,360
of put the kabash. It seems very sus well, but

177
00:08:55,399 --> 00:08:57,320
the law is the law. So they basically went to

178
00:08:57,360 --> 00:08:59,600
Paul Simon, for example, and they said how much would

179
00:08:59,639 --> 00:09:02,440
it cost for the band to play you know this

180
00:09:02,840 --> 00:09:05,879
at a you know, Microsoft event, and he wanted like

181
00:09:05,919 --> 00:09:08,879
two hundred and fifty grand. So that's the law. Yeah,

182
00:09:08,919 --> 00:09:09,840
you have to get permission.

183
00:09:10,440 --> 00:09:12,759
Speaker 2: The law is subject to interpretation. I think those lawyers

184
00:09:12,799 --> 00:09:14,039
interpreted it very oddly.

185
00:09:14,600 --> 00:09:17,519
Speaker 3: Microsoft lawyers interpret things as badly as possible. Don't.

186
00:09:17,559 --> 00:09:19,559
Speaker 1: But you know, they are Microsoft. And if it was

187
00:09:19,720 --> 00:09:22,360
just me doing it, who cares? Because go ahead, I

188
00:09:22,360 --> 00:09:24,440
don't have two hundred and fifty thousand dollars, you know,

189
00:09:24,879 --> 00:09:27,399
but Microsoft, Yeah, might be a problem.

190
00:09:27,480 --> 00:09:30,120
Speaker 3: Yeah, And you know, all we are doing. We provide

191
00:09:30,159 --> 00:09:33,840
the entertainment conference parties and it's like there's a couple

192
00:09:33,960 --> 00:09:36,559
hundred people there and they're all drunk. And yeah, we

193
00:09:36,639 --> 00:09:42,080
don't parody any specic. The closest we have to parodying

194
00:09:42,080 --> 00:09:46,600
a specific technology I think is JavaScript, which was one

195
00:09:47,279 --> 00:09:51,639
in itself, and JavaScript isn't even a language, it's it's

196
00:09:51,679 --> 00:09:54,840
a well, it's a standard. I suppose I was going

197
00:09:54,919 --> 00:09:56,279
to say something meaner, but I went.

198
00:09:58,960 --> 00:09:59,159
Speaker 1: But no.

199
00:09:59,279 --> 00:10:03,000
Speaker 3: Line Breakers their bassist used to be Don Sign really,

200
00:10:03,559 --> 00:10:07,919
creator of F sharp and then he had to he

201
00:10:07,960 --> 00:10:12,720
got pulled into gitub next, the kind of Microsoft Research

202
00:10:12,840 --> 00:10:16,600
equivalent at gitub, but he was still at Microsoft Research

203
00:10:16,639 --> 00:10:20,000
and still sort of the benevolent dictator for life of

204
00:10:20,240 --> 00:10:23,600
f sharp and he just could not fit in conferences

205
00:10:23,600 --> 00:10:26,120
as well as all of that, and so then they

206
00:10:26,120 --> 00:10:30,559
were without bassist. And then I said to Dylan Beattie,

207
00:10:31,480 --> 00:10:35,440
how hard is bass because he's certainly got four strings?

208
00:10:36,799 --> 00:10:37,279
Speaker 1: Can it be?

209
00:10:37,799 --> 00:10:41,240
Speaker 3: And he went as, actually not, it's much much easier

210
00:10:41,279 --> 00:10:44,000
than guitar, And so he lent me one, and I

211
00:10:44,039 --> 00:10:46,879
took it home and I plugged in, plugged it into

212
00:10:46,919 --> 00:10:50,600
my computer with a sort of six point five to

213
00:10:51,000 --> 00:10:56,159
USB cable, and got Rocksmith Plus and tried playing a

214
00:10:56,200 --> 00:11:01,559
few things, and I think within five minutes of sitting down,

215
00:11:01,679 --> 00:11:05,720
I had learned to play seven nation army okay. And

216
00:11:05,799 --> 00:11:07,919
so it's not I mean, it's not an easy instrument.

217
00:11:07,919 --> 00:11:09,960
And if there are any basis out there going oh no,

218
00:11:09,960 --> 00:11:13,000
not this again, it is definitely not an easy instrument.

219
00:11:13,039 --> 00:11:15,440
I've got one to like jazz and funk and disco

220
00:11:15,639 --> 00:11:19,399
and those sorts of things, but the learning curve is

221
00:11:19,519 --> 00:11:23,120
extremely shallow at first, so it's very very encouraging.

222
00:11:23,559 --> 00:11:26,559
Speaker 1: Yeah, right, you can play Smoke on the Water just

223
00:11:26,600 --> 00:11:27,120
by going but.

224
00:11:28,480 --> 00:11:31,879
Speaker 3: Club but chugging basslines.

225
00:11:32,279 --> 00:11:35,399
Speaker 1: However, of them bass you know, it's easier because you

226
00:11:35,399 --> 00:11:38,360
don't have chords and and all of that, but it

227
00:11:38,440 --> 00:11:41,240
is more difficult because to play bass really well you

228
00:11:41,320 --> 00:11:43,279
have to have a great tone by the way, yes,

229
00:11:43,480 --> 00:11:47,039
and also you have to have saw like bass player.

230
00:11:47,159 --> 00:11:50,200
You just to be able to play a couple of notes,

231
00:11:50,440 --> 00:11:53,799
isn't playing bass? You know, you really have to. It

232
00:11:53,879 --> 00:11:56,519
takes a while before before the funk or the saul

233
00:11:56,600 --> 00:11:57,080
comes out.

234
00:11:57,240 --> 00:12:00,759
Speaker 3: Yeah, and just getting in the pocket like right on

235
00:12:00,879 --> 00:12:03,879
the b and just giving tone to the drums.

236
00:12:04,159 --> 00:12:06,960
Speaker 1: But you don't have chords, but they don't have chords.

237
00:12:07,120 --> 00:12:09,600
That's your jack app story and.

238
00:12:10,000 --> 00:12:11,039
Speaker 3: Seeking nobody as.

239
00:12:13,840 --> 00:12:18,279
Speaker 2: There are a few very extraordinary bases that nine essential.

240
00:12:18,480 --> 00:12:19,919
Speaker 1: So what's on your mind? Randall?

241
00:12:20,279 --> 00:12:21,000
Speaker 2: What have you been up to?

242
00:12:21,240 --> 00:12:25,960
Speaker 3: I was at the Copenhagen Developer Festival last week. Rich

243
00:12:26,120 --> 00:12:31,840
was there and it was absolutely brilliant and I had

244
00:12:31,960 --> 00:12:34,720
a new locknote talk that I did which is called

245
00:12:34,759 --> 00:12:37,399
the Albatross Project. But they also asked me to do

246
00:12:37,600 --> 00:12:41,679
the free meet up the Tuesday night before the festival started.

247
00:12:42,960 --> 00:12:47,120
And I had a talk that i'd submitted for Copenhagen

248
00:12:47,159 --> 00:12:50,519
that they rejected because I just do lockmotes for in

249
00:12:50,600 --> 00:12:52,919
DC now apparently, but they said, you can do that

250
00:12:52,960 --> 00:12:54,799
talk at the meetup if you want. And the talk

251
00:12:54,960 --> 00:12:59,120
was called how simple is as simple as possible? And

252
00:13:00,840 --> 00:13:04,799
this is both of these talks, they're related. So the

253
00:13:04,919 --> 00:13:08,360
talk is a sort of technical can you do this?

254
00:13:08,440 --> 00:13:10,200
Can you do that? How can you keep things simple?

255
00:13:10,279 --> 00:13:13,720
And then the Albatross project is the opposite of the

256
00:13:13,720 --> 00:13:17,919
Phoenix project nice, and it's about a development director who

257
00:13:18,120 --> 00:13:20,720
doesn't deliver anything for thirty five years because he keeps

258
00:13:20,720 --> 00:13:25,120
trying to stay on the cutting edge. And yeah, and

259
00:13:25,200 --> 00:13:29,279
I just after I did the talk version of it,

260
00:13:30,440 --> 00:13:34,080
at which there was one slide where the slide popped

261
00:13:34,159 --> 00:13:36,240
up on the screen and somebody immediately got up and

262
00:13:36,279 --> 00:13:36,799
walked out.

263
00:13:38,519 --> 00:13:39,799
Speaker 2: He knew it was a right slide.

264
00:13:39,879 --> 00:13:41,440
Speaker 3: So I'm kind of like, yeah, this is working.

265
00:13:41,799 --> 00:13:45,159
Speaker 1: You don't think like his wife was in labor or

266
00:13:45,799 --> 00:13:46,080
you know.

267
00:13:46,320 --> 00:13:55,120
Speaker 3: Is no probably a React developer, Ora Angular or View

268
00:13:55,159 --> 00:13:58,080
because those were the three there were three JavaScript framework

269
00:13:58,120 --> 00:13:59,039
logos on the slide.

270
00:13:59,200 --> 00:14:00,679
Speaker 1: Anything where you're like, hey, where you go?

271
00:14:01,440 --> 00:14:03,360
Speaker 3: I hadn't said anything because we were actually having a

272
00:14:03,360 --> 00:14:07,600
technical issue at the time. And yeah, I mean it

273
00:14:07,639 --> 00:14:09,639
is possible it was the technical issue that you sent

274
00:14:09,720 --> 00:14:11,000
him out there, just kind of like, I'm not waiting

275
00:14:11,039 --> 00:14:13,120
around while these people turn the screen back on or whatever.

276
00:14:13,480 --> 00:14:18,679
But yes, it's I kind of I feel like I

277
00:14:18,720 --> 00:14:24,840
owe people an apology to a certain extent, because in

278
00:14:24,919 --> 00:14:27,759
my forties I did a lot of bouncing around the

279
00:14:27,799 --> 00:14:30,039
world telling people how to contain the rize things and

280
00:14:30,080 --> 00:14:33,519
do micro services and event driven things and Kubernettes and

281
00:14:33,519 --> 00:14:38,440
all that sort of stuff. And now in my fifties,

282
00:14:38,840 --> 00:14:44,360
I'm kind of wishing most people would stop. And so

283
00:14:45,120 --> 00:14:47,840
that's my mission at the moment, and that's I'm going

284
00:14:47,879 --> 00:14:50,159
to be trying to get this talk into as many

285
00:14:50,200 --> 00:14:53,840
things as possible next year and start pushing at it

286
00:14:55,159 --> 00:15:02,600
because we've just made everything, everything just so complicated in

287
00:15:02,639 --> 00:15:08,759
the name of efficiency, in the name of standardization.

288
00:15:08,320 --> 00:15:11,759
Speaker 1: Potential future scalability. That's the big one.

289
00:15:12,000 --> 00:15:18,240
Speaker 3: Yes, absolutely, But also you hear the term DX developer

290
00:15:18,279 --> 00:15:23,480
experience and developer experience, I feel like that should be

291
00:15:23,480 --> 00:15:26,519
an important thing in terms of your ID, your code editor,

292
00:15:27,559 --> 00:15:31,559
your command line tooling, that sort of thing. But if

293
00:15:31,600 --> 00:15:36,120
you're getting to a point where the improved developer experience

294
00:15:36,200 --> 00:15:39,320
that you get from sort of CICD and microservice deployments

295
00:15:39,360 --> 00:15:41,759
and rollouts and all that sort of thing is actually

296
00:15:41,799 --> 00:15:44,639
getting in the way of delivering a good user experience

297
00:15:45,159 --> 00:15:49,919
because of the increased latencies that you get or the

298
00:15:51,399 --> 00:15:55,679
fifteen megabytes of JavaScript that a webpage has to download

299
00:15:55,759 --> 00:16:00,639
before it becomes interactive. Then there's some thing wrong with that.

300
00:16:00,679 --> 00:16:03,759
We have had priorities completely the wrong way round.

301
00:16:04,159 --> 00:16:04,360
Speaker 1: Yeah.

302
00:16:04,360 --> 00:16:06,000
Speaker 2: One of the ways to keep that stuff fast is

303
00:16:06,000 --> 00:16:07,000
to keep it simple.

304
00:16:06,879 --> 00:16:08,679
Speaker 3: Absolutely, Yeah.

305
00:16:08,799 --> 00:16:12,080
Speaker 1: And so yeah, it's been my mantra, you know, do

306
00:16:12,159 --> 00:16:15,440
the simplest thing that works ever since I got started

307
00:16:15,480 --> 00:16:19,360
in software. That's been you know, stapled to my forehead.

308
00:16:20,000 --> 00:16:23,279
Speaker 3: Yeah. I wish I could say the same of myself,

309
00:16:23,440 --> 00:16:28,080
but at least, you know, I'm realizing it now and

310
00:16:28,559 --> 00:16:29,840
attempting to share some of that.

311
00:16:29,879 --> 00:16:31,519
Speaker 2: Well. I think part of this is we wanted to

312
00:16:31,559 --> 00:16:34,919
believe that if we, you know, embedded ourselves in this architecture,

313
00:16:34,960 --> 00:16:38,240
like if we understood all the pieces that gradually software

314
00:16:38,279 --> 00:16:41,840
would be easier in that space. I just don't feel

315
00:16:41,840 --> 00:16:42,960
like it ever got there.

316
00:16:43,279 --> 00:16:49,000
Speaker 3: No, No, I mean I think it did at a

317
00:16:49,039 --> 00:16:54,200
particular point. I think espn net mvc pretty simple, was

318
00:16:54,240 --> 00:16:58,559
relatively simple, and the idea of the pipeline. So what

319
00:16:58,639 --> 00:17:02,759
we kind of picked off with o win based on

320
00:17:02,840 --> 00:17:08,680
things like Python WSGI and Ruby's rack middleware, and then

321
00:17:08,720 --> 00:17:12,440
o win obviously kind of got rolled into asp net

322
00:17:12,480 --> 00:17:15,519
core and that was nice and simple. It was like,

323
00:17:15,559 --> 00:17:17,519
do this, then do this, then do this, then do this.

324
00:17:19,000 --> 00:17:23,640
But then I think the problem is that as developers

325
00:17:24,160 --> 00:17:28,119
we think that if we're not changing the way we

326
00:17:28,160 --> 00:17:31,480
do things, if we're not evolving, then we are failing

327
00:17:31,519 --> 00:17:33,920
in some way. There's this whole thing about continuous learning,

328
00:17:34,599 --> 00:17:40,039
and so people kind of go, well, there's somebody says microservices,

329
00:17:40,039 --> 00:17:42,839
So I need to learn microservices. Now I know microservices.

330
00:17:43,720 --> 00:17:45,240
Why have I learned it if I'm not going to

331
00:17:45,319 --> 00:17:47,559
use it? And then they end up breaking something with

332
00:17:47,720 --> 00:17:51,519
like two dozen end points down into twelve micro services

333
00:17:52,039 --> 00:17:54,440
and you're just like, no, I should.

334
00:17:54,160 --> 00:17:57,160
Speaker 1: Have learned that from doctor card, right, absolutely.

335
00:17:57,519 --> 00:17:57,880
Speaker 3: Yeah.

336
00:17:57,960 --> 00:18:00,519
Speaker 2: Well, I was like the argument that my service makes

337
00:18:00,519 --> 00:18:02,240
a lot of sense when the team is huge, that

338
00:18:02,319 --> 00:18:04,880
it creates a level of granularity that you can have

339
00:18:04,920 --> 00:18:07,160
a lot of people working in parallel and then have

340
00:18:07,240 --> 00:18:11,279
your fights over integration rather than fights over coding. Yeah,

341
00:18:11,319 --> 00:18:13,079
but most teams aren't that big.

342
00:18:13,680 --> 00:18:15,680
Speaker 3: No, they're really not. But I think a lot of

343
00:18:15,720 --> 00:18:21,119
the time, people who don't necessarily have a lot of

344
00:18:21,119 --> 00:18:25,960
different job experiences within the industry, they think that they're

345
00:18:26,000 --> 00:18:29,720
in a big department because there's like one hundred and

346
00:18:29,759 --> 00:18:34,799
twenty developers, all right, And then you're kind of like no, no, no, no, no, no,

347
00:18:35,039 --> 00:18:39,200
go and take a big Netflix or Uber or Microsoft

348
00:18:39,400 --> 00:18:42,960
or your average financial institution. I worked at Morgan Stanley

349
00:18:43,000 --> 00:18:46,519
and I think I was one of ten thousand developers

350
00:18:46,599 --> 00:18:51,440
working at Morgan Stanley. So yeah, that and the other

351
00:18:51,519 --> 00:18:56,440
thing then is when you're at that scale and your

352
00:18:57,279 --> 00:19:00,359
team within that maybe a lot larger and a lot

353
00:19:00,400 --> 00:19:03,359
more different people on it. You may have a sort

354
00:19:03,400 --> 00:19:07,440
of architect leading the design of the system, and you

355
00:19:07,519 --> 00:19:12,480
have testers and DevOps people and all those kinds of things,

356
00:19:14,279 --> 00:19:18,359
and so what they call a micro service can well

357
00:19:18,400 --> 00:19:22,920
be bigger than the entire thing that other people are

358
00:19:22,960 --> 00:19:27,359
trying to break down into micro services. And so yeah,

359
00:19:27,400 --> 00:19:33,000
there's this dissonance from people not actually realizing what scale

360
00:19:33,000 --> 00:19:34,640
they're at because it feels big to them.

361
00:19:34,839 --> 00:19:36,880
Speaker 2: They just haven't been exposed to the other things. What

362
00:19:36,960 --> 00:19:41,680
about the cloud native concept? Is this where you fall

363
00:19:41,759 --> 00:19:43,480
on that we should define it first.

364
00:19:43,880 --> 00:19:49,960
Speaker 3: Yes, So cloud native is essentially building apps that are

365
00:19:50,039 --> 00:19:58,480
designed to run in the cloud and leverage I think,

366
00:19:58,519 --> 00:20:01,640
you know, like the the term twelve factor apps has

367
00:20:01,759 --> 00:20:03,599
kind of fallen out of use a lot. I think

368
00:20:03,599 --> 00:20:07,160
a Roku introduced that idea, and I think a Roku

369
00:20:07,359 --> 00:20:10,759
was one of the first cloud native style platforms, way

370
00:20:10,799 --> 00:20:13,960
before Kubernettes and containers and all that sort of thing

371
00:20:14,039 --> 00:20:17,240
came along, and it was build your app so that

372
00:20:17,319 --> 00:20:22,680
it consumes services that are provided for you and can

373
00:20:22,720 --> 00:20:27,200
be deployed by doing a Git push or whatever else.

374
00:20:27,559 --> 00:20:30,880
And you're not worried about infrastructure. You're not worried about

375
00:20:31,039 --> 00:20:34,720
VM size, CPU core count, all those sorts of things,

376
00:20:34,759 --> 00:20:35,440
because you're just.

377
00:20:35,680 --> 00:20:39,599
Speaker 2: No updating machines, just million new instances in rolling.

378
00:20:39,279 --> 00:20:43,640
Speaker 3: Across totally totally. And then you have things on top

379
00:20:43,680 --> 00:20:50,279
of that around reliability, which obviously you know poly in

380
00:20:50,559 --> 00:20:54,839
dot net. But when you're building for the cloud, you

381
00:20:54,960 --> 00:20:57,319
have to build for partition, You have to build for

382
00:20:58,000 --> 00:21:03,640
things that are likely to you know, things in the

383
00:21:03,640 --> 00:21:05,440
cloud go down for two seconds and then come back

384
00:21:05,519 --> 00:21:09,319
up again. Because somebody did a push and it just happened,

385
00:21:09,440 --> 00:21:12,839
and so you have to that. You know, you can't

386
00:21:12,880 --> 00:21:14,960
just go, oh no, the database is gone. You have

387
00:21:15,119 --> 00:21:16,839
to go, well, I'll try again in a second, then

388
00:21:16,839 --> 00:21:20,079
in two seconds, then in four seconds. Obviously with that

389
00:21:20,200 --> 00:21:23,839
weird fuzzing thing that changes those numbers into something not

390
00:21:23,920 --> 00:21:24,599
quite surround.

391
00:21:26,200 --> 00:21:29,519
Speaker 2: But maybe that's what's happened is people misconstrued being cloud

392
00:21:29,599 --> 00:21:31,640
native with products like Kubernetes.

393
00:21:31,799 --> 00:21:34,440
Speaker 3: That's the thing cloud. So you have cloud Native, which

394
00:21:34,480 --> 00:21:37,920
is a concept and an idea and an abstract that

395
00:21:37,960 --> 00:21:39,960
you can aim for, and then you have the Cloud

396
00:21:40,079 --> 00:21:45,680
Native Computing Foundation, which is attempting to be for cloud

397
00:21:45,680 --> 00:21:50,119
computing what the Linux Foundation is for Linux. And you know,

398
00:21:50,559 --> 00:21:53,480
Kubernettes is often called the operating system of the cloud,

399
00:21:55,319 --> 00:22:00,000
and there's going to be people going often called by whom,

400
00:22:00,039 --> 00:22:04,279
But so they have projects that go through kind of

401
00:22:04,519 --> 00:22:10,240
incubator and preview and then stable and ready for everybody

402
00:22:10,279 --> 00:22:12,920
to use. And so people feel like if they are

403
00:22:12,920 --> 00:22:15,599
going to be cloud native, then they should go down

404
00:22:15,640 --> 00:22:18,200
that like it's a checklist almost and go are we

405
00:22:18,279 --> 00:22:20,960
running on Kubernetes, Are we using a service mesh? Are

406
00:22:21,000 --> 00:22:25,319
we using a document database, Are we using event sourcing

407
00:22:25,319 --> 00:22:28,720
and all these things that they have projects for, And

408
00:22:29,480 --> 00:22:33,200
you can be cloud native. You can build you could

409
00:22:33,200 --> 00:22:36,400
build I don't, please don't, but you could build an

410
00:22:36,440 --> 00:22:40,920
asp dot net web forms app that was cloud native

411
00:22:42,759 --> 00:22:46,839
that covered all those things. Just with the various rules

412
00:22:46,920 --> 00:22:49,039
and all this sort of stuff, there's nothing stopping you

413
00:22:49,079 --> 00:22:52,599
from pushing an asp net where it forms app into

414
00:22:53,039 --> 00:22:55,920
an Azero app service in a VM or something or

415
00:22:55,960 --> 00:22:56,920
a VM or yeah.

416
00:22:57,720 --> 00:23:00,799
Speaker 1: And that just proves the point that just because you

417
00:23:00,920 --> 00:23:03,319
have checked off all the boxes doesn't mean using the

418
00:23:03,359 --> 00:23:05,119
rate technology for the job.

419
00:23:05,319 --> 00:23:07,880
Speaker 2: Well. Absolutely, And you haven't talked about the customer requirements

420
00:23:07,880 --> 00:23:10,240
anywhere along the path here.

421
00:23:09,799 --> 00:23:13,559
Speaker 3: Nobody's asking about that. The customer's kind of going. What

422
00:23:13,640 --> 00:23:17,240
I would really like is for the page to load

423
00:23:17,480 --> 00:23:21,319
in less than four hundred milliseconds, And which is the

424
00:23:21,920 --> 00:23:26,359
something limit. It's like, four hundred milliseconds is the point

425
00:23:26,359 --> 00:23:32,160
at which people go that with subality limits. And we've

426
00:23:32,240 --> 00:23:35,359
actually gotten to this point now. This is one of

427
00:23:35,400 --> 00:23:41,559
the conversations I was having with people where four hundred

428
00:23:41,640 --> 00:23:49,119
milliseconds feels unattainable. And have you guys watched the Spotify

429
00:23:49,359 --> 00:23:54,279
documentary thing on Netflix playlist or something that's called. So

430
00:23:54,319 --> 00:23:56,480
it's about the guy who started Spotify. It's like six

431
00:23:56,519 --> 00:24:00,640
episodes and they're each done from a different perspective, a

432
00:24:00,640 --> 00:24:04,759
different person's point of view. But Daniel Lek, the guy

433
00:24:04,759 --> 00:24:10,680
who started Spotify, his sole focus to get it launched,

434
00:24:12,240 --> 00:24:15,920
in tech terms, was that when you click the play

435
00:24:15,920 --> 00:24:20,400
button on a song, it should start playing like immediately.

436
00:24:20,440 --> 00:24:23,559
And he was aiming for that four hundred millisecond point

437
00:24:23,599 --> 00:24:26,960
and he got it. And that was in two thousand

438
00:24:27,000 --> 00:24:31,640
and one. And now we're here with an internet that

439
00:24:31,839 --> 00:24:36,680
is several orders of magnitude faster, We've got five G

440
00:24:36,839 --> 00:24:41,200
on our phones, we've got gigabit plus internet at affordable

441
00:24:41,240 --> 00:24:44,599
prices for a lot of people. And we're still saying

442
00:24:45,480 --> 00:24:47,640
that's really tricky. We can do it in like one

443
00:24:47,680 --> 00:24:52,559
point four seconds if you're in a fast connection, And yeah,

444
00:24:52,640 --> 00:24:56,960
we've we've lost lost sight of the ball, and we

445
00:24:57,039 --> 00:25:01,119
need to examine ourselves as industry and say, well, what

446
00:25:01,160 --> 00:25:02,880
are we doing and why are we doing it?

447
00:25:02,920 --> 00:25:05,279
Speaker 2: And is there anything what are we doing for those

448
00:25:05,279 --> 00:25:08,759
one point four seconds? Exactly what are you up to?

449
00:25:10,440 --> 00:25:14,000
Speaker 3: And so yeah, and like I say, the talk covers

450
00:25:14,000 --> 00:25:17,079
this from infrastructure from back end, from front end, from

451
00:25:17,279 --> 00:25:23,240
programming language and all these different things, and yeah, frontend,

452
00:25:24,000 --> 00:25:26,759
it's it is honestly quite a simple answer. We are

453
00:25:26,799 --> 00:25:31,759
downloading a shedload of JavaScript which the browser then has

454
00:25:31,799 --> 00:25:36,640
to pass and jit and do all those sorts of things.

455
00:25:36,039 --> 00:25:42,039
And before we do all of that, people can't scroll

456
00:25:42,119 --> 00:25:46,119
a blog. And you're like, it's a blog. The only

457
00:25:46,200 --> 00:25:49,079
thing on it that needs to be interactive is the

458
00:25:49,200 --> 00:25:52,799
comments and maybe a like button or a share button.

459
00:25:52,880 --> 00:25:56,920
Even the share buttons are just links. But no, I

460
00:25:56,960 --> 00:26:01,960
see people sort of writing blogs with nuts dot js.

461
00:26:03,039 --> 00:26:05,200
Speaker 1: Are you still bolished? And blazer server, Mark.

462
00:26:05,160 --> 00:26:09,519
Speaker 3: I really like blazer server for internal things, for where

463
00:26:09,559 --> 00:26:12,720
you have a very definite upper limit on the number

464
00:26:12,759 --> 00:26:15,799
of concurrent connections that you can have, and it's like

465
00:26:16,000 --> 00:26:18,960
in the thousands or maybe tens of thousands, and you

466
00:26:18,960 --> 00:26:24,039
can scale up for that and everything. Once you scale

467
00:26:24,119 --> 00:26:30,559
blazer server beyond a single instance, then obviously it becomes trickier.

468
00:26:30,720 --> 00:26:33,200
So if you've got like messages and one person sends

469
00:26:33,200 --> 00:26:35,680
it on one instance, that now has to bounce through

470
00:26:35,680 --> 00:26:38,279
something like a reddish pubsub or something so that the

471
00:26:38,319 --> 00:26:43,720
other instances can pick it up. But it's still very simple. Actually,

472
00:26:43,759 --> 00:26:49,279
I've been playing with so blazerin dot net eight and

473
00:26:49,880 --> 00:26:53,839
you have the server side rendering, and so it will

474
00:26:53,880 --> 00:26:56,960
render pages on the server and it will return them,

475
00:26:56,960 --> 00:26:58,720
so you can have a site that works with search

476
00:26:58,759 --> 00:27:02,440
engines just as much as anything else, just like Razor pages.

477
00:27:03,880 --> 00:27:09,039
And then it will download the Blazer web assembly runtime

478
00:27:09,279 --> 00:27:13,200
in the background, and it will download your natively compiled

479
00:27:13,720 --> 00:27:18,599
Blazer application in the background, and then silently without the

480
00:27:18,680 --> 00:27:21,559
user even noticing that's anything, that anything has happened, the

481
00:27:21,599 --> 00:27:24,480
next time they navigate, it won't make a request to

482
00:27:24,519 --> 00:27:26,519
the server. It will do it locally.

483
00:27:27,079 --> 00:27:29,640
Speaker 1: It's like magic, except that it doesn't work.

484
00:27:30,039 --> 00:27:32,039
Speaker 3: It's they'll get there.

485
00:27:34,880 --> 00:27:37,079
Speaker 1: I've done I've done tests and I recently did another

486
00:27:37,119 --> 00:27:41,319
one and we go from service side rendered directly to

487
00:27:41,359 --> 00:27:47,559
web assembly. There isn't any server rendering in between while

488
00:27:47,640 --> 00:27:50,559
web assembly is downloading. And that's been a problem ever

489
00:27:50,599 --> 00:27:53,720
since they released that, and it's still a problem. Well,

490
00:27:53,559 --> 00:27:54,359
but they'll get there.

491
00:27:54,680 --> 00:27:57,240
Speaker 3: I'm just going to keep my fingers crossed for for

492
00:27:57,319 --> 00:28:00,200
dot netline. But no I did. I ran into some

493
00:28:00,240 --> 00:28:05,440
issues with it myself and have started looking at an

494
00:28:05,480 --> 00:28:13,920
alternative thing, which is HTMX, which is that X stand

495
00:28:13,960 --> 00:28:21,200
for so essentially this is a push back against things

496
00:28:21,279 --> 00:28:23,960
like React and Angular and so forth, where it's kind

497
00:28:23,960 --> 00:28:26,920
of what you actually want to do, what you actually

498
00:28:26,960 --> 00:28:31,160
want to achieve is when the user clicks something or

499
00:28:31,200 --> 00:28:34,160
interacts with something in some way, you want to make

500
00:28:34,200 --> 00:28:36,559
a call to a server and then you want to

501
00:28:36,839 --> 00:28:39,960
make a change to the dom of your current page

502
00:28:40,240 --> 00:28:43,079
right and insert a div and with some stuff in

503
00:28:43,119 --> 00:28:47,359
it or something and so works, which is how Blazer

504
00:28:47,359 --> 00:28:52,920
server works. And HTMX is kind of let's let's just

505
00:28:53,079 --> 00:28:56,039
lean into that as far as possible, and we'll just

506
00:28:56,200 --> 00:29:01,640
use HTML attributes on elements and we'll say, okay, so

507
00:29:02,200 --> 00:29:06,279
on this element, when the user clicks, we are going

508
00:29:06,319 --> 00:29:10,279
to make a request to this endpoint on our server,

509
00:29:10,319 --> 00:29:13,960
which is going to return a fragment of HTML, and

510
00:29:14,000 --> 00:29:18,720
then we're going to insert that HTML into the page

511
00:29:18,839 --> 00:29:21,240
at this point, or we're going to replace an existing

512
00:29:21,640 --> 00:29:28,359
element with that HTML. And for I think like ninety

513
00:29:28,440 --> 00:29:33,119
percent of use cases, that actually covers most of the

514
00:29:33,119 --> 00:29:36,279
things you want to do. It will do your comment

515
00:29:36,599 --> 00:29:38,480
form at the bottom of your blog. It will do

516
00:29:39,200 --> 00:29:42,759
your like buttons and an updated view of how many

517
00:29:42,920 --> 00:29:45,519
likes you've got, and all those sorts of things, but

518
00:29:45,640 --> 00:29:50,720
without a huge JavaScript run time doing shadow dom things

519
00:29:50,799 --> 00:29:57,440
and observing signals. They seem to be going on about

520
00:29:57,440 --> 00:29:59,720
signals over in JavaScript land at the moment. That's very

521
00:30:00,000 --> 00:30:02,160
fighting for them. And yeah, so.

522
00:30:02,200 --> 00:30:04,480
Speaker 1: That's sort of like the evolution of ajax, isn't it.

523
00:30:04,720 --> 00:30:08,279
Speaker 3: Yeah, yeah, it is, and it's kind of it's that

524
00:30:08,400 --> 00:30:10,359
the plumbing. I feel like it's a shame we had

525
00:30:10,359 --> 00:30:12,279
to go all the way round SPA to get back

526
00:30:12,279 --> 00:30:14,839
to the point where we're going. Here's a really sensible

527
00:30:14,839 --> 00:30:16,319
evolution of ajax.

528
00:30:17,200 --> 00:30:20,000
Speaker 2: Just refill a div tag for me, would you please? Right?

529
00:30:21,279 --> 00:30:24,920
Speaker 3: So I built a site when I was learning the base,

530
00:30:25,079 --> 00:30:30,160
and it's called fret Badger, which is partly because I like,

531
00:30:31,000 --> 00:30:36,000
it's not a mollusk. If I ever start another company,

532
00:30:36,039 --> 00:30:38,279
it's just going to be called not a Mollusk limited.

533
00:30:38,880 --> 00:30:43,039
What do you do? Definitely not a mollusk. So yeah,

534
00:30:43,400 --> 00:30:46,079
you can you can hire hijack the domain for me

535
00:30:46,240 --> 00:30:51,200
and then blackmail me. But no, So frat Badger. I

536
00:30:51,240 --> 00:30:53,400
wanted to learn the threat board, and I wanted to

537
00:30:53,480 --> 00:30:58,160
learn scales and modes for jazz and arpeggios and that

538
00:30:58,200 --> 00:30:59,680
sort of thing, and.

539
00:30:59,480 --> 00:31:00,920
Speaker 1: So I see chart behind you.

540
00:31:01,279 --> 00:31:03,680
Speaker 3: Yes, exactly. I've got the bas chart on the wall

541
00:31:03,680 --> 00:31:06,440
which has got all the modes and everything else. And

542
00:31:06,480 --> 00:31:08,799
it's basically just if you want to play up this scale,

543
00:31:08,839 --> 00:31:11,759
and you've got the major scale, the minor scale, pentatomics, blues,

544
00:31:11,799 --> 00:31:18,119
all these different things. And I was my base teacher

545
00:31:18,599 --> 00:31:22,559
was pushing me to learn music theory, and I got

546
00:31:22,599 --> 00:31:28,599
really into it because it's it's maths, it's rules, and

547
00:31:28,839 --> 00:31:32,519
it's logical, and so I thought, well, the best.

548
00:31:32,359 --> 00:31:34,640
Speaker 2: Way there's one of the many reasons that musicians and

549
00:31:35,319 --> 00:31:36,799
developers go work so well together.

550
00:31:36,960 --> 00:31:40,400
Speaker 3: Yeah, yeah, And I thought, so if I can encode

551
00:31:40,599 --> 00:31:44,559
all this information about music theory into C sharp and

552
00:31:44,640 --> 00:31:47,640
some data structures, then that would be a good way

553
00:31:47,680 --> 00:31:49,880
to learn it. And also it would be a fun

554
00:31:49,960 --> 00:31:53,119
site to build. And so it's just an asp net

555
00:31:53,519 --> 00:31:57,720
Core MVC app at the moment, but it does have

556
00:31:57,799 --> 00:31:59,599
this thing so you can have like you choose your

557
00:31:59,599 --> 00:32:02,119
freat ball and you say, okay, so I want the

558
00:32:02,160 --> 00:32:05,279
standard base threat board, standard tuning, and I want the

559
00:32:05,480 --> 00:32:09,240
C major scale, and it will show you the little

560
00:32:09,240 --> 00:32:12,119
dots to show you where to put your fingers. But

561
00:32:12,240 --> 00:32:15,799
then when I was doing jazz, it was kind of

562
00:32:15,960 --> 00:32:17,599
it would be really good if I could have like

563
00:32:17,960 --> 00:32:19,920
four or five of them on the screen at once,

564
00:32:20,119 --> 00:32:22,759
and so I added in nothing. But every time you

565
00:32:22,880 --> 00:32:26,559
add a new threatboard, it reloads the entire page and

566
00:32:26,599 --> 00:32:28,640
then it scrolled back to the top. And so I

567
00:32:28,680 --> 00:32:30,440
was looking for a way to make it kind of

568
00:32:30,799 --> 00:32:33,799
more smoothly interactive. And so that's what I was looking

569
00:32:33,799 --> 00:32:37,559
at the Blazer server side plus WASM for. But as

570
00:32:37,640 --> 00:32:43,480
Carl says, there are some issues. But then I saw

571
00:32:43,680 --> 00:32:47,559
HTMX and I'm kind of like, that is exactly what

572
00:32:47,640 --> 00:32:50,720
I want. And the beautiful thing is it works really

573
00:32:50,720 --> 00:32:53,720
really well with esp net core because we have partials

574
00:32:54,559 --> 00:32:57,759
and so we can just go, when this request comes in,

575
00:32:57,920 --> 00:33:02,319
just render this partial. So yeah, it's and it's that

576
00:33:02,359 --> 00:33:06,720
sort of thing. The key thing with HTMX though, is

577
00:33:07,079 --> 00:33:13,079
the entire library is fourteen point six killer bytes minified

578
00:33:13,119 --> 00:33:15,680
and chesipped, which is tiny.

579
00:33:15,920 --> 00:33:19,559
Speaker 1: It's less than your logo graphic button.

580
00:33:19,319 --> 00:33:20,400
Speaker 2: Radius is bigger than that.

581
00:33:20,839 --> 00:33:23,960
Speaker 3: Yeah, yeah, you know, it's like that thing where when

582
00:33:24,079 --> 00:33:27,079
Windows seven came out, the desktop wallpaper was took up

583
00:33:27,119 --> 00:33:30,960
more disk space than the whole of Windows three point one,

584
00:33:31,559 --> 00:33:36,119
like and what is it doing that? So yeah, it's that,

585
00:33:37,240 --> 00:33:43,559
and you know it's They provide documentation and guidance on

586
00:33:43,640 --> 00:33:47,119
how to use Alpine js, which is again a very

587
00:33:47,200 --> 00:33:53,240
lightweight JavaScript framework, kind of like a miniature alternative to

588
00:33:53,359 --> 00:33:56,599
jQuery for the things that jQuery did that didn't then

589
00:33:56,640 --> 00:34:00,279
get built into JavaScript fifteen or twenty sixteen or whatever.

590
00:34:02,079 --> 00:34:04,839
So if you do need, I have one thing where

591
00:34:04,880 --> 00:34:07,680
I wrote custom JavaScript, which is, once you've got your

592
00:34:07,839 --> 00:34:10,039
C major scale up on the threat board, if you

593
00:34:10,159 --> 00:34:14,119
click one of the c's, it will fade the others

594
00:34:14,159 --> 00:34:18,000
that aren't part of that arpeggio. And so it's kind

595
00:34:18,000 --> 00:34:20,360
of like going, so you do this, and then that's

596
00:34:20,440 --> 00:34:23,280
your second, and your third, and your fourth and so on.

597
00:34:24,800 --> 00:34:30,800
And that's twenty lines of chavascript, which isn't even worth

598
00:34:30,880 --> 00:34:33,800
minifying at that point. I think it's actually still hard

599
00:34:33,840 --> 00:34:37,199
coded into the h into the layout dot c shtml

600
00:34:38,519 --> 00:34:42,000
and so yeah, just that little bits of JavaScript here

601
00:34:42,039 --> 00:34:44,800
and there to do a couple of things in the browser,

602
00:34:45,400 --> 00:34:50,039
and then HTMX for everything else. And it's it's working

603
00:34:50,079 --> 00:34:51,639
really well. I'm going to be pushing it live soon.

604
00:34:51,719 --> 00:34:53,679
Speaker 1: It's great. Before we take a break, I just want

605
00:34:53,719 --> 00:34:57,320
to mention that I had written I don't know four

606
00:34:57,400 --> 00:35:02,800
or five years ago this tool. I have a guitar

607
00:35:02,920 --> 00:35:06,519
that has a role in GK pickup GK three pickup,

608
00:35:06,519 --> 00:35:10,239
which is a split pickup, so it goes right in

609
00:35:10,280 --> 00:35:12,280
between the bridge and your first pickup of the guitar.

610
00:35:13,039 --> 00:35:15,800
And it has six individual pickups for each string and

611
00:35:15,840 --> 00:35:18,840
those go through a role in processor and then you

612
00:35:18,880 --> 00:35:23,000
can process each string individually. So another thing I can

613
00:35:23,039 --> 00:35:26,079
do is map it to MIDI. So what I have

614
00:35:26,519 --> 00:35:29,480
is I have something that pulls up the MIDI from

615
00:35:29,840 --> 00:35:33,800
your guitar and figures out where your fingers are on

616
00:35:33,840 --> 00:35:36,440
the front board and shows it to you on the screen.

617
00:35:36,960 --> 00:35:39,960
Not only that, but then I put a service between it,

618
00:35:40,079 --> 00:35:44,400
so somebody could log in in Texas and I'm playing

619
00:35:44,400 --> 00:35:47,480
in my place and I can be teaching them, and

620
00:35:47,880 --> 00:35:50,599
as I play, the dots show up where my fingers are.

621
00:35:50,840 --> 00:35:54,760
Not only that, I got to chord charts and chord

622
00:35:54,920 --> 00:35:58,360
names based on the music theory of it. So if

623
00:35:58,360 --> 00:36:00,920
you're interested in that codebase, I'll gladly send it to you.

624
00:36:01,079 --> 00:36:03,559
Speaker 3: I would love to see that. Yeah, that sounds amazing.

625
00:36:04,440 --> 00:36:06,119
So yeah, and I feel compelled to ask did you

626
00:36:06,119 --> 00:36:11,760
write that using events hourcing or DDD? Is how many.

627
00:36:12,119 --> 00:36:15,760
Speaker 1: It was very simple, all right, So we're going to

628
00:36:15,800 --> 00:36:17,599
take a quick break and we'll be right back with

629
00:36:17,679 --> 00:36:21,679
more with Mark Rendell. Stay tuned. Did you know that

630
00:36:21,719 --> 00:36:26,400
you can work with AWS directly from your ide Aws

631
00:36:26,440 --> 00:36:30,639
provides toolkits for visual Studio, Visual Studio code, and jet

632
00:36:30,679 --> 00:36:35,119
Brains rider Learn more at Aws dot Amazon dot com,

633
00:36:35,159 --> 00:36:40,519
slash net slash tools. You know it's common for business

634
00:36:40,559 --> 00:36:44,880
application to contain fifteen percent repetitive code just because of

635
00:36:45,000 --> 00:36:49,599
metaprogramming limitations in the C Sharp language. Why write boilerplate

636
00:36:49,719 --> 00:36:53,599
manually when a machine could generate it for you? Enter Metaalama,

637
00:36:53,840 --> 00:36:57,519
the code generation and verification toolkit for C Sharp. Their

638
00:36:57,639 --> 00:37:01,360
C Sharp to c sharp template language is simply amazing

639
00:37:01,679 --> 00:37:07,880
logging caching memento observable. If it's repetitive, Metaalama can automate it.

640
00:37:08,280 --> 00:37:11,679
Visit Metalama dot net today and learn to automate your

641
00:37:11,719 --> 00:37:15,599
code patterns with their free edition. Remember it's Metaalama with

642
00:37:15,679 --> 00:37:22,760
one L Meta la Ma dot Net. Attention dot net

643
00:37:22,760 --> 00:37:27,920
developers looking for the ultimate SDK to handle electronic document

644
00:37:28,000 --> 00:37:33,280
processing Meet TX text Control. Txtext Controls, your go to

645
00:37:33,400 --> 00:37:39,119
solution for seamless PDF generation, secure electronic signatures and efficient

646
00:37:39,239 --> 00:37:43,679
digital forms processing all within your dot net applications. Empower

647
00:37:43,679 --> 00:37:49,159
your products with robust document management capabilities, boost productivity, and

648
00:37:49,440 --> 00:37:54,280
deliver top notch solutions to your clients. Trusted by developers worldwide,

649
00:37:54,360 --> 00:37:58,280
including me and Richard. Txtext Control is the SDK that

650
00:37:58,440 --> 00:38:02,400
makes a difference. Check look out demos dot textcontrol dot

651
00:38:02,440 --> 00:38:05,840
com for live online demos and see it in action.

652
00:38:07,920 --> 00:38:10,480
And we're back. I'm Carl Franklin. That's my friend Richard

653
00:38:10,480 --> 00:38:14,679
Campbell and Mark Rendel's here, and we're talking about simplicity. Simplicity.

654
00:38:14,679 --> 00:38:16,199
And by the way, I need to remind you that

655
00:38:16,239 --> 00:38:18,079
if you don't want to hear the ads, you can

656
00:38:18,119 --> 00:38:20,239
become a five dollars a month patron of dot net

657
00:38:20,320 --> 00:38:23,320
rocks and get an ad free feed. Go to Patreon

658
00:38:23,440 --> 00:38:27,119
dot dot NetRocks dot com. Okay, so I guess you

659
00:38:27,199 --> 00:38:30,400
were talking about HTMX and.

660
00:38:30,880 --> 00:38:36,840
Speaker 3: So yeah, and HTMX is one example of simplification. People. Actually,

661
00:38:36,920 --> 00:38:40,679
I'm starting to see projects popping up that are pushing

662
00:38:40,719 --> 00:38:46,280
back against this complexity that we've created. And there are

663
00:38:46,320 --> 00:38:47,400
other examples as well.

664
00:38:47,400 --> 00:38:47,639
Speaker 2: There we are.

665
00:38:49,519 --> 00:38:54,559
Speaker 3: You don't need to run a coubonet. So the comment

666
00:38:54,599 --> 00:38:56,480
that you read at the start of the show from

667
00:38:56,679 --> 00:39:01,719
the other Mark and he were saying, how Aks and

668
00:39:01,920 --> 00:39:07,079
eks the sort of managed Kubernetes are super easy to run.

669
00:39:07,599 --> 00:39:11,159
They're really not they really they're easier.

670
00:39:11,320 --> 00:39:15,079
Speaker 2: They're easy. Err, it's only because you've been traumatized by

671
00:39:15,079 --> 00:39:16,559
trying to run Kubernetes by head.

672
00:39:16,639 --> 00:39:19,519
Speaker 3: I mean, yeah, never ever, ever try to run your

673
00:39:19,559 --> 00:39:22,840
own Kubernetes cluster, unless maybe you just want to build

674
00:39:22,880 --> 00:39:26,840
one with five Raspberry pies just for giggles. But no.

675
00:39:27,239 --> 00:39:31,000
So let's take a zero as an example, just because

676
00:39:31,079 --> 00:39:34,440
it's the one that I know best. But Microsoft support

677
00:39:34,519 --> 00:39:41,840
a version of Kubernetes I think for four versions for

678
00:39:42,039 --> 00:39:45,119
minor versions. So I think we're on like one point

679
00:39:45,280 --> 00:39:48,760
twenty one at the moment I get confused with version numbers,

680
00:39:48,880 --> 00:39:51,039
and so they will still be supporting twenty and nineteen

681
00:39:51,079 --> 00:39:53,400
and eighteen. But as soon as twenty two comes along,

682
00:39:53,480 --> 00:39:57,039
if you're still on eighteen, you need to upgrade. And

683
00:39:57,360 --> 00:40:02,840
Kubernetes versions land three monthly or six monthly, I'm not sure, so.

684
00:40:02,800 --> 00:40:05,400
Speaker 2: It means every year then you're probably agreeing so.

685
00:40:05,360 --> 00:40:07,360
Speaker 3: But you are at least once a year going to

686
00:40:07,360 --> 00:40:11,039
have to upgrade your Kubernettes cluster. And if you do it,

687
00:40:11,719 --> 00:40:14,920
if you do the upgrade the minimum number of times possible,

688
00:40:14,960 --> 00:40:17,920
then you're doing a I mean, Kubernett's versioning is a

689
00:40:17,920 --> 00:40:21,280
whole thing anyway, because those are not minor versions, they

690
00:40:21,280 --> 00:40:24,280
are major versions. A lot of the time they remove APIs,

691
00:40:24,320 --> 00:40:26,679
they deprecate APIs, and yet somehow we're still on one

692
00:40:26,679 --> 00:40:32,119
point something. And so if you want to minimize the

693
00:40:32,199 --> 00:40:33,840
number of times you have to do this, you're going

694
00:40:33,880 --> 00:40:35,559
to be going from like one dot eighteen to one

695
00:40:35,599 --> 00:40:38,199
dot twenty two. That's a lot of jump. That's a

696
00:40:38,239 --> 00:40:42,360
lot of things that in an enterprise environment, you're going

697
00:40:42,440 --> 00:40:46,360
to have people going over pages and pages and pages

698
00:40:46,360 --> 00:40:48,039
of release notes to make sure that you're not going

699
00:40:48,079 --> 00:40:52,480
to break anything. Or you upgrade every time the new

700
00:40:52,559 --> 00:40:55,679
version becomes available, which is going to take less time

701
00:40:55,760 --> 00:41:01,960
per upgrade, but potentially more time overall. And then it's

702
00:41:02,000 --> 00:41:04,239
not enough to just be running in Kubernetes. You have

703
00:41:04,400 --> 00:41:07,239
to have your service mesh, you have to have your sidecars,

704
00:41:07,320 --> 00:41:11,039
you have to have your your sort of various load

705
00:41:11,119 --> 00:41:15,119
balances and all these kinds of things, and nobody's managing

706
00:41:15,159 --> 00:41:19,119
that for you. Microsoft doesn't Microft hasn't blessed a service

707
00:41:19,199 --> 00:41:22,800
mesh because they can't because people want different things. So

708
00:41:23,159 --> 00:41:27,159
it's it's simpler, but it is by no means simple.

709
00:41:27,800 --> 00:41:31,599
And then you look at you type container into the

710
00:41:31,679 --> 00:41:34,559
creator new thing in the Azure portal, and actually the

711
00:41:34,599 --> 00:41:38,119
first thing that pops up is container app and that

712
00:41:38,760 --> 00:41:42,400
is simple. So that is build. You write your DOCA

713
00:41:42,400 --> 00:41:45,039
file or you know, in my case, right click in

714
00:41:45,719 --> 00:41:49,280
the solution explorer in jet Brain's rider and say add

715
00:41:49,320 --> 00:41:51,480
docer file and it just generates it for you with

716
00:41:51,559 --> 00:41:55,320
all the right best practices, and then do Docker build,

717
00:41:55,320 --> 00:41:58,199
and then do Docker push to your as your container registry,

718
00:41:58,800 --> 00:42:04,719
and then just deploy the thing. And underneath it all

719
00:42:04,760 --> 00:42:07,559
it's running on a massive Kubernetes.

720
00:42:07,000 --> 00:42:09,280
Speaker 2: Cluster you want to have to own.

721
00:42:09,760 --> 00:42:12,800
Speaker 3: Yes, Microsoft are taking care of everything. They're taking care

722
00:42:12,800 --> 00:42:18,480
of the service smash, the upgrade cycle, the stability and

723
00:42:18,599 --> 00:42:20,400
resilience and all those sorts of things.

724
00:42:20,639 --> 00:42:23,920
Speaker 2: Well, and arguably, if you decide it isn't running well

725
00:42:23,920 --> 00:42:26,280
in container apps and want to move to your own

726
00:42:26,440 --> 00:42:29,079
manage infrastructure, you're already there exactly.

727
00:42:29,280 --> 00:42:32,719
Speaker 3: Yeah. And equally, now you can take a container and

728
00:42:32,760 --> 00:42:35,800
you can push that towards your app service where you

729
00:42:35,840 --> 00:42:38,679
used to push web things to, which is also very

730
00:42:38,760 --> 00:42:42,639
nice and much easier than saying copy locally and all.

731
00:42:42,480 --> 00:42:43,480
Speaker 2: These various things.

732
00:42:44,280 --> 00:42:48,320
Speaker 3: So yeah, you know, on that side, there's that simplicity.

733
00:42:48,679 --> 00:42:51,960
And again it's taken us a long time to get there.

734
00:42:52,559 --> 00:42:55,599
Speaker 2: And this is Microsoft figuring out what people actually willing

735
00:42:55,639 --> 00:42:56,880
to use, right like.

736
00:42:57,039 --> 00:43:01,679
Speaker 3: Yeah, yeah, and you know, you know, the reason you

737
00:43:01,719 --> 00:43:05,039
don't get straight from A to Z is because you

738
00:43:05,079 --> 00:43:07,960
can't see zed until you've gone through B, C, D, E,

739
00:43:08,239 --> 00:43:11,599
F and everything else. Yeah, and you don't know what

740
00:43:11,639 --> 00:43:14,400
it looks like. And it's very difficult to find out

741
00:43:14,400 --> 00:43:16,760
that something's a bad idea without trying it.

742
00:43:16,960 --> 00:43:20,280
Speaker 2: Yeah, and without well, and you always have the few

743
00:43:20,320 --> 00:43:23,119
folks they get it that they're willing to put the

744
00:43:23,119 --> 00:43:26,000
time in their their customer is tolerant of it, and

745
00:43:26,000 --> 00:43:28,400
they can do this complexity. But then a whole bunch

746
00:43:28,440 --> 00:43:30,840
of others just like Nope, not doing it. And then

747
00:43:30,920 --> 00:43:33,440
you you know that in the end they have to

748
00:43:34,280 --> 00:43:35,760
you know, Microsoft looks and goes, well, we're just not

749
00:43:35,760 --> 00:43:37,800
getting enough adoption here. What if we did this, like

750
00:43:37,880 --> 00:43:40,480
they are just kind of hurling it at the wall. Yeah,

751
00:43:40,559 --> 00:43:42,880
by a bit, and eventually they stumble on to these

752
00:43:42,920 --> 00:43:45,000
approaches that are simple enough.

753
00:43:45,480 --> 00:43:48,599
Speaker 3: And you know it's the big thing has been serverless

754
00:43:48,599 --> 00:43:51,400
and still is serverless for a lot of the talks

755
00:43:51,440 --> 00:43:54,320
I'm seeing and that sort of thing, which is containers

756
00:43:54,400 --> 00:43:57,679
under the hood. It's containers under the hood. But the

757
00:43:59,159 --> 00:44:01,719
again I'm going to talk about a Zoo functions but

758
00:44:02,159 --> 00:44:06,519
equally applies to a ws lander and another Servilus platforms.

759
00:44:07,440 --> 00:44:10,800
What you end up with then is vendor lock in, right,

760
00:44:10,880 --> 00:44:14,480
because your triggers you've got like blob stories triggers, and

761
00:44:14,519 --> 00:44:17,199
there's your Q triggers and service bus triggers and event

762
00:44:17,559 --> 00:44:20,320
hub triggers and all these different things, and so you're

763
00:44:20,360 --> 00:44:24,639
locking yourself into that. But with as your container apps,

764
00:44:25,039 --> 00:44:29,320
you can use Dapper, which is an abstraction over so

765
00:44:29,360 --> 00:44:32,039
you go, I need a cash or I need a

766
00:44:32,079 --> 00:44:36,639
pub sub and then that could be reddis it could

767
00:44:36,719 --> 00:44:40,880
be as your service bus, it could be men cash

768
00:44:40,960 --> 00:44:43,760
d or Varnish, you know whatever. The different things are

769
00:44:44,000 --> 00:44:51,280
fusion cash and in your container description you just go,

770
00:44:51,559 --> 00:44:54,559
this needs a cash, give it a cash, and then

771
00:44:54,719 --> 00:45:00,199
you use the Dapper API, which will one just as well.

772
00:45:00,599 --> 00:45:05,880
You can use Dappa with containers running in amazons. D

773
00:45:06,039 --> 00:45:10,559
A p R Yes, d A p R naming definitely

774
00:45:10,599 --> 00:45:14,880
an issue at first, and Microsoft.

775
00:45:14,360 --> 00:45:17,400
Speaker 2: Well, Plus there is the other product called Dapper d

776
00:45:17,519 --> 00:45:20,079
A p p e R right, which is the.

777
00:45:20,400 --> 00:45:22,599
Speaker 1: Which is a wrapper around Adeo dot net.

778
00:45:22,880 --> 00:45:27,280
Speaker 3: Yeah, it's the kind of incredibly lightweight mapping from data

779
00:45:27,320 --> 00:45:29,440
readers to CEP objects.

780
00:45:29,719 --> 00:45:31,400
Speaker 2: I have nothing bad to say about either one, but

781
00:45:31,400 --> 00:45:33,159
they've got nothing to do with each other except when

782
00:45:33,159 --> 00:45:35,440
you say their names entirely unrelated.

783
00:45:36,719 --> 00:45:41,360
Speaker 3: But yeah, d a PR stands for Distributed Application platform something.

784
00:45:42,679 --> 00:45:47,920
But DAPPA is great, and it's I think dapper play is.

785
00:45:48,360 --> 00:45:51,199
I would put that in my simple column. It's kind

786
00:45:51,239 --> 00:45:54,119
of I need a cash. I need a way that

787
00:45:54,159 --> 00:45:57,719
I can say cash this data, now give it back,

788
00:45:58,400 --> 00:46:00,960
and I shouldn't have to care about out whether that's

789
00:46:01,000 --> 00:46:06,519
reddis or another solution or just memory. I should be

790
00:46:06,599 --> 00:46:09,559
able to say cash it, give it back, and then

791
00:46:10,000 --> 00:46:15,559
worry about how that actually happens at deployment time. And again,

792
00:46:15,639 --> 00:46:18,199
you can use dapper in Kubernetes, but you don't have to.

793
00:46:18,440 --> 00:46:22,079
You can use dapper in other environments as well, and so,

794
00:46:22,440 --> 00:46:24,880
and I just want to push people in that direction.

795
00:46:25,119 --> 00:46:27,480
Speaker 2: I've well, and what I appreciate this is that you're

796
00:46:27,519 --> 00:46:30,599
still giving us access to all of this complexity without

797
00:46:30,639 --> 00:46:31,639
making it complicated.

798
00:46:32,000 --> 00:46:32,239
Speaker 3: Yeah.

799
00:46:32,480 --> 00:46:35,679
Speaker 2: Right, you're not saying no containers, You're saying containers that

800
00:46:35,760 --> 00:46:37,280
don't make you want to stab yourself.

801
00:46:38,079 --> 00:46:42,239
Speaker 3: Well, I mean containers. Containers are absolutely the simplest way

802
00:46:42,239 --> 00:46:44,320
of deploying an application. Sure, you know you need a

803
00:46:44,360 --> 00:46:48,639
Linux dependency like lib zip or something like that, Just

804
00:46:48,679 --> 00:46:51,320
don't make me edit apt get in the docer file

805
00:46:51,360 --> 00:46:54,679
and you've got it. Yeah, it's that, it's that original thing.

806
00:46:54,679 --> 00:46:56,760
If it works on my machine, I'm going to ship

807
00:46:56,760 --> 00:47:01,280
my machine. Yeah. And so yeah, containers I think are

808
00:47:01,280 --> 00:47:03,920
the simplest unit of deployment we've come up with yet.

809
00:47:04,800 --> 00:47:07,880
And it's just a matter of where do you run them?

810
00:47:07,880 --> 00:47:10,760
And do you need to run your Kubernetes cluster.

811
00:47:10,920 --> 00:47:15,199
Speaker 2: Yeah, And you know we're we're not complaining about containers.

812
00:47:15,199 --> 00:47:17,760
We're complaining about the orchestrators totally.

813
00:47:17,960 --> 00:47:24,440
Speaker 3: Yeah. Management and the assumption that because sort of Facebook

814
00:47:24,440 --> 00:47:26,920
and Netflix and Uber are using something that it's the

815
00:47:26,960 --> 00:47:29,360
right solution for your company.

816
00:47:29,599 --> 00:47:30,880
Speaker 2: Right, You're not them.

817
00:47:31,039 --> 00:47:34,239
Speaker 3: You're not them, And they have armies of engineers whose

818
00:47:34,360 --> 00:47:38,480
only job is to maintain those that infrastructure.

819
00:47:38,199 --> 00:47:40,719
Speaker 2: And test new versions and roll them out and all

820
00:47:40,760 --> 00:47:42,960
of that sort of stuff, and all that stuff if

821
00:47:42,960 --> 00:47:45,800
you need it, but if you don't. At the same time,

822
00:47:45,840 --> 00:47:47,599
you don't want to cut yourself off from the possibility

823
00:47:47,599 --> 00:47:48,920
that you might become one of these things.

824
00:47:49,760 --> 00:47:53,199
Speaker 3: Oh yeah, yeah. But if everything's just docophiles and containers,

825
00:47:53,519 --> 00:47:55,320
and at some point you go, actually, you know, it

826
00:47:55,320 --> 00:47:57,199
would be a lot cheaper when you get to the

827
00:47:57,239 --> 00:48:01,079
point where you're spending so much on as you're container apps,

828
00:48:01,760 --> 00:48:05,639
that you could not only run your own cubernettes cluster,

829
00:48:05,719 --> 00:48:07,840
but employ somebody full time to keep an eye on

830
00:48:07,880 --> 00:48:11,079
it and do the upgrades and everything. That's the point

831
00:48:11,079 --> 00:48:11,760
at which you switch.

832
00:48:12,039 --> 00:48:15,360
Speaker 2: Certainly on the run as side of things. For me,

833
00:48:15,599 --> 00:48:18,119
I'm having conversations with folks who are like, no, we

834
00:48:18,199 --> 00:48:20,760
repatriated this because we already run a twenty four to

835
00:48:20,800 --> 00:48:24,400
seven knock and it was we were committed to doing

836
00:48:24,440 --> 00:48:27,360
these things in this workload. Now that we truly understood

837
00:48:27,360 --> 00:48:29,679
the shape of it in the cloud made more sense

838
00:48:29,719 --> 00:48:32,800
running at home. Yes, but that's a big lift, right, Like,

839
00:48:32,840 --> 00:48:34,599
it's not a small things.

840
00:48:34,559 --> 00:48:39,840
Speaker 3: Really, and the same thing goes I mean, I was

841
00:48:40,480 --> 00:48:43,800
complaining about people downloading fifteen megabytes of JavaScript or WASM

842
00:48:43,880 --> 00:48:46,880
or whatever to run something in the browser. There are

843
00:48:47,400 --> 00:48:50,760
legitimate use cases for that. Adobe now have inside the

844
00:48:50,760 --> 00:48:59,159
network Photoshop and light Room as WASM compiled browser apps, right, So,

845
00:48:59,320 --> 00:49:02,920
and yeah, you know, if you want to edit photos

846
00:49:03,280 --> 00:49:07,119
and clean up red eye using AI algorithms, and you

847
00:49:07,159 --> 00:49:10,719
want to do it in your browser, then you need

848
00:49:10,760 --> 00:49:14,039
to download all that PLASM and that sort of thing,

849
00:49:14,039 --> 00:49:17,159
because you can't have somebody doing a round trip every

850
00:49:17,159 --> 00:49:22,840
time they make a change with a multi megabyte image

851
00:49:22,840 --> 00:49:24,400
file uncompressed.

852
00:49:24,480 --> 00:49:26,760
Speaker 2: Arguably, you're still stopping about you're still talking about the

853
00:49:26,800 --> 00:49:30,159
simplest case. In this case. The simplest case is stick

854
00:49:30,199 --> 00:49:32,519
the whole thing in a ASIM file and stuff for

855
00:49:33,039 --> 00:49:34,039
the download overhead.

856
00:49:34,519 --> 00:49:38,679
Speaker 3: It's that as simple as possible. And thinking about what

857
00:49:38,719 --> 00:49:42,079
that means for you for this project that you're working

858
00:49:42,119 --> 00:49:44,199
on today, it.

859
00:49:44,159 --> 00:49:46,280
Speaker 2: Feels like you're just pressing against the defiles that we're

860
00:49:46,440 --> 00:49:48,719
choosing complexity we don't need.

861
00:49:49,199 --> 00:49:55,159
Speaker 3: Yes, yeah, and I think that, and it's not I'm

862
00:49:55,199 --> 00:50:00,599
absolutely not blaming developers in isolation for this, because I

863
00:50:00,639 --> 00:50:05,960
think that the IT department, there were CTOs out there,

864
00:50:06,039 --> 00:50:10,679
there were CIOs and they're going to their own conferences

865
00:50:10,880 --> 00:50:15,440
and being sold this stuff by people with very very

866
00:50:15,480 --> 00:50:18,960
effective marketing machines, and then they come back and go weak.

867
00:50:19,199 --> 00:50:22,159
Speaker 2: And motivation is not involving keeping things simple.

868
00:50:22,599 --> 00:50:24,199
Speaker 3: Yeah, And they come back and they go, we have

869
00:50:24,239 --> 00:50:26,199
to adopt this because it's the next big thing, and

870
00:50:27,760 --> 00:50:31,679
not doing proper kind of cost benefit analysis and those

871
00:50:31,719 --> 00:50:34,880
things to work out whether it actually is the right thing.

872
00:50:36,119 --> 00:50:39,960
Speaker 1: Something just occurred to me about Blazer server. I remember

873
00:50:40,719 --> 00:50:43,400
having customers say they didn't like blazer server because if

874
00:50:43,440 --> 00:50:46,360
the connection goes down, like they get that what I

875
00:50:46,480 --> 00:50:50,280
call the transparent veil of death. Oh yeah, you know

876
00:50:50,320 --> 00:50:53,480
you have screens of death. This is a transparent so

877
00:50:53,519 --> 00:50:58,679
it turns slightly transparent or translucent translucent, and you know

878
00:50:59,159 --> 00:51:01,920
you have to press the reload buttons. So apparently in

879
00:51:02,000 --> 00:51:06,280
that net nine that is becoming much less frequent, Like

880
00:51:06,400 --> 00:51:10,280
the whole automatic reconnection thing is just going to happen.

881
00:51:10,559 --> 00:51:16,679
Speaker 3: And I believe that they can make that acceptable to everybody,

882
00:51:16,760 --> 00:51:19,800
certainly to the real tech guys. So instead of it

883
00:51:19,880 --> 00:51:24,320
going slightly transparent, don't change the UI at all, right,

884
00:51:25,639 --> 00:51:28,800
just but it's frozen and it doesn't update and then

885
00:51:28,880 --> 00:51:30,800
just change the cursor to a spinning beach ball and

886
00:51:30,800 --> 00:51:31,880
everybody will be happy.

887
00:51:32,039 --> 00:51:33,360
Speaker 2: Everybody will know what's happening.

888
00:51:33,679 --> 00:51:36,360
Speaker 3: Yeah, it's like to say.

889
00:51:36,320 --> 00:51:38,880
Speaker 1: The UI and spin beach ball, and then when it

890
00:51:38,880 --> 00:51:39,559
comes back.

891
00:51:39,719 --> 00:51:42,000
Speaker 2: Why do they need to build a new view of that?

892
00:51:42,119 --> 00:51:42,320
Speaker 1: You know?

893
00:51:42,840 --> 00:51:45,519
Speaker 2: Yeah, that's the thing we trust you can you can

894
00:51:45,559 --> 00:51:48,159
be very subtle. I think it also indicates that possibly

895
00:51:48,199 --> 00:51:50,840
we will recover the veil. Doesn't give you a sense

896
00:51:50,840 --> 00:51:54,639
you're going to recover no veils, like call tech support. Yeah,

897
00:51:54,679 --> 00:51:55,360
what does this mean?

898
00:51:56,360 --> 00:51:57,679
Speaker 3: It's gone it's gone wrong.

899
00:51:57,719 --> 00:52:00,559
Speaker 2: We have pulled the sheet over the body drug.

900
00:52:02,440 --> 00:52:05,559
Speaker 3: But it does it makes sense in a context where

901
00:52:05,599 --> 00:52:07,960
you do have to hit control R or F five

902
00:52:08,079 --> 00:52:10,719
or whatever to refresh the page to get it to reload.

903
00:52:10,760 --> 00:52:16,280
But once they've got that reconnect and heal process working

904
00:52:16,320 --> 00:52:17,760
properly and smoothly, then so.

905
00:52:17,719 --> 00:52:20,039
Speaker 1: Anyway, I haven't checked it out in that NET nine,

906
00:52:20,079 --> 00:52:23,599
but I hear that it's a major feature upgrade of Blazer.

907
00:52:23,639 --> 00:52:26,599
There aren't very many.

908
00:52:25,840 --> 00:52:29,760
Speaker 2: Fewer veils is a good one. Yeah, that'll make people

909
00:52:29,760 --> 00:52:30,719
happier without a doubt.

910
00:52:30,800 --> 00:52:31,000
Speaker 1: Yeah.

911
00:52:31,079 --> 00:52:32,880
Speaker 3: The other thing that I talk about at the end

912
00:52:32,920 --> 00:52:35,679
of the talk is is process. How we went from

913
00:52:35,960 --> 00:52:38,599
kind of s S A d M and prints to

914
00:52:39,400 --> 00:52:43,239
and all the waterfall things. And then there was extreme programming.

915
00:52:43,400 --> 00:52:47,559
But extreme programming generally only works when you've got Kent

916
00:52:47,639 --> 00:52:51,280
Beck and Ward Cunningham and extream programmers and you know,

917
00:52:52,199 --> 00:52:55,400
some of the greatest programmers who've ever lived, all in

918
00:52:55,440 --> 00:52:57,519
a room together, going how are we going to build this?

919
00:52:58,119 --> 00:53:00,440
So you can't do that on your average team of

920
00:53:00,599 --> 00:53:04,519
developers hired off of LinkedIn. And so then we got Agile,

921
00:53:04,800 --> 00:53:07,559
which was trying to make it so that we could

922
00:53:08,079 --> 00:53:11,000
where you get a scrum master and a product owner.

923
00:53:11,800 --> 00:53:15,960
And I've worked on multiple teams that called themselves agile

924
00:53:16,000 --> 00:53:18,880
and said they were doing scrum, that didn't have a

925
00:53:18,920 --> 00:53:21,880
scrum master, had a scrum master who was just a

926
00:53:21,920 --> 00:53:26,000
project manager anyway and wasn't really doing the scrum mastery things,

927
00:53:26,599 --> 00:53:29,800
and in an awful lot of cases, no product owner

928
00:53:29,960 --> 00:53:34,079
at all. Yeah, agile is is agile ish scrum butt.

929
00:53:36,000 --> 00:53:40,519
Speaker 1: And yeah scrum, but we don't do this except.

930
00:53:41,800 --> 00:53:46,480
Speaker 3: And then you see the scaled Agile framework for enterprise

931
00:53:46,519 --> 00:53:50,079
and the lean scaled Agile framework for enterprise, and the

932
00:53:50,159 --> 00:53:54,280
lean one is like for small to medium enterprises and

933
00:53:54,360 --> 00:53:58,519
it seems it's like the London Underground Tube map. It's

934
00:53:58,639 --> 00:54:03,280
just all the different things. And then when I'm sitting

935
00:54:03,519 --> 00:54:07,400
I'm sort of working on the new version of threat Badger,

936
00:54:07,440 --> 00:54:09,039
which is going to look exactly the same as the

937
00:54:09,039 --> 00:54:11,800
old version. I'm also working on another thing. I just

938
00:54:11,880 --> 00:54:16,960
use can ban board. I have a backlog column and

939
00:54:17,000 --> 00:54:20,639
a ready to do column, and a doing column and

940
00:54:20,679 --> 00:54:23,800
a done column when it's just me because I considered

941
00:54:23,840 --> 00:54:26,000
the testing and everything part of that, but you because

942
00:54:26,039 --> 00:54:31,880
it will put uat and everything in there. And the

943
00:54:32,519 --> 00:54:34,639
real issue that came along with scrum was you have

944
00:54:34,679 --> 00:54:38,559
your backlog grooming sessions, which are like weekly regardless of

945
00:54:38,800 --> 00:54:41,519
how many weeks you have in a sprint. Then you

946
00:54:41,559 --> 00:54:46,840
have your sprint planning session, and then you have your

947
00:54:46,880 --> 00:54:51,159
daily stand ups, which everyone tries to keep to fifteen minutes,

948
00:54:51,199 --> 00:54:53,159
but a lot of the time they run, you know,

949
00:54:53,239 --> 00:54:57,119
upwards of half an hour. And then you have your

950
00:54:57,599 --> 00:55:03,960
your retrospective and your demo and your sprint review. And

951
00:55:04,440 --> 00:55:08,320
if you're doing two week sprints, you've got ten days

952
00:55:08,920 --> 00:55:13,079
and you're spending like twenty percent of that in the

953
00:55:13,199 --> 00:55:16,719
various meetings, which means you're not building anything you're not

954
00:55:16,760 --> 00:55:21,159
shipping anything, you're not delivering anything, and where's the value.

955
00:55:21,440 --> 00:55:23,239
And if you are a small team of six or

956
00:55:23,280 --> 00:55:30,679
eight developers, and you are, if you're homogeneous, if you

957
00:55:30,760 --> 00:55:33,559
all know the domain and all the different technologies and

958
00:55:33,559 --> 00:55:35,519
all this sort of thing, then anyone can take any

959
00:55:35,679 --> 00:55:40,039
ticket from the ready to do column and say I'm

960
00:55:40,039 --> 00:55:43,039
doing this, and you can prioritize them just by moving

961
00:55:43,039 --> 00:55:46,639
them up and down. And you don't get into this

962
00:55:46,719 --> 00:55:51,400
thing and ah story points and T shirt sizes and

963
00:55:51,440 --> 00:55:56,400
all that stuff, and it's just kind of you don't

964
00:55:56,440 --> 00:55:59,559
have to do all that stuff. You can just put

965
00:55:59,599 --> 00:56:01,719
a board up and put some stories on it and

966
00:56:01,760 --> 00:56:05,519
move them across and just keep shipping and delivering.

967
00:56:05,639 --> 00:56:08,400
Speaker 1: One step up from a notepad totally pretty much.

968
00:56:08,480 --> 00:56:09,280
Speaker 3: Yeah, you know.

969
00:56:09,360 --> 00:56:10,960
Speaker 2: When you mentioned the cam member in the first thing,

970
00:56:11,280 --> 00:56:13,400
it's just a way to visualize where we're stuck.

971
00:56:13,559 --> 00:56:13,920
Speaker 1: That's right.

972
00:56:14,199 --> 00:56:15,920
Speaker 2: That everybody can see that. You don't have to have

973
00:56:15,960 --> 00:56:18,280
a meeting. Nobody has to memorize, like you see it

974
00:56:18,400 --> 00:56:20,760
every day and you see it when it don.

975
00:56:20,719 --> 00:56:24,400
Speaker 3: Sticks yes, and you know people can kind of go,

976
00:56:24,679 --> 00:56:26,599
that was there yesterday, why is it still there today?

977
00:56:27,280 --> 00:56:29,719
I'll go and ask him rather than having a stand up.

978
00:56:30,119 --> 00:56:33,360
The idea that you set aside fifteen minutes in the morning,

979
00:56:33,480 --> 00:56:35,519
I think it appeals to developers is like, all right,

980
00:56:35,519 --> 00:56:37,880
so I have to talk to people for fifteen minutes,

981
00:56:37,920 --> 00:56:43,119
but then yeah, I get th headphones on, getting motivated

982
00:56:43,199 --> 00:56:47,079
to be a low Yeah, it's another it's that developer

983
00:56:47,119 --> 00:56:47,760
experience thing.

984
00:56:47,800 --> 00:56:48,039
Speaker 2: Again.

985
00:56:48,119 --> 00:56:51,320
Speaker 3: We don't like talking to each other, so just contain

986
00:56:51,400 --> 00:56:54,039
it to work things. But no, you should be getting.

987
00:56:53,760 --> 00:56:56,159
Speaker 1: Out of the way, have a couple of cups of coffee.

988
00:56:57,519 --> 00:56:59,519
Speaker 2: Show has just been about containers, right, It's just that.

989
00:57:02,320 --> 00:57:07,400
Speaker 3: Can contain the complexity. So yeah, So, like I say,

990
00:57:07,440 --> 00:57:12,480
I'm going to be doing that that talk. That's my

991
00:57:12,480 --> 00:57:15,920
my sort of tech talk for the next year at least.

992
00:57:17,639 --> 00:57:20,840
And oh, I would like to shout out Alex Russell.

993
00:57:22,320 --> 00:57:24,960
I think slightly late is his sort of handle on

994
00:57:25,119 --> 00:57:28,519
various media and everything. So and he worked on the

995
00:57:28,559 --> 00:57:31,159
Chrome browser for a long time, on the jamscript, run

996
00:57:31,159 --> 00:57:34,639
time v eight, that sort of thing. And he is

997
00:57:35,320 --> 00:57:38,440
like the little Dutch boy with his finger in the

998
00:57:38,519 --> 00:57:42,719
in the dam saying please please stop using all these

999
00:57:42,800 --> 00:57:46,360
JavaScript frameworks and everything. And so I was some of

1000
00:57:46,400 --> 00:57:49,000
the inspiration for the talk came from reading his blog

1001
00:57:49,000 --> 00:57:51,079
posts as well, so shout out to him.

1002
00:57:51,360 --> 00:57:53,280
Speaker 2: Great infrequently noted is his blood.

1003
00:57:53,320 --> 00:57:54,079
Speaker 3: There we go, that's the one.

1004
00:57:54,159 --> 00:57:56,280
Speaker 2: Yeah, yeah, I'll throw it, including the show notes. I've

1005
00:57:56,280 --> 00:57:58,679
read it before. He's he is quite brilliant.

1006
00:57:58,920 --> 00:58:00,679
Speaker 3: He is. He is a very very smart guy and

1007
00:58:00,719 --> 00:58:03,440
we should listen to him.

1008
00:58:03,519 --> 00:58:08,360
Speaker 1: Not wrong. Yeah, so you got this talk. Where are

1009
00:58:08,400 --> 00:58:11,400
you going to be delivering that in the upcoming months?

1010
00:58:11,639 --> 00:58:14,119
Speaker 3: So next year it's probably going to be at the

1011
00:58:14,239 --> 00:58:19,960
NDC conferences, go to conferences possibly dev Ox. DeVos have

1012
00:58:20,039 --> 00:58:23,559
started asking me to come and do things now because

1013
00:58:23,559 --> 00:58:26,320
I've been doing all these you know how JavaScript happened

1014
00:58:26,320 --> 00:58:29,440
and the Albatross project and programming as great as mistakes,

1015
00:58:29,800 --> 00:58:32,760
so they're not tech specific and so I'm getting to

1016
00:58:32,800 --> 00:58:36,239
go and do other conferences and meet entirely new audiences,

1017
00:58:36,280 --> 00:58:39,760
which is wonderful. One. I'm really enjoying it. And also

1018
00:58:39,800 --> 00:58:42,360
my kids are at that age now where I can

1019
00:58:43,679 --> 00:58:47,039
do more traveling and speaking engagements, and I'm really looking

1020
00:58:47,039 --> 00:58:48,159
forward to getting into it.

1021
00:58:48,280 --> 00:58:52,719
Speaker 1: Yeah, there's a couple of conferences in Sweden in Stockholm

1022
00:58:52,840 --> 00:58:56,280
that happened every year. You have Sam and sweet Toob.

1023
00:58:56,719 --> 00:58:59,400
Speaker 3: Yes, i will definitely try and get to dev some

1024
00:59:01,440 --> 00:59:03,519
I've done that a couple of times. That's always a

1025
00:59:03,559 --> 00:59:06,360
good conference. But yes, if anyone's listening to this and

1026
00:59:06,400 --> 00:59:11,079
would like me to come to your your massive conference

1027
00:59:11,119 --> 00:59:13,920
with three thousand attendees, but even if you would just

1028
00:59:14,000 --> 00:59:16,079
like me to pop over and talk to a meetup

1029
00:59:16,159 --> 00:59:20,000
or a user group or something, then get in touch

1030
00:59:20,880 --> 00:59:22,280
and we'll see what we can do.

1031
00:59:22,519 --> 00:59:25,400
Speaker 2: Check out the render lads link is on the show notes.

1032
00:59:25,519 --> 00:59:28,840
Speaker 1: Just grab a busfair a sandwich in a hostel.

1033
00:59:29,079 --> 00:59:33,119
Speaker 3: Yeah, that'll do me. Wake outch have base will travel.

1034
00:59:33,400 --> 00:59:34,119
Speaker 2: Yeah, there you go.

1035
00:59:34,719 --> 00:59:37,079
Speaker 1: Mark. It's always a pleasure talking to you. You always

1036
00:59:37,480 --> 00:59:39,960
bring something interesting to the table and this is no difference.

1037
00:59:39,960 --> 00:59:42,239
Speaker 3: So thank you, thank you for having me on again.

1038
00:59:42,280 --> 00:59:43,960
It's it's really great talking with you guys.

1039
00:59:44,000 --> 00:59:46,599
Speaker 1: All right, we'll talk to you next time. I'm dot

1040
00:59:46,679 --> 01:00:09,800
net Rucks. Dot net Rocks is brought to you by

1041
01:00:09,880 --> 01:00:14,559
Franklin's Net and produced by Pop Studios, a full service audio,

1042
01:00:14,679 --> 01:00:19,119
video and post production facility located physically in New London, Connecticut,

1043
01:00:19,360 --> 01:00:24,159
and of course in the cloud online at pwop dot com.

1044
01:00:24,360 --> 01:00:26,480
Visit our website at d O t N E t

1045
01:00:26,719 --> 01:00:30,760
R O c k S dot com for RSS feeds, downloads,

1046
01:00:30,880 --> 01:00:34,599
mobile apps, comments, and access to the full archives going

1047
01:00:34,599 --> 01:00:38,000
back to show number one, recorded in September two thousand

1048
01:00:38,039 --> 01:00:40,679
and two. And make sure you check out our sponsors.

1049
01:00:40,840 --> 01:00:43,840
They keep us in business. Now go write some code.

1050
01:00:44,199 --> 01:01:01,239
See you next time you got jed middle vansported the

1051
01:01:01,679 --> 01:01:01,719
s

