WEBVTT

1
00:00:01.080 --> 00:00:04.799
<v Speaker 1>How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05.360 --> 00:00:08.560
<v Speaker 1>Become a patron for just five dollars a month. You

3
00:00:08.599 --> 00:00:11.320
<v Speaker 1>get access to a private RSS feed where all the

4
00:00:11.359 --> 00:00:14.560
<v Speaker 1>shows have no ads. Twenty dollars a month, we'll get

5
00:00:14.599 --> 00:00:18.440
<v Speaker 1>you that and a special dot NetRocks patron mug. Sign

6
00:00:18.519 --> 00:00:22.120
<v Speaker 1>up now at Patreon dot dot NetRocks dot com.

7
00:00:22.160 --> 00:00:24.679
<v Speaker 2>Hey Carl and Richard here with your twenty twenty four

8
00:00:25.000 --> 00:00:26.000
<v Speaker 2>DC schedule.

9
00:00:26.320 --> 00:00:29.640
<v Speaker 1>We'll be at as many NDC conferences as possible this year,

10
00:00:29.960 --> 00:00:33.200
<v Speaker 1>and you should consider attending no matter what. The Copenhagen

11
00:00:33.240 --> 00:00:37.640
<v Speaker 1>Developers Festival happens August twenty sixth through the thirtieth. Tickets

12
00:00:37.679 --> 00:00:40.719
<v Speaker 1>at Cphdevfest dot com.

13
00:00:40.880 --> 00:00:44.719
<v Speaker 2>Ndcporto is happening October fourteenth through the eighteenth. Tickets at

14
00:00:44.799 --> 00:00:46.600
<v Speaker 2>Ndcporto dot com.

15
00:00:46.600 --> 00:01:03.119
<v Speaker 1>We'll see you there, we hope. Welcome back. It's dot

16
00:01:03.200 --> 00:01:06.120
<v Speaker 1>net Rox. I'm Carl Franklin and Amateur Campbell and we're

17
00:01:06.159 --> 00:01:08.359
<v Speaker 1>here with Mark Rendell. We're going to introduce him in

18
00:01:08.400 --> 00:01:10.280
<v Speaker 1>a minute, but first I want to check him in

19
00:01:10.319 --> 00:01:12.799
<v Speaker 1>by Buddy Richard. You ready for dev Intersection Well, and

20
00:01:12.920 --> 00:01:13.719
<v Speaker 1>this show publishes.

21
00:01:13.760 --> 00:01:15.400
<v Speaker 2>We will be most of the way through the show,

22
00:01:15.439 --> 00:01:17.519
<v Speaker 2>I think we'll be close to doing like the closing

23
00:01:17.599 --> 00:01:22.200
<v Speaker 2>session and stuff as we usually do. Right, Yeah, yeah, yeah, No,

24
00:01:22.280 --> 00:01:24.239
<v Speaker 2>we got our got our act together, got a new

25
00:01:24.400 --> 00:01:29.200
<v Speaker 2>version of a generative AI show, which has been an

26
00:01:29.200 --> 00:01:31.439
<v Speaker 2>adventure to put together. Boy boy, there are a lot

27
00:01:31.439 --> 00:01:34.920
<v Speaker 2>of AI conferences right now. Yeah, I know it's little nuts.

28
00:01:34.719 --> 00:01:38.640
<v Speaker 1>But still dev intersection with all your favorite Microsoft people

29
00:01:38.799 --> 00:01:41.000
<v Speaker 1>and YE speakers.

30
00:01:40.519 --> 00:01:42.719
<v Speaker 2>The Hanselman's and the Hunters and all that good stuff.

31
00:01:42.760 --> 00:01:42.920
<v Speaker 3>Yeah.

32
00:01:42.959 --> 00:01:45.760
<v Speaker 1>The Scott's, Yeah, the major Scott and the lesser Scott's.

33
00:01:46.879 --> 00:01:49.400
<v Speaker 2>They're all vps. Now I mean this, there's one Guthrie

34
00:01:49.400 --> 00:01:52.400
<v Speaker 2>but he's not there. But you know he's on sabbatical.

35
00:01:52.799 --> 00:01:53.760
<v Speaker 2>What's up with that? Yeah?

36
00:01:53.760 --> 00:01:56.040
<v Speaker 1>What is that with that? What does Scott Guphery do

37
00:01:56.079 --> 00:01:58.760
<v Speaker 1>on sabbatical? Does he read tech manuals? Does he create

38
00:01:58.799 --> 00:02:01.959
<v Speaker 1>a few more patents? No, he's got teenage boys. I

39
00:02:02.000 --> 00:02:04.519
<v Speaker 1>think he's got other things to worry about. Yeah, that's good.

40
00:02:04.959 --> 00:02:08.439
<v Speaker 1>All right, Well let's jump into better note of framework.

41
00:02:08.560 --> 00:02:09.560
<v Speaker 1>Roll the crazy music.

42
00:02:09.680 --> 00:02:18.800
<v Speaker 2>Awesome? Alight, do you go?

43
00:02:19.039 --> 00:02:22.000
<v Speaker 1>So this was our clickbait story on security this week.

44
00:02:22.360 --> 00:02:23.840
<v Speaker 2>But it's not clickbait if it's true.

45
00:02:24.120 --> 00:02:25.560
<v Speaker 1>Yeah, I know, but that's what we call him.

46
00:02:25.599 --> 00:02:27.280
<v Speaker 2>We called it.

47
00:02:27.400 --> 00:02:29.759
<v Speaker 1>The last story is always the one people want to

48
00:02:29.800 --> 00:02:32.800
<v Speaker 1>hear about the most, you know, so we let them

49
00:02:32.840 --> 00:02:35.039
<v Speaker 1>slog through all the other stories and then we spring

50
00:02:35.039 --> 00:02:37.000
<v Speaker 1>it on them. So here it is. You're you're not

51
00:02:37.000 --> 00:02:42.639
<v Speaker 1>going to believe this. Researchers find sequel injection to bypass

52
00:02:42.800 --> 00:02:45.159
<v Speaker 1>Airport TSA security checks.

53
00:02:45.360 --> 00:02:45.639
<v Speaker 2>Nice.

54
00:02:46.000 --> 00:02:48.840
<v Speaker 1>So what this means is there is a vulnerability where

55
00:02:49.360 --> 00:02:53.759
<v Speaker 1>somebody could use SEQL injection when they bought a ticket,

56
00:02:54.159 --> 00:02:57.560
<v Speaker 1>and that ticket could give them status as crew, right,

57
00:02:57.759 --> 00:03:01.080
<v Speaker 1>and then they could walk right on, go right up

58
00:03:01.120 --> 00:03:05.159
<v Speaker 1>into the you know, the bulkhead seats or whatever, sit

59
00:03:05.280 --> 00:03:10.960
<v Speaker 1>down and enjoy all of the crew you know amenities.

60
00:03:11.120 --> 00:03:13.280
<v Speaker 2>Not that there's not many of crew amenities, but yeah,

61
00:03:13.280 --> 00:03:15.080
<v Speaker 2>you're definitely gonna have access to more seats.

62
00:03:15.280 --> 00:03:15.520
<v Speaker 1>Yeah.

63
00:03:15.599 --> 00:03:18.680
<v Speaker 2>The bigger one here is that you know, you can

64
00:03:18.719 --> 00:03:22.039
<v Speaker 2>go to the crew line at the TSA. Yeah, yeah,

65
00:03:22.199 --> 00:03:25.159
<v Speaker 2>and they that's a very cursorly view. And you don't

66
00:03:25.199 --> 00:03:27.400
<v Speaker 2>have to be dressed as crew, I mean, you don't

67
00:03:27.400 --> 00:03:30.520
<v Speaker 2>have to be working on that flight, right, but if

68
00:03:30.560 --> 00:03:32.800
<v Speaker 2>you are crew, you get a special pass and you

69
00:03:32.879 --> 00:03:36.840
<v Speaker 2>get all sorts of amenities. Yeah, interesting. Yeah, they normally

70
00:03:36.879 --> 00:03:38.919
<v Speaker 2>check ID, So I wonder if you actually try to

71
00:03:38.960 --> 00:03:42.080
<v Speaker 2>do that, if if when you got to the line,

72
00:03:42.080 --> 00:03:43.039
<v Speaker 2>they're like, where's your ID?

73
00:03:43.319 --> 00:03:46.680
<v Speaker 1>Now that's just you know, raining on my parade here, Richard.

74
00:03:46.840 --> 00:03:49.960
<v Speaker 2>I still love that that, you know, sequel injection attacks.

75
00:03:50.039 --> 00:03:52.759
<v Speaker 1>Yeah, sequel injection. I thought we were done with this.

76
00:03:53.120 --> 00:03:53.319
<v Speaker 3>Nah.

77
00:03:53.599 --> 00:03:55.960
<v Speaker 2>No, still like it's number one or number two in

78
00:03:55.960 --> 00:03:56.960
<v Speaker 2>the O ausp tense.

79
00:03:57.120 --> 00:04:00.159
<v Speaker 1>Oh of course, yeah, yeah, still still it was it's

80
00:04:00.159 --> 00:04:02.080
<v Speaker 1>like sixteen years ago we learned about this.

81
00:04:02.360 --> 00:04:05.159
<v Speaker 2>Yeah, yeah, it's been it's been decades, and it's just

82
00:04:05.199 --> 00:04:09.599
<v Speaker 2>a you know, sanitize your inputs. Bobby Tables is out there.

83
00:04:10.000 --> 00:04:11.800
<v Speaker 1>And Bobby Tables you got to watch out for him.

84
00:04:11.800 --> 00:04:13.639
<v Speaker 1>All right, That's what I got. Who's talking to us today?

85
00:04:13.680 --> 00:04:16.120
<v Speaker 2>Richard grabbed a comment off a show eighteen eighty eight,

86
00:04:16.160 --> 00:04:18.360
<v Speaker 2>the one we did with Steve Smith talking about modular monoliths,

87
00:04:18.399 --> 00:04:20.360
<v Speaker 2>and I know we're going to talk about simplicity with Mark,

88
00:04:20.439 --> 00:04:24.040
<v Speaker 2>So I thought this conversation just tied in so well

89
00:04:24.079 --> 00:04:27.439
<v Speaker 2>with that whole problem space, because that's the show that

90
00:04:28.000 --> 00:04:32.439
<v Speaker 2>Smith did focused on, you know, simplifying a monolith, tearing

91
00:04:32.519 --> 00:04:35.319
<v Speaker 2>out pieces to optimize them. That kind of thing that

92
00:04:35.399 --> 00:04:38.439
<v Speaker 2>whole idea that you don't have to go totally micro services.

93
00:04:38.439 --> 00:04:40.240
<v Speaker 2>You can just do what you need to do. And

94
00:04:40.279 --> 00:04:42.399
<v Speaker 2>Mark had this comedy. He said it was a different Mark,

95
00:04:42.720 --> 00:04:45.160
<v Speaker 2>not our gas card. He said. From an application level,

96
00:04:45.160 --> 00:04:47.040
<v Speaker 2>I agree with Steve's point of view that we to

97
00:04:47.079 --> 00:04:49.240
<v Speaker 2>start with a monolith and then split off whatever needs

98
00:04:49.240 --> 00:04:51.879
<v Speaker 2>to be spun into its own services as the need arises.

99
00:04:52.079 --> 00:04:54.160
<v Speaker 2>From a hosting point of view, though the reality is

100
00:04:54.199 --> 00:04:57.879
<v Speaker 2>most businesses unfortunately, when you start down one technical direction,

101
00:04:58.040 --> 00:05:00.839
<v Speaker 2>regardless of what it is, you're likely to keep going

102
00:05:00.920 --> 00:05:05.720
<v Speaker 2>down that forever because temporary solutions become permanently yep. For example,

103
00:05:06.160 --> 00:05:08.720
<v Speaker 2>moving from something like app service to Kubernetes is a

104
00:05:08.800 --> 00:05:11.959
<v Speaker 2>huge jump and it'll be hard to get business buy

105
00:05:12.040 --> 00:05:14.639
<v Speaker 2>in for what the need arises from it. Yeah, and

106
00:05:14.680 --> 00:05:16.360
<v Speaker 2>I found you can use something like Kubernetes as a

107
00:05:16.399 --> 00:05:19.319
<v Speaker 2>service from the onset, but with very minimal setup thanks

108
00:05:19.360 --> 00:05:22.879
<v Speaker 2>to manage the services like as your Kubernetes services, which

109
00:05:22.879 --> 00:05:25.439
<v Speaker 2>gives you the flexibility to about resilience and scalability and

110
00:05:25.439 --> 00:05:28.040
<v Speaker 2>everything else as the need arises without having to overhaul

111
00:05:28.079 --> 00:05:31.040
<v Speaker 2>the entire system architecture. And I appreciate the thinking Mark,

112
00:05:31.079 --> 00:05:34.000
<v Speaker 2>because my workaround would be to stay in app service,

113
00:05:34.240 --> 00:05:38.600
<v Speaker 2>but then to spin off the problem service as a

114
00:05:39.079 --> 00:05:41.399
<v Speaker 2>logic app right right, that just you know, make it

115
00:05:41.399 --> 00:05:43.959
<v Speaker 2>a servilest component. It just gets called the same and

116
00:05:44.000 --> 00:05:46.720
<v Speaker 2>you can keep it in the security context. But I'm

117
00:05:46.759 --> 00:05:48.199
<v Speaker 2>not going to argue with you about moving from app

118
00:05:48.199 --> 00:05:51.399
<v Speaker 2>service to Kubernetes. That's a huge lift. But that's the

119
00:05:52.079 --> 00:05:55.480
<v Speaker 2>all micro services mantras to do that huge lift, and

120
00:05:55.560 --> 00:05:57.000
<v Speaker 2>I don't think people want to do it. So the

121
00:05:57.040 --> 00:05:59.720
<v Speaker 2>fact that we can spin off bits into servilest components

122
00:06:00.040 --> 00:06:02.959
<v Speaker 2>and deal with their performance issues or their behavior issues

123
00:06:03.000 --> 00:06:06.399
<v Speaker 2>separately is the simple workaround rather than looking at the

124
00:06:06.399 --> 00:06:08.120
<v Speaker 2>big wall of climbing up Kubernetties.

125
00:06:08.199 --> 00:06:10.720
<v Speaker 1>Yeah, that's why we have modular monoliths, so you can

126
00:06:10.759 --> 00:06:12.759
<v Speaker 1>break off the pieces and need broken off.

127
00:06:12.680 --> 00:06:15.040
<v Speaker 2>Right, and you could break them off in less painful ways. Yeah,

128
00:06:15.040 --> 00:06:16.319
<v Speaker 2>I mean, you could even spin it up as a

129
00:06:16.319 --> 00:06:17.800
<v Speaker 2>separate app service, but I wouldn't.

130
00:06:17.959 --> 00:06:18.839
<v Speaker 1>Nope, I wouldn't either.

131
00:06:20.079 --> 00:06:21.720
<v Speaker 2>So Mark, thank you so much for your comment, and

132
00:06:21.800 --> 00:06:23.240
<v Speaker 2>a copy of music co Buy is on its way

133
00:06:23.240 --> 00:06:24.639
<v Speaker 2>to you. And if you'd like a copy of music Code,

134
00:06:24.720 --> 00:06:26.399
<v Speaker 2>I write a comment on the website at dot at

135
00:06:26.480 --> 00:06:28.800
<v Speaker 2>rocks dot com or on the facebooks. We publish every

136
00:06:28.800 --> 00:06:30.279
<v Speaker 2>show there, and if you comment there and everyone on

137
00:06:30.319 --> 00:06:32.199
<v Speaker 2>the show, we'll send you copy of music.

138
00:06:31.839 --> 00:06:34.920
<v Speaker 1>To go buy. And you can follow us on x

139
00:06:35.040 --> 00:06:38.160
<v Speaker 1>Twitter if you want. That's we've been there for years.

140
00:06:38.160 --> 00:06:41.079
<v Speaker 1>But the cool kids are hanging out at mastadon. I'm

141
00:06:41.160 --> 00:06:44.000
<v Speaker 1>at Carl Franklin at tech Hubs Social.

142
00:06:43.680 --> 00:06:45.759
<v Speaker 2>And I'm Rich Campbell at macedon dot social.

143
00:06:45.839 --> 00:06:47.600
<v Speaker 1>Send us a tute. It's another way that you can

144
00:06:47.639 --> 00:06:50.480
<v Speaker 1>get a copy of music to code buy. Absolutely all right,

145
00:06:50.600 --> 00:06:55.040
<v Speaker 1>so let's bring back Rendel Mark Rendel. He is one

146
00:06:55.040 --> 00:06:58.199
<v Speaker 1>of our favorite guests. He's the founder of Rendall Labs,

147
00:06:58.279 --> 00:07:02.000
<v Speaker 1>which provides consulting services and workshops to dot net development

148
00:07:02.040 --> 00:07:07.199
<v Speaker 1>teams across all industries. His particular obsessions are API design

149
00:07:07.240 --> 00:07:13.279
<v Speaker 1>and development, performance observability, and code based modernization. He also

150
00:07:13.360 --> 00:07:16.560
<v Speaker 1>uses skills acquired during a few years as a professional

151
00:07:16.600 --> 00:07:20.519
<v Speaker 1>stand up comic to deliver entertaining and informative talks at

152
00:07:20.560 --> 00:07:24.079
<v Speaker 1>conferences around the world, and recently learned to play bass

153
00:07:24.199 --> 00:07:27.879
<v Speaker 1>so he could join tech parity band The Line Breakers.

154
00:07:28.199 --> 00:07:29.839
<v Speaker 3>Hey dude, hi man.

155
00:07:29.720 --> 00:07:33.040
<v Speaker 1>Congratulations, Welcome to the world of music for no money.

156
00:07:33.279 --> 00:07:38.279
<v Speaker 3>Thank you, thank you so much. I am loving it.

157
00:07:38.279 --> 00:07:40.240
<v Speaker 1>It's been a while, It has been a while.

158
00:07:40.319 --> 00:07:42.600
<v Speaker 2>You did the parity band thing for a while there, Carl.

159
00:07:42.639 --> 00:07:44.800
<v Speaker 2>But did you actually get into trouble with that? Was

160
00:07:44.839 --> 00:07:48.360
<v Speaker 2>that back before parody was like accept the use? Oh okay,

161
00:07:49.160 --> 00:07:51.160
<v Speaker 2>well yeah, here's the story.

162
00:07:51.199 --> 00:07:56.680
<v Speaker 1>So Don Box and Ted Pattison and George Bullock and

163
00:07:56.959 --> 00:08:00.240
<v Speaker 1>a couple other people started this band called ban On

164
00:08:00.240 --> 00:08:04.399
<v Speaker 1>the Runtime, and band On the Runtime was parodies of

165
00:08:04.480 --> 00:08:10.120
<v Speaker 1>C sharp to well known music, right, so fifty ways

166
00:08:10.160 --> 00:08:14.439
<v Speaker 1>to send a message, you know, that kind of stuff, right,

167
00:08:15.120 --> 00:08:19.360
<v Speaker 1>And so the Microsoft lawyers had a problem with it

168
00:08:19.439 --> 00:08:25.720
<v Speaker 1>because parody law says you can parody a song by

169
00:08:25.920 --> 00:08:28.199
<v Speaker 1>you know, changing the words like weird al does like

170
00:08:28.639 --> 00:08:32.080
<v Speaker 1>because I'm fat, I'm fat ham on hole week, right,

171
00:08:33.039 --> 00:08:37.600
<v Speaker 1>But you can't parody something like C sharp using a

172
00:08:37.679 --> 00:08:41.320
<v Speaker 1>song that's not covered by parody law. So you can't

173
00:08:41.399 --> 00:08:45.279
<v Speaker 1>change the words to parody something else. We weren't actually

174
00:08:45.279 --> 00:08:48.120
<v Speaker 1>poking fun at the songs. We're using the songs to

175
00:08:48.159 --> 00:08:51.679
<v Speaker 1>poke fun at dot net. And they, the lawyers kind

176
00:08:51.679 --> 00:08:55.360
<v Speaker 1>of put the kabash. It seems very sus well, but

177
00:08:55.399 --> 00:08:57.320
<v Speaker 1>the law is the law. So they basically went to

178
00:08:57.360 --> 00:08:59.600
<v Speaker 1>Paul Simon, for example, and they said how much would

179
00:08:59.639 --> 00:09:02.440
<v Speaker 1>it cost for the band to play you know this

180
00:09:02.840 --> 00:09:05.879
<v Speaker 1>at a you know, Microsoft event, and he wanted like

181
00:09:05.919 --> 00:09:08.879
<v Speaker 1>two hundred and fifty grand. So that's the law. Yeah,

182
00:09:08.919 --> 00:09:09.840
<v Speaker 1>you have to get permission.

183
00:09:10.440 --> 00:09:12.759
<v Speaker 2>The law is subject to interpretation. I think those lawyers

184
00:09:12.799 --> 00:09:14.039
<v Speaker 2>interpreted it very oddly.

185
00:09:14.600 --> 00:09:17.519
<v Speaker 3>Microsoft lawyers interpret things as badly as possible. Don't.

186
00:09:17.559 --> 00:09:19.559
<v Speaker 1>But you know, they are Microsoft. And if it was

187
00:09:19.720 --> 00:09:22.360
<v Speaker 1>just me doing it, who cares? Because go ahead, I

188
00:09:22.360 --> 00:09:24.440
<v Speaker 1>don't have two hundred and fifty thousand dollars, you know,

189
00:09:24.879 --> 00:09:27.399
<v Speaker 1>but Microsoft, Yeah, might be a problem.

190
00:09:27.480 --> 00:09:30.120
<v Speaker 3>Yeah, And you know, all we are doing. We provide

191
00:09:30.159 --> 00:09:33.840
<v Speaker 3>the entertainment conference parties and it's like there's a couple

192
00:09:33.960 --> 00:09:36.559
<v Speaker 3>hundred people there and they're all drunk. And yeah, we

193
00:09:36.639 --> 00:09:42.080
<v Speaker 3>don't parody any specic. The closest we have to parodying

194
00:09:42.080 --> 00:09:46.600
<v Speaker 3>a specific technology I think is JavaScript, which was one

195
00:09:47.279 --> 00:09:51.639
<v Speaker 3>in itself, and JavaScript isn't even a language, it's it's

196
00:09:51.679 --> 00:09:54.840
<v Speaker 3>a well, it's a standard. I suppose I was going

197
00:09:54.919 --> 00:09:56.279
<v Speaker 3>to say something meaner, but I went.

198
00:09:58.960 --> 00:09:59.159
<v Speaker 1>But no.

199
00:09:59.279 --> 00:10:03.000
<v Speaker 3>Line Breakers their bassist used to be Don Sign really,

200
00:10:03.559 --> 00:10:07.919
<v Speaker 3>creator of F sharp and then he had to he

201
00:10:07.960 --> 00:10:12.720
<v Speaker 3>got pulled into gitub next, the kind of Microsoft Research

202
00:10:12.840 --> 00:10:16.600
<v Speaker 3>equivalent at gitub, but he was still at Microsoft Research

203
00:10:16.639 --> 00:10:20.000
<v Speaker 3>and still sort of the benevolent dictator for life of

204
00:10:20.240 --> 00:10:23.600
<v Speaker 3>f sharp and he just could not fit in conferences

205
00:10:23.600 --> 00:10:26.120
<v Speaker 3>as well as all of that, and so then they

206
00:10:26.120 --> 00:10:30.559
<v Speaker 3>were without bassist. And then I said to Dylan Beattie,

207
00:10:31.480 --> 00:10:35.440
<v Speaker 3>how hard is bass because he's certainly got four strings?

208
00:10:36.799 --> 00:10:37.279
<v Speaker 1>Can it be?

209
00:10:37.799 --> 00:10:41.240
<v Speaker 3>And he went as, actually not, it's much much easier

210
00:10:41.279 --> 00:10:44.000
<v Speaker 3>than guitar, And so he lent me one, and I

211
00:10:44.039 --> 00:10:46.879
<v Speaker 3>took it home and I plugged in, plugged it into

212
00:10:46.919 --> 00:10:50.600
<v Speaker 3>my computer with a sort of six point five to

213
00:10:51.000 --> 00:10:56.159
<v Speaker 3>USB cable, and got Rocksmith Plus and tried playing a

214
00:10:56.200 --> 00:11:01.559
<v Speaker 3>few things, and I think within five minutes of sitting down,

215
00:11:01.679 --> 00:11:05.720
<v Speaker 3>I had learned to play seven nation army okay. And

216
00:11:05.799 --> 00:11:07.919
<v Speaker 3>so it's not I mean, it's not an easy instrument.

217
00:11:07.919 --> 00:11:09.960
<v Speaker 3>And if there are any basis out there going oh no,

218
00:11:09.960 --> 00:11:13.000
<v Speaker 3>not this again, it is definitely not an easy instrument.

219
00:11:13.039 --> 00:11:15.440
<v Speaker 3>I've got one to like jazz and funk and disco

220
00:11:15.639 --> 00:11:19.399
<v Speaker 3>and those sorts of things, but the learning curve is

221
00:11:19.519 --> 00:11:23.120
<v Speaker 3>extremely shallow at first, so it's very very encouraging.

222
00:11:23.559 --> 00:11:26.559
<v Speaker 1>Yeah, right, you can play Smoke on the Water just

223
00:11:26.600 --> 00:11:27.120
<v Speaker 1>by going but.

224
00:11:28.480 --> 00:11:31.879
<v Speaker 3>Club but chugging basslines.

225
00:11:32.279 --> 00:11:35.399
<v Speaker 1>However, of them bass you know, it's easier because you

226
00:11:35.399 --> 00:11:38.360
<v Speaker 1>don't have chords and and all of that, but it

227
00:11:38.440 --> 00:11:41.240
<v Speaker 1>is more difficult because to play bass really well you

228
00:11:41.320 --> 00:11:43.279
<v Speaker 1>have to have a great tone by the way, yes,

229
00:11:43.480 --> 00:11:47.039
<v Speaker 1>and also you have to have saw like bass player.

230
00:11:47.159 --> 00:11:50.200
<v Speaker 1>You just to be able to play a couple of notes,

231
00:11:50.440 --> 00:11:53.799
<v Speaker 1>isn't playing bass? You know, you really have to. It

232
00:11:53.879 --> 00:11:56.519
<v Speaker 1>takes a while before before the funk or the saul

233
00:11:56.600 --> 00:11:57.080
<v Speaker 1>comes out.

234
00:11:57.240 --> 00:12:00.759
<v Speaker 3>Yeah, and just getting in the pocket like right on

235
00:12:00.879 --> 00:12:03.879
<v Speaker 3>the b and just giving tone to the drums.

236
00:12:04.159 --> 00:12:06.960
<v Speaker 1>But you don't have chords, but they don't have chords.

237
00:12:07.120 --> 00:12:09.600
<v Speaker 1>That's your jack app story and.

238
00:12:10.000 --> 00:12:11.039
<v Speaker 3>Seeking nobody as.

239
00:12:13.840 --> 00:12:18.279
<v Speaker 2>There are a few very extraordinary bases that nine essential.

240
00:12:18.480 --> 00:12:19.919
<v Speaker 1>So what's on your mind? Randall?

241
00:12:20.279 --> 00:12:21.000
<v Speaker 2>What have you been up to?

242
00:12:21.240 --> 00:12:25.960
<v Speaker 3>I was at the Copenhagen Developer Festival last week. Rich

243
00:12:26.120 --> 00:12:31.840
<v Speaker 3>was there and it was absolutely brilliant and I had

244
00:12:31.960 --> 00:12:34.720
<v Speaker 3>a new locknote talk that I did which is called

245
00:12:34.759 --> 00:12:37.399
<v Speaker 3>the Albatross Project. But they also asked me to do

246
00:12:37.600 --> 00:12:41.679
<v Speaker 3>the free meet up the Tuesday night before the festival started.

247
00:12:42.960 --> 00:12:47.120
<v Speaker 3>And I had a talk that i'd submitted for Copenhagen

248
00:12:47.159 --> 00:12:50.519
<v Speaker 3>that they rejected because I just do lockmotes for in

249
00:12:50.600 --> 00:12:52.919
<v Speaker 3>DC now apparently, but they said, you can do that

250
00:12:52.960 --> 00:12:54.799
<v Speaker 3>talk at the meetup if you want. And the talk

251
00:12:54.960 --> 00:12:59.120
<v Speaker 3>was called how simple is as simple as possible? And

252
00:13:00.840 --> 00:13:04.799
<v Speaker 3>this is both of these talks, they're related. So the

253
00:13:04.919 --> 00:13:08.360
<v Speaker 3>talk is a sort of technical can you do this?

254
00:13:08.440 --> 00:13:10.200
<v Speaker 3>Can you do that? How can you keep things simple?

255
00:13:10.279 --> 00:13:13.720
<v Speaker 3>And then the Albatross project is the opposite of the

256
00:13:13.720 --> 00:13:17.919
<v Speaker 3>Phoenix project nice, and it's about a development director who

257
00:13:18.120 --> 00:13:20.720
<v Speaker 3>doesn't deliver anything for thirty five years because he keeps

258
00:13:20.720 --> 00:13:25.120
<v Speaker 3>trying to stay on the cutting edge. And yeah, and

259
00:13:25.200 --> 00:13:29.279
<v Speaker 3>I just after I did the talk version of it,

260
00:13:30.440 --> 00:13:34.080
<v Speaker 3>at which there was one slide where the slide popped

261
00:13:34.159 --> 00:13:36.240
<v Speaker 3>up on the screen and somebody immediately got up and

262
00:13:36.279 --> 00:13:36.799
<v Speaker 3>walked out.

263
00:13:38.519 --> 00:13:39.799
<v Speaker 2>He knew it was a right slide.

264
00:13:39.879 --> 00:13:41.440
<v Speaker 3>So I'm kind of like, yeah, this is working.

265
00:13:41.799 --> 00:13:45.159
<v Speaker 1>You don't think like his wife was in labor or

266
00:13:45.799 --> 00:13:46.080
<v Speaker 1>you know.

267
00:13:46.320 --> 00:13:55.120
<v Speaker 3>Is no probably a React developer, Ora Angular or View

268
00:13:55.159 --> 00:13:58.080
<v Speaker 3>because those were the three there were three JavaScript framework

269
00:13:58.120 --> 00:13:59.039
<v Speaker 3>logos on the slide.

270
00:13:59.200 --> 00:14:00.679
<v Speaker 1>Anything where you're like, hey, where you go?

271
00:14:01.440 --> 00:14:03.360
<v Speaker 3>I hadn't said anything because we were actually having a

272
00:14:03.360 --> 00:14:07.600
<v Speaker 3>technical issue at the time. And yeah, I mean it

273
00:14:07.639 --> 00:14:09.639
<v Speaker 3>is possible it was the technical issue that you sent

274
00:14:09.720 --> 00:14:11.000
<v Speaker 3>him out there, just kind of like, I'm not waiting

275
00:14:11.039 --> 00:14:13.120
<v Speaker 3>around while these people turn the screen back on or whatever.

276
00:14:13.480 --> 00:14:18.679
<v Speaker 3>But yes, it's I kind of I feel like I

277
00:14:18.720 --> 00:14:24.840
<v Speaker 3>owe people an apology to a certain extent, because in

278
00:14:24.919 --> 00:14:27.759
<v Speaker 3>my forties I did a lot of bouncing around the

279
00:14:27.799 --> 00:14:30.039
<v Speaker 3>world telling people how to contain the rize things and

280
00:14:30.080 --> 00:14:33.519
<v Speaker 3>do micro services and event driven things and Kubernettes and

281
00:14:33.519 --> 00:14:38.440
<v Speaker 3>all that sort of stuff. And now in my fifties,

282
00:14:38.840 --> 00:14:44.360
<v Speaker 3>I'm kind of wishing most people would stop. And so

283
00:14:45.120 --> 00:14:47.840
<v Speaker 3>that's my mission at the moment, and that's I'm going

284
00:14:47.879 --> 00:14:50.159
<v Speaker 3>to be trying to get this talk into as many

285
00:14:50.200 --> 00:14:53.840
<v Speaker 3>things as possible next year and start pushing at it

286
00:14:55.159 --> 00:15:02.600
<v Speaker 3>because we've just made everything, everything just so complicated in

287
00:15:02.639 --> 00:15:08.759
<v Speaker 3>the name of efficiency, in the name of standardization.

288
00:15:08.320 --> 00:15:11.759
<v Speaker 1>Potential future scalability. That's the big one.

289
00:15:12.000 --> 00:15:18.240
<v Speaker 3>Yes, absolutely, But also you hear the term DX developer

290
00:15:18.279 --> 00:15:23.480
<v Speaker 3>experience and developer experience, I feel like that should be

291
00:15:23.480 --> 00:15:26.519
<v Speaker 3>an important thing in terms of your ID, your code editor,

292
00:15:27.559 --> 00:15:31.559
<v Speaker 3>your command line tooling, that sort of thing. But if

293
00:15:31.600 --> 00:15:36.120
<v Speaker 3>you're getting to a point where the improved developer experience

294
00:15:36.200 --> 00:15:39.320
<v Speaker 3>that you get from sort of CICD and microservice deployments

295
00:15:39.360 --> 00:15:41.759
<v Speaker 3>and rollouts and all that sort of thing is actually

296
00:15:41.799 --> 00:15:44.639
<v Speaker 3>getting in the way of delivering a good user experience

297
00:15:45.159 --> 00:15:49.919
<v Speaker 3>because of the increased latencies that you get or the

298
00:15:51.399 --> 00:15:55.679
<v Speaker 3>fifteen megabytes of JavaScript that a webpage has to download

299
00:15:55.759 --> 00:16:00.639
<v Speaker 3>before it becomes interactive. Then there's some thing wrong with that.

300
00:16:00.679 --> 00:16:03.759
<v Speaker 3>We have had priorities completely the wrong way round.

301
00:16:04.159 --> 00:16:04.360
<v Speaker 1>Yeah.

302
00:16:04.360 --> 00:16:06.000
<v Speaker 2>One of the ways to keep that stuff fast is

303
00:16:06.000 --> 00:16:07.000
<v Speaker 2>to keep it simple.

304
00:16:06.879 --> 00:16:08.679
<v Speaker 3>Absolutely, Yeah.

305
00:16:08.799 --> 00:16:12.080
<v Speaker 1>And so yeah, it's been my mantra, you know, do

306
00:16:12.159 --> 00:16:15.440
<v Speaker 1>the simplest thing that works ever since I got started

307
00:16:15.480 --> 00:16:19.360
<v Speaker 1>in software. That's been you know, stapled to my forehead.

308
00:16:20.000 --> 00:16:23.279
<v Speaker 3>Yeah. I wish I could say the same of myself,

309
00:16:23.440 --> 00:16:28.080
<v Speaker 3>but at least, you know, I'm realizing it now and

310
00:16:28.559 --> 00:16:29.840
<v Speaker 3>attempting to share some of that.

311
00:16:29.879 --> 00:16:31.519
<v Speaker 2>Well. I think part of this is we wanted to

312
00:16:31.559 --> 00:16:34.919
<v Speaker 2>believe that if we, you know, embedded ourselves in this architecture,

313
00:16:34.960 --> 00:16:38.240
<v Speaker 2>like if we understood all the pieces that gradually software

314
00:16:38.279 --> 00:16:41.840
<v Speaker 2>would be easier in that space. I just don't feel

315
00:16:41.840 --> 00:16:42.960
<v Speaker 2>like it ever got there.

316
00:16:43.279 --> 00:16:49.000
<v Speaker 3>No, No, I mean I think it did at a

317
00:16:49.039 --> 00:16:54.200
<v Speaker 3>particular point. I think espn net mvc pretty simple, was

318
00:16:54.240 --> 00:16:58.559
<v Speaker 3>relatively simple, and the idea of the pipeline. So what

319
00:16:58.639 --> 00:17:02.759
<v Speaker 3>we kind of picked off with o win based on

320
00:17:02.840 --> 00:17:08.680
<v Speaker 3>things like Python WSGI and Ruby's rack middleware, and then

321
00:17:08.720 --> 00:17:12.440
<v Speaker 3>o win obviously kind of got rolled into asp net

322
00:17:12.480 --> 00:17:15.519
<v Speaker 3>core and that was nice and simple. It was like,

323
00:17:15.559 --> 00:17:17.519
<v Speaker 3>do this, then do this, then do this, then do this.

324
00:17:19.000 --> 00:17:23.640
<v Speaker 3>But then I think the problem is that as developers

325
00:17:24.160 --> 00:17:28.119
<v Speaker 3>we think that if we're not changing the way we

326
00:17:28.160 --> 00:17:31.480
<v Speaker 3>do things, if we're not evolving, then we are failing

327
00:17:31.519 --> 00:17:33.920
<v Speaker 3>in some way. There's this whole thing about continuous learning,

328
00:17:34.599 --> 00:17:40.039
<v Speaker 3>and so people kind of go, well, there's somebody says microservices,

329
00:17:40.039 --> 00:17:42.839
<v Speaker 3>So I need to learn microservices. Now I know microservices.

330
00:17:43.720 --> 00:17:45.240
<v Speaker 3>Why have I learned it if I'm not going to

331
00:17:45.319 --> 00:17:47.559
<v Speaker 3>use it? And then they end up breaking something with

332
00:17:47.720 --> 00:17:51.519
<v Speaker 3>like two dozen end points down into twelve micro services

333
00:17:52.039 --> 00:17:54.440
<v Speaker 3>and you're just like, no, I should.

334
00:17:54.160 --> 00:17:57.160
<v Speaker 1>Have learned that from doctor card, right, absolutely.

335
00:17:57.519 --> 00:17:57.880
<v Speaker 3>Yeah.

336
00:17:57.960 --> 00:18:00.519
<v Speaker 2>Well, I was like the argument that my service makes

337
00:18:00.519 --> 00:18:02.240
<v Speaker 2>a lot of sense when the team is huge, that

338
00:18:02.319 --> 00:18:04.880
<v Speaker 2>it creates a level of granularity that you can have

339
00:18:04.920 --> 00:18:07.160
<v Speaker 2>a lot of people working in parallel and then have

340
00:18:07.240 --> 00:18:11.279
<v Speaker 2>your fights over integration rather than fights over coding. Yeah,

341
00:18:11.319 --> 00:18:13.079
<v Speaker 2>but most teams aren't that big.

342
00:18:13.680 --> 00:18:15.680
<v Speaker 3>No, they're really not. But I think a lot of

343
00:18:15.720 --> 00:18:21.119
<v Speaker 3>the time, people who don't necessarily have a lot of

344
00:18:21.119 --> 00:18:25.960
<v Speaker 3>different job experiences within the industry, they think that they're

345
00:18:26.000 --> 00:18:29.720
<v Speaker 3>in a big department because there's like one hundred and

346
00:18:29.759 --> 00:18:34.799
<v Speaker 3>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
<v Speaker 3>go and take a big Netflix or Uber or Microsoft

348
00:18:39.400 --> 00:18:42.960
<v Speaker 3>or your average financial institution. I worked at Morgan Stanley

349
00:18:43.000 --> 00:18:46.519
<v Speaker 3>and I think I was one of ten thousand developers

350
00:18:46.599 --> 00:18:51.440
<v Speaker 3>working at Morgan Stanley. So yeah, that and the other

351
00:18:51.519 --> 00:18:56.440
<v Speaker 3>thing then is when you're at that scale and your

352
00:18:57.279 --> 00:19:00.359
<v Speaker 3>team within that maybe a lot larger and a lot

353
00:19:00.400 --> 00:19:03.359
<v Speaker 3>more different people on it. You may have a sort

354
00:19:03.400 --> 00:19:07.440
<v Speaker 3>of architect leading the design of the system, and you

355
00:19:07.519 --> 00:19:12.480
<v Speaker 3>have testers and DevOps people and all those kinds of things,

356
00:19:14.279 --> 00:19:18.359
<v Speaker 3>and so what they call a micro service can well

357
00:19:18.400 --> 00:19:22.920
<v Speaker 3>be bigger than the entire thing that other people are

358
00:19:22.960 --> 00:19:27.359
<v Speaker 3>trying to break down into micro services. And so yeah,

359
00:19:27.400 --> 00:19:33.000
<v Speaker 3>there's this dissonance from people not actually realizing what scale

360
00:19:33.000 --> 00:19:34.640
<v Speaker 3>they're at because it feels big to them.

361
00:19:34.839 --> 00:19:36.880
<v Speaker 2>They just haven't been exposed to the other things. What

362
00:19:36.960 --> 00:19:41.680
<v Speaker 2>about the cloud native concept? Is this where you fall

363
00:19:41.759 --> 00:19:43.480
<v Speaker 2>on that we should define it first.

364
00:19:43.880 --> 00:19:49.960
<v Speaker 3>Yes, So cloud native is essentially building apps that are

365
00:19:50.039 --> 00:19:58.480
<v Speaker 3>designed to run in the cloud and leverage I think,

366
00:19:58.519 --> 00:20:01.640
<v Speaker 3>you know, like the the term twelve factor apps has

367
00:20:01.759 --> 00:20:03.599
<v Speaker 3>kind of fallen out of use a lot. I think

368
00:20:03.599 --> 00:20:07.160
<v Speaker 3>a Roku introduced that idea, and I think a Roku

369
00:20:07.359 --> 00:20:10.759
<v Speaker 3>was one of the first cloud native style platforms, way

370
00:20:10.799 --> 00:20:13.960
<v Speaker 3>before Kubernettes and containers and all that sort of thing

371
00:20:14.039 --> 00:20:17.240
<v Speaker 3>came along, and it was build your app so that

372
00:20:17.319 --> 00:20:22.680
<v Speaker 3>it consumes services that are provided for you and can

373
00:20:22.720 --> 00:20:27.200
<v Speaker 3>be deployed by doing a Git push or whatever else.

374
00:20:27.559 --> 00:20:30.880
<v Speaker 3>And you're not worried about infrastructure. You're not worried about

375
00:20:31.039 --> 00:20:34.720
<v Speaker 3>VM size, CPU core count, all those sorts of things,

376
00:20:34.759 --> 00:20:35.440
<v Speaker 3>because you're just.

377
00:20:35.680 --> 00:20:39.599
<v Speaker 2>No updating machines, just million new instances in rolling.

378
00:20:39.279 --> 00:20:43.640
<v Speaker 3>Across totally totally. And then you have things on top

379
00:20:43.680 --> 00:20:50.279
<v Speaker 3>of that around reliability, which obviously you know poly in

380
00:20:50.559 --> 00:20:54.839
<v Speaker 3>dot net. But when you're building for the cloud, you

381
00:20:54.960 --> 00:20:57.319
<v Speaker 3>have to build for partition, You have to build for

382
00:20:58.000 --> 00:21:03.640
<v Speaker 3>things that are likely to you know, things in the

383
00:21:03.640 --> 00:21:05.440
<v Speaker 3>cloud go down for two seconds and then come back

384
00:21:05.519 --> 00:21:09.319
<v Speaker 3>up again. Because somebody did a push and it just happened,

385
00:21:09.440 --> 00:21:12.839
<v Speaker 3>and so you have to that. You know, you can't

386
00:21:12.880 --> 00:21:14.960
<v Speaker 3>just go, oh no, the database is gone. You have

387
00:21:15.119 --> 00:21:16.839
<v Speaker 3>to go, well, I'll try again in a second, then

388
00:21:16.839 --> 00:21:20.079
<v Speaker 3>in two seconds, then in four seconds. Obviously with that

389
00:21:20.200 --> 00:21:23.839
<v Speaker 3>weird fuzzing thing that changes those numbers into something not

390
00:21:23.920 --> 00:21:24.599
<v Speaker 3>quite surround.

391
00:21:26.200 --> 00:21:29.519
<v Speaker 2>But maybe that's what's happened is people misconstrued being cloud

392
00:21:29.599 --> 00:21:31.640
<v Speaker 2>native with products like Kubernetes.

393
00:21:31.799 --> 00:21:34.440
<v Speaker 3>That's the thing cloud. So you have cloud Native, which

394
00:21:34.480 --> 00:21:37.920
<v Speaker 3>is a concept and an idea and an abstract that

395
00:21:37.960 --> 00:21:39.960
<v Speaker 3>you can aim for, and then you have the Cloud

396
00:21:40.079 --> 00:21:45.680
<v Speaker 3>Native Computing Foundation, which is attempting to be for cloud

397
00:21:45.680 --> 00:21:50.119
<v Speaker 3>computing what the Linux Foundation is for Linux. And you know,

398
00:21:50.559 --> 00:21:53.480
<v Speaker 3>Kubernettes is often called the operating system of the cloud,

399
00:21:55.319 --> 00:22:00.000
<v Speaker 3>and there's going to be people going often called by whom,

400
00:22:00.039 --> 00:22:04.279
<v Speaker 3>But so they have projects that go through kind of

401
00:22:04.519 --> 00:22:10.240
<v Speaker 3>incubator and preview and then stable and ready for everybody

402
00:22:10.279 --> 00:22:12.920
<v Speaker 3>to use. And so people feel like if they are

403
00:22:12.920 --> 00:22:15.599
<v Speaker 3>going to be cloud native, then they should go down

404
00:22:15.640 --> 00:22:18.200
<v Speaker 3>that like it's a checklist almost and go are we

405
00:22:18.279 --> 00:22:20.960
<v Speaker 3>running on Kubernetes, Are we using a service mesh? Are

406
00:22:21.000 --> 00:22:25.319
<v Speaker 3>we using a document database, Are we using event sourcing

407
00:22:25.319 --> 00:22:28.720
<v Speaker 3>and all these things that they have projects for, And

408
00:22:29.480 --> 00:22:33.200
<v Speaker 3>you can be cloud native. You can build you could

409
00:22:33.200 --> 00:22:36.400
<v Speaker 3>build I don't, please don't, but you could build an

410
00:22:36.440 --> 00:22:40.920
<v Speaker 3>asp dot net web forms app that was cloud native

411
00:22:42.759 --> 00:22:46.839
<v Speaker 3>that covered all those things. Just with the various rules

412
00:22:46.920 --> 00:22:49.039
<v Speaker 3>and all this sort of stuff, there's nothing stopping you

413
00:22:49.079 --> 00:22:52.599
<v Speaker 3>from pushing an asp net where it forms app into

414
00:22:53.039 --> 00:22:55.920
<v Speaker 3>an Azero app service in a VM or something or

415
00:22:55.960 --> 00:22:56.920
<v Speaker 3>a VM or yeah.

416
00:22:57.720 --> 00:23:00.799
<v Speaker 1>And that just proves the point that just because you

417
00:23:00.920 --> 00:23:03.319
<v Speaker 1>have checked off all the boxes doesn't mean using the

418
00:23:03.359 --> 00:23:05.119
<v Speaker 1>rate technology for the job.

419
00:23:05.319 --> 00:23:07.880
<v Speaker 2>Well. Absolutely, And you haven't talked about the customer requirements

420
00:23:07.880 --> 00:23:10.240
<v Speaker 2>anywhere along the path here.

421
00:23:09.799 --> 00:23:13.559
<v Speaker 3>Nobody's asking about that. The customer's kind of going. What

422
00:23:13.640 --> 00:23:17.240
<v Speaker 3>I would really like is for the page to load

423
00:23:17.480 --> 00:23:21.319
<v Speaker 3>in less than four hundred milliseconds, And which is the

424
00:23:21.920 --> 00:23:26.359
<v Speaker 3>something limit. It's like, four hundred milliseconds is the point

425
00:23:26.359 --> 00:23:32.160
<v Speaker 3>at which people go that with subality limits. And we've

426
00:23:32.240 --> 00:23:35.359
<v Speaker 3>actually gotten to this point now. This is one of

427
00:23:35.400 --> 00:23:41.559
<v Speaker 3>the conversations I was having with people where four hundred

428
00:23:41.640 --> 00:23:49.119
<v Speaker 3>milliseconds feels unattainable. And have you guys watched the Spotify

429
00:23:49.359 --> 00:23:54.279
<v Speaker 3>documentary thing on Netflix playlist or something that's called. So

430
00:23:54.319 --> 00:23:56.480
<v Speaker 3>it's about the guy who started Spotify. It's like six

431
00:23:56.519 --> 00:24:00.640
<v Speaker 3>episodes and they're each done from a different perspective, a

432
00:24:00.640 --> 00:24:04.759
<v Speaker 3>different person's point of view. But Daniel Lek, the guy

433
00:24:04.759 --> 00:24:10.680
<v Speaker 3>who started Spotify, his sole focus to get it launched,

434
00:24:12.240 --> 00:24:15.920
<v Speaker 3>in tech terms, was that when you click the play

435
00:24:15.920 --> 00:24:20.400
<v Speaker 3>button on a song, it should start playing like immediately.

436
00:24:20.440 --> 00:24:23.559
<v Speaker 3>And he was aiming for that four hundred millisecond point

437
00:24:23.599 --> 00:24:26.960
<v Speaker 3>and he got it. And that was in two thousand

438
00:24:27.000 --> 00:24:31.640
<v Speaker 3>and one. And now we're here with an internet that

439
00:24:31.839 --> 00:24:36.680
<v Speaker 3>is several orders of magnitude faster, We've got five G

440
00:24:36.839 --> 00:24:41.200
<v Speaker 3>on our phones, we've got gigabit plus internet at affordable

441
00:24:41.240 --> 00:24:44.599
<v Speaker 3>prices for a lot of people. And we're still saying

442
00:24:45.480 --> 00:24:47.640
<v Speaker 3>that's really tricky. We can do it in like one

443
00:24:47.680 --> 00:24:52.559
<v Speaker 3>point four seconds if you're in a fast connection, And yeah,

444
00:24:52.640 --> 00:24:56.960
<v Speaker 3>we've we've lost lost sight of the ball, and we

445
00:24:57.039 --> 00:25:01.119
<v Speaker 3>need to examine ourselves as industry and say, well, what

446
00:25:01.160 --> 00:25:02.880
<v Speaker 3>are we doing and why are we doing it?

447
00:25:02.920 --> 00:25:05.279
<v Speaker 2>And is there anything what are we doing for those

448
00:25:05.279 --> 00:25:08.759
<v Speaker 2>one point four seconds? Exactly what are you up to?

449
00:25:10.440 --> 00:25:14.000
<v Speaker 3>And so yeah, and like I say, the talk covers

450
00:25:14.000 --> 00:25:17.079
<v Speaker 3>this from infrastructure from back end, from front end, from

451
00:25:17.279 --> 00:25:23.240
<v Speaker 3>programming language and all these different things, and yeah, frontend,

452
00:25:24.000 --> 00:25:26.759
<v Speaker 3>it's it is honestly quite a simple answer. We are

453
00:25:26.799 --> 00:25:31.759
<v Speaker 3>downloading a shedload of JavaScript which the browser then has

454
00:25:31.799 --> 00:25:36.640
<v Speaker 3>to pass and jit and do all those sorts of things.

455
00:25:36.039 --> 00:25:42.039
<v Speaker 3>And before we do all of that, people can't scroll

456
00:25:42.119 --> 00:25:46.119
<v Speaker 3>a blog. And you're like, it's a blog. The only

457
00:25:46.200 --> 00:25:49.079
<v Speaker 3>thing on it that needs to be interactive is the

458
00:25:49.200 --> 00:25:52.799
<v Speaker 3>comments and maybe a like button or a share button.

459
00:25:52.880 --> 00:25:56.920
<v Speaker 3>Even the share buttons are just links. But no, I

460
00:25:56.960 --> 00:26:01.960
<v Speaker 3>see people sort of writing blogs with nuts dot js.

461
00:26:03.039 --> 00:26:05.200
<v Speaker 1>Are you still bolished? And blazer server, Mark.

462
00:26:05.160 --> 00:26:09.519
<v Speaker 3>I really like blazer server for internal things, for where

463
00:26:09.559 --> 00:26:12.720
<v Speaker 3>you have a very definite upper limit on the number

464
00:26:12.759 --> 00:26:15.799
<v Speaker 3>of concurrent connections that you can have, and it's like

465
00:26:16.000 --> 00:26:18.960
<v Speaker 3>in the thousands or maybe tens of thousands, and you

466
00:26:18.960 --> 00:26:24.039
<v Speaker 3>can scale up for that and everything. Once you scale

467
00:26:24.119 --> 00:26:30.559
<v Speaker 3>blazer server beyond a single instance, then obviously it becomes trickier.

468
00:26:30.720 --> 00:26:33.200
<v Speaker 3>So if you've got like messages and one person sends

469
00:26:33.200 --> 00:26:35.680
<v Speaker 3>it on one instance, that now has to bounce through

470
00:26:35.680 --> 00:26:38.279
<v Speaker 3>something like a reddish pubsub or something so that the

471
00:26:38.319 --> 00:26:43.720
<v Speaker 3>other instances can pick it up. But it's still very simple. Actually,

472
00:26:43.759 --> 00:26:49.279
<v Speaker 3>I've been playing with so blazerin dot net eight and

473
00:26:49.880 --> 00:26:53.839
<v Speaker 3>you have the server side rendering, and so it will

474
00:26:53.880 --> 00:26:56.960
<v Speaker 3>render pages on the server and it will return them,

475
00:26:56.960 --> 00:26:58.720
<v Speaker 3>so you can have a site that works with search

476
00:26:58.759 --> 00:27:02.440
<v Speaker 3>engines just as much as anything else, just like Razor pages.

477
00:27:03.880 --> 00:27:09.039
<v Speaker 3>And then it will download the Blazer web assembly runtime

478
00:27:09.279 --> 00:27:13.200
<v Speaker 3>in the background, and it will download your natively compiled

479
00:27:13.720 --> 00:27:18.599
<v Speaker 3>Blazer application in the background, and then silently without the

480
00:27:18.680 --> 00:27:21.559
<v Speaker 3>user even noticing that's anything, that anything has happened, the

481
00:27:21.599 --> 00:27:24.480
<v Speaker 3>next time they navigate, it won't make a request to

482
00:27:24.519 --> 00:27:26.519
<v Speaker 3>the server. It will do it locally.

483
00:27:27.079 --> 00:27:29.640
<v Speaker 1>It's like magic, except that it doesn't work.

484
00:27:30.039 --> 00:27:32.039
<v Speaker 3>It's they'll get there.

485
00:27:34.880 --> 00:27:37.079
<v Speaker 1>I've done I've done tests and I recently did another

486
00:27:37.119 --> 00:27:41.319
<v Speaker 1>one and we go from service side rendered directly to

487
00:27:41.359 --> 00:27:47.559
<v Speaker 1>web assembly. There isn't any server rendering in between while

488
00:27:47.640 --> 00:27:50.559
<v Speaker 1>web assembly is downloading. And that's been a problem ever

489
00:27:50.599 --> 00:27:53.720
<v Speaker 1>since they released that, and it's still a problem. Well,

490
00:27:53.559 --> 00:27:54.359
<v Speaker 1>but they'll get there.

491
00:27:54.680 --> 00:27:57.240
<v Speaker 3>I'm just going to keep my fingers crossed for for

492
00:27:57.319 --> 00:28:00.200
<v Speaker 3>dot netline. But no I did. I ran into some

493
00:28:00.240 --> 00:28:05.440
<v Speaker 3>issues with it myself and have started looking at an

494
00:28:05.480 --> 00:28:13.920
<v Speaker 3>alternative thing, which is HTMX, which is that X stand

495
00:28:13.960 --> 00:28:21.200
<v Speaker 3>for so essentially this is a push back against things

496
00:28:21.279 --> 00:28:23.960
<v Speaker 3>like React and Angular and so forth, where it's kind

497
00:28:23.960 --> 00:28:26.920
<v Speaker 3>of what you actually want to do, what you actually

498
00:28:26.960 --> 00:28:31.160
<v Speaker 3>want to achieve is when the user clicks something or

499
00:28:31.200 --> 00:28:34.160
<v Speaker 3>interacts with something in some way, you want to make

500
00:28:34.200 --> 00:28:36.559
<v Speaker 3>a call to a server and then you want to

501
00:28:36.839 --> 00:28:39.960
<v Speaker 3>make a change to the dom of your current page

502
00:28:40.240 --> 00:28:43.079
<v Speaker 3>right and insert a div and with some stuff in

503
00:28:43.119 --> 00:28:47.359
<v Speaker 3>it or something and so works, which is how Blazer

504
00:28:47.359 --> 00:28:52.920
<v Speaker 3>server works. And HTMX is kind of let's let's just

505
00:28:53.079 --> 00:28:56.039
<v Speaker 3>lean into that as far as possible, and we'll just

506
00:28:56.200 --> 00:29:01.640
<v Speaker 3>use HTML attributes on elements and we'll say, okay, so

507
00:29:02.200 --> 00:29:06.279
<v Speaker 3>on this element, when the user clicks, we are going

508
00:29:06.319 --> 00:29:10.279
<v Speaker 3>to make a request to this endpoint on our server,

509
00:29:10.319 --> 00:29:13.960
<v Speaker 3>which is going to return a fragment of HTML, and

510
00:29:14.000 --> 00:29:18.720
<v Speaker 3>then we're going to insert that HTML into the page

511
00:29:18.839 --> 00:29:21.240
<v Speaker 3>at this point, or we're going to replace an existing

512
00:29:21.640 --> 00:29:28.359
<v Speaker 3>element with that HTML. And for I think like ninety

513
00:29:28.440 --> 00:29:33.119
<v Speaker 3>percent of use cases, that actually covers most of the

514
00:29:33.119 --> 00:29:36.279
<v Speaker 3>things you want to do. It will do your comment

515
00:29:36.599 --> 00:29:38.480
<v Speaker 3>form at the bottom of your blog. It will do

516
00:29:39.200 --> 00:29:42.759
<v Speaker 3>your like buttons and an updated view of how many

517
00:29:42.920 --> 00:29:45.519
<v Speaker 3>likes you've got, and all those sorts of things, but

518
00:29:45.640 --> 00:29:50.720
<v Speaker 3>without a huge JavaScript run time doing shadow dom things

519
00:29:50.799 --> 00:29:57.440
<v Speaker 3>and observing signals. They seem to be going on about

520
00:29:57.440 --> 00:29:59.720
<v Speaker 3>signals over in JavaScript land at the moment. That's very

521
00:30:00.000 --> 00:30:02.160
<v Speaker 3>fighting for them. And yeah, so.

522
00:30:02.200 --> 00:30:04.480
<v Speaker 1>That's sort of like the evolution of ajax, isn't it.

523
00:30:04.720 --> 00:30:08.279
<v Speaker 3>Yeah, yeah, it is, and it's kind of it's that

524
00:30:08.400 --> 00:30:10.359
<v Speaker 3>the plumbing. I feel like it's a shame we had

525
00:30:10.359 --> 00:30:12.279
<v Speaker 3>to go all the way round SPA to get back

526
00:30:12.279 --> 00:30:14.839
<v Speaker 3>to the point where we're going. Here's a really sensible

527
00:30:14.839 --> 00:30:16.319
<v Speaker 3>evolution of ajax.

528
00:30:17.200 --> 00:30:20.000
<v Speaker 2>Just refill a div tag for me, would you please? Right?

529
00:30:21.279 --> 00:30:24.920
<v Speaker 3>So I built a site when I was learning the base,

530
00:30:25.079 --> 00:30:30.160
<v Speaker 3>and it's called fret Badger, which is partly because I like,

531
00:30:31.000 --> 00:30:36.000
<v Speaker 3>it's not a mollusk. If I ever start another company,

532
00:30:36.039 --> 00:30:38.279
<v Speaker 3>it's just going to be called not a Mollusk limited.

533
00:30:38.880 --> 00:30:43.039
<v Speaker 3>What do you do? Definitely not a mollusk. So yeah,

534
00:30:43.400 --> 00:30:46.079
<v Speaker 3>you can you can hire hijack the domain for me

535
00:30:46.240 --> 00:30:51.200
<v Speaker 3>and then blackmail me. But no, So frat Badger. I

536
00:30:51.240 --> 00:30:53.400
<v Speaker 3>wanted to learn the threat board, and I wanted to

537
00:30:53.480 --> 00:30:58.160
<v Speaker 3>learn scales and modes for jazz and arpeggios and that

538
00:30:58.200 --> 00:30:59.680
<v Speaker 3>sort of thing, and.

539
00:30:59.480 --> 00:31:00.920
<v Speaker 1>So I see chart behind you.

540
00:31:01.279 --> 00:31:03.680
<v Speaker 3>Yes, exactly. I've got the bas chart on the wall

541
00:31:03.680 --> 00:31:06.440
<v Speaker 3>which has got all the modes and everything else. And

542
00:31:06.480 --> 00:31:08.799
<v Speaker 3>it's basically just if you want to play up this scale,

543
00:31:08.839 --> 00:31:11.759
<v Speaker 3>and you've got the major scale, the minor scale, pentatomics, blues,

544
00:31:11.799 --> 00:31:18.119
<v Speaker 3>all these different things. And I was my base teacher

545
00:31:18.599 --> 00:31:22.559
<v Speaker 3>was pushing me to learn music theory, and I got

546
00:31:22.599 --> 00:31:28.599
<v Speaker 3>really into it because it's it's maths, it's rules, and

547
00:31:28.839 --> 00:31:32.519
<v Speaker 3>it's logical, and so I thought, well, the best.

548
00:31:32.359 --> 00:31:34.640
<v Speaker 2>Way there's one of the many reasons that musicians and

549
00:31:35.319 --> 00:31:36.799
<v Speaker 2>developers go work so well together.

550
00:31:36.960 --> 00:31:40.400
<v Speaker 3>Yeah, yeah, And I thought, so if I can encode

551
00:31:40.599 --> 00:31:44.559
<v Speaker 3>all this information about music theory into C sharp and

552
00:31:44.640 --> 00:31:47.640
<v Speaker 3>some data structures, then that would be a good way

553
00:31:47.680 --> 00:31:49.880
<v Speaker 3>to learn it. And also it would be a fun

554
00:31:49.960 --> 00:31:53.119
<v Speaker 3>site to build. And so it's just an asp net

555
00:31:53.519 --> 00:31:57.720
<v Speaker 3>Core MVC app at the moment, but it does have

556
00:31:57.799 --> 00:31:59.599
<v Speaker 3>this thing so you can have like you choose your

557
00:31:59.599 --> 00:32:02.119
<v Speaker 3>freat ball and you say, okay, so I want the

558
00:32:02.160 --> 00:32:05.279
<v Speaker 3>standard base threat board, standard tuning, and I want the

559
00:32:05.480 --> 00:32:09.240
<v Speaker 3>C major scale, and it will show you the little

560
00:32:09.240 --> 00:32:12.119
<v Speaker 3>dots to show you where to put your fingers. But

561
00:32:12.240 --> 00:32:15.799
<v Speaker 3>then when I was doing jazz, it was kind of

562
00:32:15.960 --> 00:32:17.599
<v Speaker 3>it would be really good if I could have like

563
00:32:17.960 --> 00:32:19.920
<v Speaker 3>four or five of them on the screen at once,

564
00:32:20.119 --> 00:32:22.759
<v Speaker 3>and so I added in nothing. But every time you

565
00:32:22.880 --> 00:32:26.559
<v Speaker 3>add a new threatboard, it reloads the entire page and

566
00:32:26.599 --> 00:32:28.640
<v Speaker 3>then it scrolled back to the top. And so I

567
00:32:28.680 --> 00:32:30.440
<v Speaker 3>was looking for a way to make it kind of

568
00:32:30.799 --> 00:32:33.799
<v Speaker 3>more smoothly interactive. And so that's what I was looking

569
00:32:33.799 --> 00:32:37.559
<v Speaker 3>at the Blazer server side plus WASM for. But as

570
00:32:37.640 --> 00:32:43.480
<v Speaker 3>Carl says, there are some issues. But then I saw

571
00:32:43.680 --> 00:32:47.559
<v Speaker 3>HTMX and I'm kind of like, that is exactly what

572
00:32:47.640 --> 00:32:50.720
<v Speaker 3>I want. And the beautiful thing is it works really

573
00:32:50.720 --> 00:32:53.720
<v Speaker 3>really well with esp net core because we have partials

574
00:32:54.559 --> 00:32:57.759
<v Speaker 3>and so we can just go, when this request comes in,

575
00:32:57.920 --> 00:33:02.319
<v Speaker 3>just render this partial. So yeah, it's and it's that

576
00:33:02.359 --> 00:33:06.720
<v Speaker 3>sort of thing. The key thing with HTMX though, is

577
00:33:07.079 --> 00:33:13.079
<v Speaker 3>the entire library is fourteen point six killer bytes minified

578
00:33:13.119 --> 00:33:15.680
<v Speaker 3>and chesipped, which is tiny.

579
00:33:15.920 --> 00:33:19.559
<v Speaker 1>It's less than your logo graphic button.

580
00:33:19.319 --> 00:33:20.400
<v Speaker 2>Radius is bigger than that.

581
00:33:20.839 --> 00:33:23.960
<v Speaker 3>Yeah, yeah, you know, it's like that thing where when

582
00:33:24.079 --> 00:33:27.079
<v Speaker 3>Windows seven came out, the desktop wallpaper was took up

583
00:33:27.119 --> 00:33:30.960
<v Speaker 3>more disk space than the whole of Windows three point one,

584
00:33:31.559 --> 00:33:36.119
<v Speaker 3>like and what is it doing that? So yeah, it's that,

585
00:33:37.240 --> 00:33:43.559
<v Speaker 3>and you know it's They provide documentation and guidance on

586
00:33:43.640 --> 00:33:47.119
<v Speaker 3>how to use Alpine js, which is again a very

587
00:33:47.200 --> 00:33:53.240
<v Speaker 3>lightweight JavaScript framework, kind of like a miniature alternative to

588
00:33:53.359 --> 00:33:56.599
<v Speaker 3>jQuery for the things that jQuery did that didn't then

589
00:33:56.640 --> 00:34:00.279
<v Speaker 3>get built into JavaScript fifteen or twenty sixteen or whatever.

590
00:34:02.079 --> 00:34:04.839
<v Speaker 3>So if you do need, I have one thing where

591
00:34:04.880 --> 00:34:07.680
<v Speaker 3>I wrote custom JavaScript, which is, once you've got your

592
00:34:07.839 --> 00:34:10.039
<v Speaker 3>C major scale up on the threat board, if you

593
00:34:10.159 --> 00:34:14.119
<v Speaker 3>click one of the c's, it will fade the others

594
00:34:14.159 --> 00:34:18.000
<v Speaker 3>that aren't part of that arpeggio. And so it's kind

595
00:34:18.000 --> 00:34:20.360
<v Speaker 3>of like going, so you do this, and then that's

596
00:34:20.440 --> 00:34:23.280
<v Speaker 3>your second, and your third, and your fourth and so on.

597
00:34:24.800 --> 00:34:30.800
<v Speaker 3>And that's twenty lines of chavascript, which isn't even worth

598
00:34:30.880 --> 00:34:33.800
<v Speaker 3>minifying at that point. I think it's actually still hard

599
00:34:33.840 --> 00:34:37.199
<v Speaker 3>coded into the h into the layout dot c shtml

600
00:34:38.519 --> 00:34:42.000
<v Speaker 3>and so yeah, just that little bits of JavaScript here

601
00:34:42.039 --> 00:34:44.800
<v Speaker 3>and there to do a couple of things in the browser,

602
00:34:45.400 --> 00:34:50.039
<v Speaker 3>and then HTMX for everything else. And it's it's working

603
00:34:50.079 --> 00:34:51.639
<v Speaker 3>really well. I'm going to be pushing it live soon.

604
00:34:51.719 --> 00:34:53.679
<v Speaker 1>It's great. Before we take a break, I just want

605
00:34:53.719 --> 00:34:57.320
<v Speaker 1>to mention that I had written I don't know four

606
00:34:57.400 --> 00:35:02.800
<v Speaker 1>or five years ago this tool. I have a guitar

607
00:35:02.920 --> 00:35:06.519
<v Speaker 1>that has a role in GK pickup GK three pickup,

608
00:35:06.519 --> 00:35:10.239
<v Speaker 1>which is a split pickup, so it goes right in

609
00:35:10.280 --> 00:35:12.280
<v Speaker 1>between the bridge and your first pickup of the guitar.

610
00:35:13.039 --> 00:35:15.800
<v Speaker 1>And it has six individual pickups for each string and

611
00:35:15.840 --> 00:35:18.840
<v Speaker 1>those go through a role in processor and then you

612
00:35:18.880 --> 00:35:23.000
<v Speaker 1>can process each string individually. So another thing I can

613
00:35:23.039 --> 00:35:26.079
<v Speaker 1>do is map it to MIDI. So what I have

614
00:35:26.519 --> 00:35:29.480
<v Speaker 1>is I have something that pulls up the MIDI from

615
00:35:29.840 --> 00:35:33.800
<v Speaker 1>your guitar and figures out where your fingers are on

616
00:35:33.840 --> 00:35:36.440
<v Speaker 1>the front board and shows it to you on the screen.

617
00:35:36.960 --> 00:35:39.960
<v Speaker 1>Not only that, but then I put a service between it,

618
00:35:40.079 --> 00:35:44.400
<v Speaker 1>so somebody could log in in Texas and I'm playing

619
00:35:44.400 --> 00:35:47.480
<v Speaker 1>in my place and I can be teaching them, and

620
00:35:47.880 --> 00:35:50.599
<v Speaker 1>as I play, the dots show up where my fingers are.

621
00:35:50.840 --> 00:35:54.760
<v Speaker 1>Not only that, I got to chord charts and chord

622
00:35:54.920 --> 00:35:58.360
<v Speaker 1>names based on the music theory of it. So if

623
00:35:58.360 --> 00:36:00.920
<v Speaker 1>you're interested in that codebase, I'll gladly send it to you.

624
00:36:01.079 --> 00:36:03.559
<v Speaker 3>I would love to see that. Yeah, that sounds amazing.

625
00:36:04.440 --> 00:36:06.119
<v Speaker 3>So yeah, and I feel compelled to ask did you

626
00:36:06.119 --> 00:36:11.760
<v Speaker 3>write that using events hourcing or DDD? Is how many.

627
00:36:12.119 --> 00:36:15.760
<v Speaker 1>It was very simple, all right, So we're going to

628
00:36:15.800 --> 00:36:17.599
<v Speaker 1>take a quick break and we'll be right back with

629
00:36:17.679 --> 00:36:21.679
<v Speaker 1>more with Mark Rendell. Stay tuned. Did you know that

630
00:36:21.719 --> 00:36:26.400
<v Speaker 1>you can work with AWS directly from your ide Aws

631
00:36:26.440 --> 00:36:30.639
<v Speaker 1>provides toolkits for visual Studio, Visual Studio code, and jet

632
00:36:30.679 --> 00:36:35.119
<v Speaker 1>Brains rider Learn more at Aws dot Amazon dot com,

633
00:36:35.159 --> 00:36:40.519
<v Speaker 1>slash net slash tools. You know it's common for business

634
00:36:40.559 --> 00:36:44.880
<v Speaker 1>application to contain fifteen percent repetitive code just because of

635
00:36:45.000 --> 00:36:49.599
<v Speaker 1>metaprogramming limitations in the C Sharp language. Why write boilerplate

636
00:36:49.719 --> 00:36:53.599
<v Speaker 1>manually when a machine could generate it for you? Enter Metaalama,

637
00:36:53.840 --> 00:36:57.519
<v Speaker 1>the code generation and verification toolkit for C Sharp. Their

638
00:36:57.639 --> 00:37:01.360
<v Speaker 1>C Sharp to c sharp template language is simply amazing

639
00:37:01.679 --> 00:37:07.880
<v Speaker 1>logging caching memento observable. If it's repetitive, Metaalama can automate it.

640
00:37:08.280 --> 00:37:11.679
<v Speaker 1>Visit Metalama dot net today and learn to automate your

641
00:37:11.719 --> 00:37:15.599
<v Speaker 1>code patterns with their free edition. Remember it's Metaalama with

642
00:37:15.679 --> 00:37:22.760
<v Speaker 1>one L Meta la Ma dot Net. Attention dot net

643
00:37:22.760 --> 00:37:27.920
<v Speaker 1>developers looking for the ultimate SDK to handle electronic document

644
00:37:28.000 --> 00:37:33.280
<v Speaker 1>processing Meet TX text Control. Txtext Controls, your go to

645
00:37:33.400 --> 00:37:39.119
<v Speaker 1>solution for seamless PDF generation, secure electronic signatures and efficient

646
00:37:39.239 --> 00:37:43.679
<v Speaker 1>digital forms processing all within your dot net applications. Empower

647
00:37:43.679 --> 00:37:49.159
<v Speaker 1>your products with robust document management capabilities, boost productivity, and

648
00:37:49.440 --> 00:37:54.280
<v Speaker 1>deliver top notch solutions to your clients. Trusted by developers worldwide,

649
00:37:54.360 --> 00:37:58.280
<v Speaker 1>including me and Richard. Txtext Control is the SDK that

650
00:37:58.440 --> 00:38:02.400
<v Speaker 1>makes a difference. Check look out demos dot textcontrol dot

651
00:38:02.440 --> 00:38:05.840
<v Speaker 1>com for live online demos and see it in action.

652
00:38:07.920 --> 00:38:10.480
<v Speaker 1>And we're back. I'm Carl Franklin. That's my friend Richard

653
00:38:10.480 --> 00:38:14.679
<v Speaker 1>Campbell and Mark Rendel's here, and we're talking about simplicity. Simplicity.

654
00:38:14.679 --> 00:38:16.199
<v Speaker 1>And by the way, I need to remind you that

655
00:38:16.239 --> 00:38:18.079
<v Speaker 1>if you don't want to hear the ads, you can

656
00:38:18.119 --> 00:38:20.239
<v Speaker 1>become a five dollars a month patron of dot net

657
00:38:20.320 --> 00:38:23.320
<v Speaker 1>rocks and get an ad free feed. Go to Patreon

658
00:38:23.440 --> 00:38:27.119
<v Speaker 1>dot dot NetRocks dot com. Okay, so I guess you

659
00:38:27.199 --> 00:38:30.400
<v Speaker 1>were talking about HTMX and.

660
00:38:30.880 --> 00:38:36.840
<v Speaker 3>So yeah, and HTMX is one example of simplification. People. Actually,

661
00:38:36.920 --> 00:38:40.679
<v Speaker 3>I'm starting to see projects popping up that are pushing

662
00:38:40.719 --> 00:38:46.280
<v Speaker 3>back against this complexity that we've created. And there are

663
00:38:46.320 --> 00:38:47.400
<v Speaker 3>other examples as well.

664
00:38:47.400 --> 00:38:47.639
<v Speaker 2>There we are.

665
00:38:49.519 --> 00:38:54.559
<v Speaker 3>You don't need to run a coubonet. So the comment

666
00:38:54.599 --> 00:38:56.480
<v Speaker 3>that you read at the start of the show from

667
00:38:56.679 --> 00:39:01.719
<v Speaker 3>the other Mark and he were saying, how Aks and

668
00:39:01.920 --> 00:39:07.079
<v Speaker 3>eks the sort of managed Kubernetes are super easy to run.

669
00:39:07.599 --> 00:39:11.159
<v Speaker 3>They're really not they really they're easier.

670
00:39:11.320 --> 00:39:15.079
<v Speaker 2>They're easy. Err, it's only because you've been traumatized by

671
00:39:15.079 --> 00:39:16.559
<v Speaker 2>trying to run Kubernetes by head.

672
00:39:16.639 --> 00:39:19.519
<v Speaker 3>I mean, yeah, never ever, ever try to run your

673
00:39:19.559 --> 00:39:22.840
<v Speaker 3>own Kubernetes cluster, unless maybe you just want to build

674
00:39:22.880 --> 00:39:26.840
<v Speaker 3>one with five Raspberry pies just for giggles. But no.

675
00:39:27.239 --> 00:39:31.000
<v Speaker 3>So let's take a zero as an example, just because

676
00:39:31.079 --> 00:39:34.440
<v Speaker 3>it's the one that I know best. But Microsoft support

677
00:39:34.519 --> 00:39:41.840
<v Speaker 3>a version of Kubernetes I think for four versions for

678
00:39:42.039 --> 00:39:45.119
<v Speaker 3>minor versions. So I think we're on like one point

679
00:39:45.280 --> 00:39:48.760
<v Speaker 3>twenty one at the moment I get confused with version numbers,

680
00:39:48.880 --> 00:39:51.039
<v Speaker 3>and so they will still be supporting twenty and nineteen

681
00:39:51.079 --> 00:39:53.400
<v Speaker 3>and eighteen. But as soon as twenty two comes along,

682
00:39:53.480 --> 00:39:57.039
<v Speaker 3>if you're still on eighteen, you need to upgrade. And

683
00:39:57.360 --> 00:40:02.840
<v Speaker 3>Kubernetes versions land three monthly or six monthly, I'm not sure, so.

684
00:40:02.800 --> 00:40:05.400
<v Speaker 2>It means every year then you're probably agreeing so.

685
00:40:05.360 --> 00:40:07.360
<v Speaker 3>But you are at least once a year going to

686
00:40:07.360 --> 00:40:11.039
<v Speaker 3>have to upgrade your Kubernettes cluster. And if you do it,

687
00:40:11.719 --> 00:40:14.920
<v Speaker 3>if you do the upgrade the minimum number of times possible,

688
00:40:14.960 --> 00:40:17.920
<v Speaker 3>then you're doing a I mean, Kubernett's versioning is a

689
00:40:17.920 --> 00:40:21.280
<v Speaker 3>whole thing anyway, because those are not minor versions, they

690
00:40:21.280 --> 00:40:24.280
<v Speaker 3>are major versions. A lot of the time they remove APIs,

691
00:40:24.320 --> 00:40:26.679
<v Speaker 3>they deprecate APIs, and yet somehow we're still on one

692
00:40:26.679 --> 00:40:32.119
<v Speaker 3>point something. And so if you want to minimize the

693
00:40:32.199 --> 00:40:33.840
<v Speaker 3>number of times you have to do this, you're going

694
00:40:33.880 --> 00:40:35.559
<v Speaker 3>to be going from like one dot eighteen to one

695
00:40:35.599 --> 00:40:38.199
<v Speaker 3>dot twenty two. That's a lot of jump. That's a

696
00:40:38.239 --> 00:40:42.360
<v Speaker 3>lot of things that in an enterprise environment, you're going

697
00:40:42.440 --> 00:40:46.360
<v Speaker 3>to have people going over pages and pages and pages

698
00:40:46.360 --> 00:40:48.039
<v Speaker 3>of release notes to make sure that you're not going

699
00:40:48.079 --> 00:40:52.480
<v Speaker 3>to break anything. Or you upgrade every time the new

700
00:40:52.559 --> 00:40:55.679
<v Speaker 3>version becomes available, which is going to take less time

701
00:40:55.760 --> 00:41:01.960
<v Speaker 3>per upgrade, but potentially more time overall. And then it's

702
00:41:02.000 --> 00:41:04.239
<v Speaker 3>not enough to just be running in Kubernetes. You have

703
00:41:04.400 --> 00:41:07.239
<v Speaker 3>to have your service mesh, you have to have your sidecars,

704
00:41:07.320 --> 00:41:11.039
<v Speaker 3>you have to have your your sort of various load

705
00:41:11.119 --> 00:41:15.119
<v Speaker 3>balances and all these kinds of things, and nobody's managing

706
00:41:15.159 --> 00:41:19.119
<v Speaker 3>that for you. Microsoft doesn't Microft hasn't blessed a service

707
00:41:19.199 --> 00:41:22.800
<v Speaker 3>mesh because they can't because people want different things. So

708
00:41:23.159 --> 00:41:27.159
<v Speaker 3>it's it's simpler, but it is by no means simple.

709
00:41:27.800 --> 00:41:31.599
<v Speaker 3>And then you look at you type container into the

710
00:41:31.679 --> 00:41:34.559
<v Speaker 3>creator new thing in the Azure portal, and actually the

711
00:41:34.599 --> 00:41:38.119
<v Speaker 3>first thing that pops up is container app and that

712
00:41:38.760 --> 00:41:42.400
<v Speaker 3>is simple. So that is build. You write your DOCA

713
00:41:42.400 --> 00:41:45.039
<v Speaker 3>file or you know, in my case, right click in

714
00:41:45.719 --> 00:41:49.280
<v Speaker 3>the solution explorer in jet Brain's rider and say add

715
00:41:49.320 --> 00:41:51.480
<v Speaker 3>docer file and it just generates it for you with

716
00:41:51.559 --> 00:41:55.320
<v Speaker 3>all the right best practices, and then do Docker build,

717
00:41:55.320 --> 00:41:58.199
<v Speaker 3>and then do Docker push to your as your container registry,

718
00:41:58.800 --> 00:42:04.719
<v Speaker 3>and then just deploy the thing. And underneath it all

719
00:42:04.760 --> 00:42:07.559
<v Speaker 3>it's running on a massive Kubernetes.

720
00:42:07.000 --> 00:42:09.280
<v Speaker 2>Cluster you want to have to own.

721
00:42:09.760 --> 00:42:12.800
<v Speaker 3>Yes, Microsoft are taking care of everything. They're taking care

722
00:42:12.800 --> 00:42:18.480
<v Speaker 3>of the service smash, the upgrade cycle, the stability and

723
00:42:18.599 --> 00:42:20.400
<v Speaker 3>resilience and all those sorts of things.

724
00:42:20.639 --> 00:42:23.920
<v Speaker 2>Well, and arguably, if you decide it isn't running well

725
00:42:23.920 --> 00:42:26.280
<v Speaker 2>in container apps and want to move to your own

726
00:42:26.440 --> 00:42:29.079
<v Speaker 2>manage infrastructure, you're already there exactly.

727
00:42:29.280 --> 00:42:32.719
<v Speaker 3>Yeah. And equally, now you can take a container and

728
00:42:32.760 --> 00:42:35.800
<v Speaker 3>you can push that towards your app service where you

729
00:42:35.840 --> 00:42:38.679
<v Speaker 3>used to push web things to, which is also very

730
00:42:38.760 --> 00:42:42.639
<v Speaker 3>nice and much easier than saying copy locally and all.

731
00:42:42.480 --> 00:42:43.480
<v Speaker 2>These various things.

732
00:42:44.280 --> 00:42:48.320
<v Speaker 3>So yeah, you know, on that side, there's that simplicity.

733
00:42:48.679 --> 00:42:51.960
<v Speaker 3>And again it's taken us a long time to get there.

734
00:42:52.559 --> 00:42:55.599
<v Speaker 2>And this is Microsoft figuring out what people actually willing

735
00:42:55.639 --> 00:42:56.880
<v Speaker 2>to use, right like.

736
00:42:57.039 --> 00:43:01.679
<v Speaker 3>Yeah, yeah, and you know, you know, the reason you

737
00:43:01.719 --> 00:43:05.039
<v Speaker 3>don't get straight from A to Z is because you

738
00:43:05.079 --> 00:43:07.960
<v Speaker 3>can't see zed until you've gone through B, C, D, E,

739
00:43:08.239 --> 00:43:11.599
<v Speaker 3>F and everything else. Yeah, and you don't know what

740
00:43:11.639 --> 00:43:14.400
<v Speaker 3>it looks like. And it's very difficult to find out

741
00:43:14.400 --> 00:43:16.760
<v Speaker 3>that something's a bad idea without trying it.

742
00:43:16.960 --> 00:43:20.280
<v Speaker 2>Yeah, and without well, and you always have the few

743
00:43:20.320 --> 00:43:23.119
<v Speaker 2>folks they get it that they're willing to put the

744
00:43:23.119 --> 00:43:26.000
<v Speaker 2>time in their their customer is tolerant of it, and

745
00:43:26.000 --> 00:43:28.400
<v Speaker 2>they can do this complexity. But then a whole bunch

746
00:43:28.440 --> 00:43:30.840
<v Speaker 2>of others just like Nope, not doing it. And then

747
00:43:30.920 --> 00:43:33.440
<v Speaker 2>you you know that in the end they have to

748
00:43:34.280 --> 00:43:35.760
<v Speaker 2>you know, Microsoft looks and goes, well, we're just not

749
00:43:35.760 --> 00:43:37.800
<v Speaker 2>getting enough adoption here. What if we did this, like

750
00:43:37.880 --> 00:43:40.480
<v Speaker 2>they are just kind of hurling it at the wall. Yeah,

751
00:43:40.559 --> 00:43:42.880
<v Speaker 2>by a bit, and eventually they stumble on to these

752
00:43:42.920 --> 00:43:45.000
<v Speaker 2>approaches that are simple enough.

753
00:43:45.480 --> 00:43:48.599
<v Speaker 3>And you know it's the big thing has been serverless

754
00:43:48.599 --> 00:43:51.400
<v Speaker 3>and still is serverless for a lot of the talks

755
00:43:51.440 --> 00:43:54.320
<v Speaker 3>I'm seeing and that sort of thing, which is containers

756
00:43:54.400 --> 00:43:57.679
<v Speaker 3>under the hood. It's containers under the hood. But the

757
00:43:59.159 --> 00:44:01.719
<v Speaker 3>again I'm going to talk about a Zoo functions but

758
00:44:02.159 --> 00:44:06.519
<v Speaker 3>equally applies to a ws lander and another Servilus platforms.

759
00:44:07.440 --> 00:44:10.800
<v Speaker 3>What you end up with then is vendor lock in, right,

760
00:44:10.880 --> 00:44:14.480
<v Speaker 3>because your triggers you've got like blob stories triggers, and

761
00:44:14.519 --> 00:44:17.199
<v Speaker 3>there's your Q triggers and service bus triggers and event

762
00:44:17.559 --> 00:44:20.320
<v Speaker 3>hub triggers and all these different things, and so you're

763
00:44:20.360 --> 00:44:24.639
<v Speaker 3>locking yourself into that. But with as your container apps,

764
00:44:25.039 --> 00:44:29.320
<v Speaker 3>you can use Dapper, which is an abstraction over so

765
00:44:29.360 --> 00:44:32.039
<v Speaker 3>you go, I need a cash or I need a

766
00:44:32.079 --> 00:44:36.639
<v Speaker 3>pub sub and then that could be reddis it could

767
00:44:36.719 --> 00:44:40.880
<v Speaker 3>be as your service bus, it could be men cash

768
00:44:40.960 --> 00:44:43.760
<v Speaker 3>d or Varnish, you know whatever. The different things are

769
00:44:44.000 --> 00:44:51.280
<v Speaker 3>fusion cash and in your container description you just go,

770
00:44:51.559 --> 00:44:54.559
<v Speaker 3>this needs a cash, give it a cash, and then

771
00:44:54.719 --> 00:45:00.199
<v Speaker 3>you use the Dapper API, which will one just as well.

772
00:45:00.599 --> 00:45:05.880
<v Speaker 3>You can use Dappa with containers running in amazons. D

773
00:45:06.039 --> 00:45:10.559
<v Speaker 3>A p R Yes, d A p R naming definitely

774
00:45:10.599 --> 00:45:14.880
<v Speaker 3>an issue at first, and Microsoft.

775
00:45:14.360 --> 00:45:17.400
<v Speaker 2>Well, Plus there is the other product called Dapper d

776
00:45:17.519 --> 00:45:20.079
<v Speaker 2>A p p e R right, which is the.

777
00:45:20.400 --> 00:45:22.599
<v Speaker 1>Which is a wrapper around Adeo dot net.

778
00:45:22.880 --> 00:45:27.280
<v Speaker 3>Yeah, it's the kind of incredibly lightweight mapping from data

779
00:45:27.320 --> 00:45:29.440
<v Speaker 3>readers to CEP objects.

780
00:45:29.719 --> 00:45:31.400
<v Speaker 2>I have nothing bad to say about either one, but

781
00:45:31.400 --> 00:45:33.159
<v Speaker 2>they've got nothing to do with each other except when

782
00:45:33.159 --> 00:45:35.440
<v Speaker 2>you say their names entirely unrelated.

783
00:45:36.719 --> 00:45:41.360
<v Speaker 3>But yeah, d a PR stands for Distributed Application platform something.

784
00:45:42.679 --> 00:45:47.920
<v Speaker 3>But DAPPA is great, and it's I think dapper play is.

785
00:45:48.360 --> 00:45:51.199
<v Speaker 3>I would put that in my simple column. It's kind

786
00:45:51.239 --> 00:45:54.119
<v Speaker 3>of I need a cash. I need a way that

787
00:45:54.159 --> 00:45:57.719
<v Speaker 3>I can say cash this data, now give it back,

788
00:45:58.400 --> 00:46:00.960
<v Speaker 3>and I shouldn't have to care about out whether that's

789
00:46:01.000 --> 00:46:06.519
<v Speaker 3>reddis or another solution or just memory. I should be

790
00:46:06.599 --> 00:46:09.559
<v Speaker 3>able to say cash it, give it back, and then

791
00:46:10.000 --> 00:46:15.559
<v Speaker 3>worry about how that actually happens at deployment time. And again,

792
00:46:15.639 --> 00:46:18.199
<v Speaker 3>you can use dapper in Kubernetes, but you don't have to.

793
00:46:18.440 --> 00:46:22.079
<v Speaker 3>You can use dapper in other environments as well, and so,

794
00:46:22.440 --> 00:46:24.880
<v Speaker 3>and I just want to push people in that direction.

795
00:46:25.119 --> 00:46:27.480
<v Speaker 2>I've well, and what I appreciate this is that you're

796
00:46:27.519 --> 00:46:30.599
<v Speaker 2>still giving us access to all of this complexity without

797
00:46:30.639 --> 00:46:31.639
<v Speaker 2>making it complicated.

798
00:46:32.000 --> 00:46:32.239
<v Speaker 3>Yeah.

799
00:46:32.480 --> 00:46:35.679
<v Speaker 2>Right, you're not saying no containers, You're saying containers that

800
00:46:35.760 --> 00:46:37.280
<v Speaker 2>don't make you want to stab yourself.

801
00:46:38.079 --> 00:46:42.239
<v Speaker 3>Well, I mean containers. Containers are absolutely the simplest way

802
00:46:42.239 --> 00:46:44.320
<v Speaker 3>of deploying an application. Sure, you know you need a

803
00:46:44.360 --> 00:46:48.639
<v Speaker 3>Linux dependency like lib zip or something like that, Just

804
00:46:48.679 --> 00:46:51.320
<v Speaker 3>don't make me edit apt get in the docer file

805
00:46:51.360 --> 00:46:54.679
<v Speaker 3>and you've got it. Yeah, it's that, it's that original thing.

806
00:46:54.679 --> 00:46:56.760
<v Speaker 3>If it works on my machine, I'm going to ship

807
00:46:56.760 --> 00:47:01.280
<v Speaker 3>my machine. Yeah. And so yeah, containers I think are

808
00:47:01.280 --> 00:47:03.920
<v Speaker 3>the simplest unit of deployment we've come up with yet.

809
00:47:04.800 --> 00:47:07.880
<v Speaker 3>And it's just a matter of where do you run them?

810
00:47:07.880 --> 00:47:10.760
<v Speaker 3>And do you need to run your Kubernetes cluster.

811
00:47:10.920 --> 00:47:15.199
<v Speaker 2>Yeah, And you know we're we're not complaining about containers.

812
00:47:15.199 --> 00:47:17.760
<v Speaker 2>We're complaining about the orchestrators totally.

813
00:47:17.960 --> 00:47:24.440
<v Speaker 3>Yeah. Management and the assumption that because sort of Facebook

814
00:47:24.440 --> 00:47:26.920
<v Speaker 3>and Netflix and Uber are using something that it's the

815
00:47:26.960 --> 00:47:29.360
<v Speaker 3>right solution for your company.

816
00:47:29.599 --> 00:47:30.880
<v Speaker 2>Right, You're not them.

817
00:47:31.039 --> 00:47:34.239
<v Speaker 3>You're not them, And they have armies of engineers whose

818
00:47:34.360 --> 00:47:38.480
<v Speaker 3>only job is to maintain those that infrastructure.

819
00:47:38.199 --> 00:47:40.719
<v Speaker 2>And test new versions and roll them out and all

820
00:47:40.760 --> 00:47:42.960
<v Speaker 2>of that sort of stuff, and all that stuff if

821
00:47:42.960 --> 00:47:45.800
<v Speaker 2>you need it, but if you don't. At the same time,

822
00:47:45.840 --> 00:47:47.599
<v Speaker 2>you don't want to cut yourself off from the possibility

823
00:47:47.599 --> 00:47:48.920
<v Speaker 2>that you might become one of these things.

824
00:47:49.760 --> 00:47:53.199
<v Speaker 3>Oh yeah, yeah. But if everything's just docophiles and containers,

825
00:47:53.519 --> 00:47:55.320
<v Speaker 3>and at some point you go, actually, you know, it

826
00:47:55.320 --> 00:47:57.199
<v Speaker 3>would be a lot cheaper when you get to the

827
00:47:57.239 --> 00:48:01.079
<v Speaker 3>point where you're spending so much on as you're container apps,

828
00:48:01.760 --> 00:48:05.639
<v Speaker 3>that you could not only run your own cubernettes cluster,

829
00:48:05.719 --> 00:48:07.840
<v Speaker 3>but employ somebody full time to keep an eye on

830
00:48:07.880 --> 00:48:11.079
<v Speaker 3>it and do the upgrades and everything. That's the point

831
00:48:11.079 --> 00:48:11.760
<v Speaker 3>at which you switch.

832
00:48:12.039 --> 00:48:15.360
<v Speaker 2>Certainly on the run as side of things. For me,

833
00:48:15.599 --> 00:48:18.119
<v Speaker 2>I'm having conversations with folks who are like, no, we

834
00:48:18.199 --> 00:48:20.760
<v Speaker 2>repatriated this because we already run a twenty four to

835
00:48:20.800 --> 00:48:24.400
<v Speaker 2>seven knock and it was we were committed to doing

836
00:48:24.440 --> 00:48:27.360
<v Speaker 2>these things in this workload. Now that we truly understood

837
00:48:27.360 --> 00:48:29.679
<v Speaker 2>the shape of it in the cloud made more sense

838
00:48:29.719 --> 00:48:32.800
<v Speaker 2>running at home. Yes, but that's a big lift, right, Like,

839
00:48:32.840 --> 00:48:34.599
<v Speaker 2>it's not a small things.

840
00:48:34.559 --> 00:48:39.840
<v Speaker 3>Really, and the same thing goes I mean, I was

841
00:48:40.480 --> 00:48:43.800
<v Speaker 3>complaining about people downloading fifteen megabytes of JavaScript or WASM

842
00:48:43.880 --> 00:48:46.880
<v Speaker 3>or whatever to run something in the browser. There are

843
00:48:47.400 --> 00:48:50.760
<v Speaker 3>legitimate use cases for that. Adobe now have inside the

844
00:48:50.760 --> 00:48:59.159
<v Speaker 3>network Photoshop and light Room as WASM compiled browser apps, right, So,

845
00:48:59.320 --> 00:49:02.920
<v Speaker 3>and yeah, you know, if you want to edit photos

846
00:49:03.280 --> 00:49:07.119
<v Speaker 3>and clean up red eye using AI algorithms, and you

847
00:49:07.159 --> 00:49:10.719
<v Speaker 3>want to do it in your browser, then you need

848
00:49:10.760 --> 00:49:14.039
<v Speaker 3>to download all that PLASM and that sort of thing,

849
00:49:14.039 --> 00:49:17.159
<v Speaker 3>because you can't have somebody doing a round trip every

850
00:49:17.159 --> 00:49:22.840
<v Speaker 3>time they make a change with a multi megabyte image

851
00:49:22.840 --> 00:49:24.400
<v Speaker 3>file uncompressed.

852
00:49:24.480 --> 00:49:26.760
<v Speaker 2>Arguably, you're still stopping about you're still talking about the

853
00:49:26.800 --> 00:49:30.159
<v Speaker 2>simplest case. In this case. The simplest case is stick

854
00:49:30.199 --> 00:49:32.519
<v Speaker 2>the whole thing in a ASIM file and stuff for

855
00:49:33.039 --> 00:49:34.039
<v Speaker 2>the download overhead.

856
00:49:34.519 --> 00:49:38.679
<v Speaker 3>It's that as simple as possible. And thinking about what

857
00:49:38.719 --> 00:49:42.079
<v Speaker 3>that means for you for this project that you're working

858
00:49:42.119 --> 00:49:44.199
<v Speaker 3>on today, it.

859
00:49:44.159 --> 00:49:46.280
<v Speaker 2>Feels like you're just pressing against the defiles that we're

860
00:49:46.440 --> 00:49:48.719
<v Speaker 2>choosing complexity we don't need.

861
00:49:49.199 --> 00:49:55.159
<v Speaker 3>Yes, yeah, and I think that, and it's not I'm

862
00:49:55.199 --> 00:50:00.599
<v Speaker 3>absolutely not blaming developers in isolation for this, because I

863
00:50:00.639 --> 00:50:05.960
<v Speaker 3>think that the IT department, there were CTOs out there,

864
00:50:06.039 --> 00:50:10.679
<v Speaker 3>there were CIOs and they're going to their own conferences

865
00:50:10.880 --> 00:50:15.440
<v Speaker 3>and being sold this stuff by people with very very

866
00:50:15.480 --> 00:50:18.960
<v Speaker 3>effective marketing machines, and then they come back and go weak.

867
00:50:19.199 --> 00:50:22.159
<v Speaker 2>And motivation is not involving keeping things simple.

868
00:50:22.599 --> 00:50:24.199
<v Speaker 3>Yeah, And they come back and they go, we have

869
00:50:24.239 --> 00:50:26.199
<v Speaker 3>to adopt this because it's the next big thing, and

870
00:50:27.760 --> 00:50:31.679
<v Speaker 3>not doing proper kind of cost benefit analysis and those

871
00:50:31.719 --> 00:50:34.880
<v Speaker 3>things to work out whether it actually is the right thing.

872
00:50:36.119 --> 00:50:39.960
<v Speaker 1>Something just occurred to me about Blazer server. I remember

873
00:50:40.719 --> 00:50:43.400
<v Speaker 1>having customers say they didn't like blazer server because if

874
00:50:43.440 --> 00:50:46.360
<v Speaker 1>the connection goes down, like they get that what I

875
00:50:46.480 --> 00:50:50.280
<v Speaker 1>call the transparent veil of death. Oh yeah, you know

876
00:50:50.320 --> 00:50:53.480
<v Speaker 1>you have screens of death. This is a transparent so

877
00:50:53.519 --> 00:50:58.679
<v Speaker 1>it turns slightly transparent or translucent translucent, and you know

878
00:50:59.159 --> 00:51:01.920
<v Speaker 1>you have to press the reload buttons. So apparently in

879
00:51:02.000 --> 00:51:06.280
<v Speaker 1>that net nine that is becoming much less frequent, Like

880
00:51:06.400 --> 00:51:10.280
<v Speaker 1>the whole automatic reconnection thing is just going to happen.

881
00:51:10.559 --> 00:51:16.679
<v Speaker 3>And I believe that they can make that acceptable to everybody,

882
00:51:16.760 --> 00:51:19.800
<v Speaker 3>certainly to the real tech guys. So instead of it

883
00:51:19.880 --> 00:51:24.320
<v Speaker 3>going slightly transparent, don't change the UI at all, right,

884
00:51:25.639 --> 00:51:28.800
<v Speaker 3>just but it's frozen and it doesn't update and then

885
00:51:28.880 --> 00:51:30.800
<v Speaker 3>just change the cursor to a spinning beach ball and

886
00:51:30.800 --> 00:51:31.880
<v Speaker 3>everybody will be happy.

887
00:51:32.039 --> 00:51:33.360
<v Speaker 2>Everybody will know what's happening.

888
00:51:33.679 --> 00:51:36.360
<v Speaker 3>Yeah, it's like to say.

889
00:51:36.320 --> 00:51:38.880
<v Speaker 1>The UI and spin beach ball, and then when it

890
00:51:38.880 --> 00:51:39.559
<v Speaker 1>comes back.

891
00:51:39.719 --> 00:51:42.000
<v Speaker 2>Why do they need to build a new view of that?

892
00:51:42.119 --> 00:51:42.320
<v Speaker 1>You know?

893
00:51:42.840 --> 00:51:45.519
<v Speaker 2>Yeah, that's the thing we trust you can you can

894
00:51:45.559 --> 00:51:48.159
<v Speaker 2>be very subtle. I think it also indicates that possibly

895
00:51:48.199 --> 00:51:50.840
<v Speaker 2>we will recover the veil. Doesn't give you a sense

896
00:51:50.840 --> 00:51:54.639
<v Speaker 2>you're going to recover no veils, like call tech support. Yeah,

897
00:51:54.679 --> 00:51:55.360
<v Speaker 2>what does this mean?

898
00:51:56.360 --> 00:51:57.679
<v Speaker 3>It's gone it's gone wrong.

899
00:51:57.719 --> 00:52:00.559
<v Speaker 2>We have pulled the sheet over the body drug.

900
00:52:02.440 --> 00:52:05.559
<v Speaker 3>But it does it makes sense in a context where

901
00:52:05.599 --> 00:52:07.960
<v Speaker 3>you do have to hit control R or F five

902
00:52:08.079 --> 00:52:10.719
<v Speaker 3>or whatever to refresh the page to get it to reload.

903
00:52:10.760 --> 00:52:16.280
<v Speaker 3>But once they've got that reconnect and heal process working

904
00:52:16.320 --> 00:52:17.760
<v Speaker 3>properly and smoothly, then so.

905
00:52:17.719 --> 00:52:20.039
<v Speaker 1>Anyway, I haven't checked it out in that NET nine,

906
00:52:20.079 --> 00:52:23.599
<v Speaker 1>but I hear that it's a major feature upgrade of Blazer.

907
00:52:23.639 --> 00:52:26.599
<v Speaker 1>There aren't very many.

908
00:52:25.840 --> 00:52:29.760
<v Speaker 2>Fewer veils is a good one. Yeah, that'll make people

909
00:52:29.760 --> 00:52:30.719
<v Speaker 2>happier without a doubt.

910
00:52:30.800 --> 00:52:31.000
<v Speaker 1>Yeah.

911
00:52:31.079 --> 00:52:32.880
<v Speaker 3>The other thing that I talk about at the end

912
00:52:32.920 --> 00:52:35.679
<v Speaker 3>of the talk is is process. How we went from

913
00:52:35.960 --> 00:52:38.599
<v Speaker 3>kind of s S A d M and prints to

914
00:52:39.400 --> 00:52:43.239
<v Speaker 3>and all the waterfall things. And then there was extreme programming.

915
00:52:43.400 --> 00:52:47.559
<v Speaker 3>But extreme programming generally only works when you've got Kent

916
00:52:47.639 --> 00:52:51.280
<v Speaker 3>Beck and Ward Cunningham and extream programmers and you know,

917
00:52:52.199 --> 00:52:55.400
<v Speaker 3>some of the greatest programmers who've ever lived, all in

918
00:52:55.440 --> 00:52:57.519
<v Speaker 3>a room together, going how are we going to build this?

919
00:52:58.119 --> 00:53:00.440
<v Speaker 3>So you can't do that on your average team of

920
00:53:00.599 --> 00:53:04.519
<v Speaker 3>developers hired off of LinkedIn. And so then we got Agile,

921
00:53:04.800 --> 00:53:07.559
<v Speaker 3>which was trying to make it so that we could

922
00:53:08.079 --> 00:53:11.000
<v Speaker 3>where you get a scrum master and a product owner.

923
00:53:11.800 --> 00:53:15.960
<v Speaker 3>And I've worked on multiple teams that called themselves agile

924
00:53:16.000 --> 00:53:18.880
<v Speaker 3>and said they were doing scrum, that didn't have a

925
00:53:18.920 --> 00:53:21.880
<v Speaker 3>scrum master, had a scrum master who was just a

926
00:53:21.920 --> 00:53:26.000
<v Speaker 3>project manager anyway and wasn't really doing the scrum mastery things,

927
00:53:26.599 --> 00:53:29.800
<v Speaker 3>and in an awful lot of cases, no product owner

928
00:53:29.960 --> 00:53:34.079
<v Speaker 3>at all. Yeah, agile is is agile ish scrum butt.

929
00:53:36.000 --> 00:53:40.519
<v Speaker 1>And yeah scrum, but we don't do this except.

930
00:53:41.800 --> 00:53:46.480
<v Speaker 3>And then you see the scaled Agile framework for enterprise

931
00:53:46.519 --> 00:53:50.079
<v Speaker 3>and the lean scaled Agile framework for enterprise, and the

932
00:53:50.159 --> 00:53:54.280
<v Speaker 3>lean one is like for small to medium enterprises and

933
00:53:54.360 --> 00:53:58.519
<v Speaker 3>it seems it's like the London Underground Tube map. It's

934
00:53:58.639 --> 00:54:03.280
<v Speaker 3>just all the different things. And then when I'm sitting

935
00:54:03.519 --> 00:54:07.400
<v Speaker 3>I'm sort of working on the new version of threat Badger,

936
00:54:07.440 --> 00:54:09.039
<v Speaker 3>which is going to look exactly the same as the

937
00:54:09.039 --> 00:54:11.800
<v Speaker 3>old version. I'm also working on another thing. I just

938
00:54:11.880 --> 00:54:16.960
<v Speaker 3>use can ban board. I have a backlog column and

939
00:54:17.000 --> 00:54:20.639
<v Speaker 3>a ready to do column, and a doing column and

940
00:54:20.679 --> 00:54:23.800
<v Speaker 3>a done column when it's just me because I considered

941
00:54:23.840 --> 00:54:26.000
<v Speaker 3>the testing and everything part of that, but you because

942
00:54:26.039 --> 00:54:31.880
<v Speaker 3>it will put uat and everything in there. And the

943
00:54:32.519 --> 00:54:34.639
<v Speaker 3>real issue that came along with scrum was you have

944
00:54:34.679 --> 00:54:38.559
<v Speaker 3>your backlog grooming sessions, which are like weekly regardless of

945
00:54:38.800 --> 00:54:41.519
<v Speaker 3>how many weeks you have in a sprint. Then you

946
00:54:41.559 --> 00:54:46.840
<v Speaker 3>have your sprint planning session, and then you have your

947
00:54:46.880 --> 00:54:51.159
<v Speaker 3>daily stand ups, which everyone tries to keep to fifteen minutes,

948
00:54:51.199 --> 00:54:53.159
<v Speaker 3>but a lot of the time they run, you know,

949
00:54:53.239 --> 00:54:57.119
<v Speaker 3>upwards of half an hour. And then you have your

950
00:54:57.599 --> 00:55:03.960
<v Speaker 3>your retrospective and your demo and your sprint review. And

951
00:55:04.440 --> 00:55:08.320
<v Speaker 3>if you're doing two week sprints, you've got ten days

952
00:55:08.920 --> 00:55:13.079
<v Speaker 3>and you're spending like twenty percent of that in the

953
00:55:13.199 --> 00:55:16.719
<v Speaker 3>various meetings, which means you're not building anything you're not

954
00:55:16.760 --> 00:55:21.159
<v Speaker 3>shipping anything, you're not delivering anything, and where's the value.

955
00:55:21.440 --> 00:55:23.239
<v Speaker 3>And if you are a small team of six or

956
00:55:23.280 --> 00:55:30.679
<v Speaker 3>eight developers, and you are, if you're homogeneous, if you

957
00:55:30.760 --> 00:55:33.559
<v Speaker 3>all know the domain and all the different technologies and

958
00:55:33.559 --> 00:55:35.519
<v Speaker 3>all this sort of thing, then anyone can take any

959
00:55:35.679 --> 00:55:40.039
<v Speaker 3>ticket from the ready to do column and say I'm

960
00:55:40.039 --> 00:55:43.039
<v Speaker 3>doing this, and you can prioritize them just by moving

961
00:55:43.039 --> 00:55:46.639
<v Speaker 3>them up and down. And you don't get into this

962
00:55:46.719 --> 00:55:51.400
<v Speaker 3>thing and ah story points and T shirt sizes and

963
00:55:51.440 --> 00:55:56.400
<v Speaker 3>all that stuff, and it's just kind of you don't

964
00:55:56.440 --> 00:55:59.559
<v Speaker 3>have to do all that stuff. You can just put

965
00:55:59.599 --> 00:56:01.719
<v Speaker 3>a board up and put some stories on it and

966
00:56:01.760 --> 00:56:05.519
<v Speaker 3>move them across and just keep shipping and delivering.

967
00:56:05.639 --> 00:56:08.400
<v Speaker 1>One step up from a notepad totally pretty much.

968
00:56:08.480 --> 00:56:09.280
<v Speaker 3>Yeah, you know.

969
00:56:09.360 --> 00:56:10.960
<v Speaker 2>When you mentioned the cam member in the first thing,

970
00:56:11.280 --> 00:56:13.400
<v Speaker 2>it's just a way to visualize where we're stuck.

971
00:56:13.559 --> 00:56:13.920
<v Speaker 1>That's right.

972
00:56:14.199 --> 00:56:15.920
<v Speaker 2>That everybody can see that. You don't have to have

973
00:56:15.960 --> 00:56:18.280
<v Speaker 2>a meeting. Nobody has to memorize, like you see it

974
00:56:18.400 --> 00:56:20.760
<v Speaker 2>every day and you see it when it don.

975
00:56:20.719 --> 00:56:24.400
<v Speaker 3>Sticks yes, and you know people can kind of go,

976
00:56:24.679 --> 00:56:26.599
<v Speaker 3>that was there yesterday, why is it still there today?

977
00:56:27.280 --> 00:56:29.719
<v Speaker 3>I'll go and ask him rather than having a stand up.

978
00:56:30.119 --> 00:56:33.360
<v Speaker 3>The idea that you set aside fifteen minutes in the morning,

979
00:56:33.480 --> 00:56:35.519
<v Speaker 3>I think it appeals to developers is like, all right,

980
00:56:35.519 --> 00:56:37.880
<v Speaker 3>so I have to talk to people for fifteen minutes,

981
00:56:37.920 --> 00:56:43.119
<v Speaker 3>but then yeah, I get th headphones on, getting motivated

982
00:56:43.199 --> 00:56:47.079
<v Speaker 3>to be a low Yeah, it's another it's that developer

983
00:56:47.119 --> 00:56:47.760
<v Speaker 3>experience thing.

984
00:56:47.800 --> 00:56:48.039
<v Speaker 2>Again.

985
00:56:48.119 --> 00:56:51.320
<v Speaker 3>We don't like talking to each other, so just contain

986
00:56:51.400 --> 00:56:54.039
<v Speaker 3>it to work things. But no, you should be getting.

987
00:56:53.760 --> 00:56:56.159
<v Speaker 1>Out of the way, have a couple of cups of coffee.

988
00:56:57.519 --> 00:56:59.519
<v Speaker 2>Show has just been about containers, right, It's just that.

989
00:57:02.320 --> 00:57:07.400
<v Speaker 3>Can contain the complexity. So yeah, So, like I say,

990
00:57:07.440 --> 00:57:12.480
<v Speaker 3>I'm going to be doing that that talk. That's my

991
00:57:12.480 --> 00:57:15.920
<v Speaker 3>my sort of tech talk for the next year at least.

992
00:57:17.639 --> 00:57:20.840
<v Speaker 3>And oh, I would like to shout out Alex Russell.

993
00:57:22.320 --> 00:57:24.960
<v Speaker 3>I think slightly late is his sort of handle on

994
00:57:25.119 --> 00:57:28.519
<v Speaker 3>various media and everything. So and he worked on the

995
00:57:28.559 --> 00:57:31.159
<v Speaker 3>Chrome browser for a long time, on the jamscript, run

996
00:57:31.159 --> 00:57:34.639
<v Speaker 3>time v eight, that sort of thing. And he is

997
00:57:35.320 --> 00:57:38.440
<v Speaker 3>like the little Dutch boy with his finger in the

998
00:57:38.519 --> 00:57:42.719
<v Speaker 3>in the dam saying please please stop using all these

999
00:57:42.800 --> 00:57:46.360
<v Speaker 3>JavaScript frameworks and everything. And so I was some of

1000
00:57:46.400 --> 00:57:49.000
<v Speaker 3>the inspiration for the talk came from reading his blog

1001
00:57:49.000 --> 00:57:51.079
<v Speaker 3>posts as well, so shout out to him.

1002
00:57:51.360 --> 00:57:53.280
<v Speaker 2>Great infrequently noted is his blood.

1003
00:57:53.320 --> 00:57:54.079
<v Speaker 3>There we go, that's the one.

1004
00:57:54.159 --> 00:57:56.280
<v Speaker 2>Yeah, yeah, I'll throw it, including the show notes. I've

1005
00:57:56.280 --> 00:57:58.679
<v Speaker 2>read it before. He's he is quite brilliant.

1006
00:57:58.920 --> 00:58:00.679
<v Speaker 3>He is. He is a very very smart guy and

1007
00:58:00.719 --> 00:58:03.440
<v Speaker 3>we should listen to him.

1008
00:58:03.519 --> 00:58:08.360
<v Speaker 1>Not wrong. Yeah, so you got this talk. Where are

1009
00:58:08.400 --> 00:58:11.400
<v Speaker 1>you going to be delivering that in the upcoming months?

1010
00:58:11.639 --> 00:58:14.119
<v Speaker 3>So next year it's probably going to be at the

1011
00:58:14.239 --> 00:58:19.960
<v Speaker 3>NDC conferences, go to conferences possibly dev Ox. DeVos have

1012
00:58:20.039 --> 00:58:23.559
<v Speaker 3>started asking me to come and do things now because

1013
00:58:23.559 --> 00:58:26.320
<v Speaker 3>I've been doing all these you know how JavaScript happened

1014
00:58:26.320 --> 00:58:29.440
<v Speaker 3>and the Albatross project and programming as great as mistakes,

1015
00:58:29.800 --> 00:58:32.760
<v Speaker 3>so they're not tech specific and so I'm getting to

1016
00:58:32.800 --> 00:58:36.239
<v Speaker 3>go and do other conferences and meet entirely new audiences,

1017
00:58:36.280 --> 00:58:39.760
<v Speaker 3>which is wonderful. One. I'm really enjoying it. And also

1018
00:58:39.800 --> 00:58:42.360
<v Speaker 3>my kids are at that age now where I can

1019
00:58:43.679 --> 00:58:47.039
<v Speaker 3>do more traveling and speaking engagements, and I'm really looking

1020
00:58:47.039 --> 00:58:48.159
<v Speaker 3>forward to getting into it.

1021
00:58:48.280 --> 00:58:52.719
<v Speaker 1>Yeah, there's a couple of conferences in Sweden in Stockholm

1022
00:58:52.840 --> 00:58:56.280
<v Speaker 1>that happened every year. You have Sam and sweet Toob.

1023
00:58:56.719 --> 00:58:59.400
<v Speaker 3>Yes, i will definitely try and get to dev some

1024
00:59:01.440 --> 00:59:03.519
<v Speaker 3>I've done that a couple of times. That's always a

1025
00:59:03.559 --> 00:59:06.360
<v Speaker 3>good conference. But yes, if anyone's listening to this and

1026
00:59:06.400 --> 00:59:11.079
<v Speaker 3>would like me to come to your your massive conference

1027
00:59:11.119 --> 00:59:13.920
<v Speaker 3>with three thousand attendees, but even if you would just

1028
00:59:14.000 --> 00:59:16.079
<v Speaker 3>like me to pop over and talk to a meetup

1029
00:59:16.159 --> 00:59:20.000
<v Speaker 3>or a user group or something, then get in touch

1030
00:59:20.880 --> 00:59:22.280
<v Speaker 3>and we'll see what we can do.

1031
00:59:22.519 --> 00:59:25.400
<v Speaker 2>Check out the render lads link is on the show notes.

1032
00:59:25.519 --> 00:59:28.840
<v Speaker 1>Just grab a busfair a sandwich in a hostel.

1033
00:59:29.079 --> 00:59:33.119
<v Speaker 3>Yeah, that'll do me. Wake outch have base will travel.

1034
00:59:33.400 --> 00:59:34.119
<v Speaker 2>Yeah, there you go.

1035
00:59:34.719 --> 00:59:37.079
<v Speaker 1>Mark. It's always a pleasure talking to you. You always

1036
00:59:37.480 --> 00:59:39.960
<v Speaker 1>bring something interesting to the table and this is no difference.

1037
00:59:39.960 --> 00:59:42.239
<v Speaker 3>So thank you, thank you for having me on again.

1038
00:59:42.280 --> 00:59:43.960
<v Speaker 3>It's it's really great talking with you guys.

1039
00:59:44.000 --> 00:59:46.599
<v Speaker 1>All right, we'll talk to you next time. I'm dot

1040
00:59:46.679 --> 01:00:09.800
<v Speaker 1>net Rucks. Dot net Rocks is brought to you by

1041
01:00:09.880 --> 01:00:14.559
<v Speaker 1>Franklin's Net and produced by Pop Studios, a full service audio,

1042
01:00:14.679 --> 01:00:19.119
<v Speaker 1>video and post production facility located physically in New London, Connecticut,

1043
01:00:19.360 --> 01:00:24.159
<v Speaker 1>and of course in the cloud online at pwop dot com.

1044
01:00:24.360 --> 01:00:26.480
<v Speaker 1>Visit our website at d O t N E t

1045
01:00:26.719 --> 01:00:30.760
<v Speaker 1>R O c k S dot com for RSS feeds, downloads,

1046
01:00:30.880 --> 01:00:34.599
<v Speaker 1>mobile apps, comments, and access to the full archives going

1047
01:00:34.599 --> 01:00:38.000
<v Speaker 1>back to show number one, recorded in September two thousand

1048
01:00:38.039 --> 01:00:40.679
<v Speaker 1>and two. And make sure you check out our sponsors.

1049
01:00:40.840 --> 01:00:43.840
<v Speaker 1>They keep us in business. Now go write some code.

1050
01:00:44.199 --> 01:01:01.239
<v Speaker 1>See you next time you got jed middle vansported the

1051
01:01:01.679 --> 01:01:01.719
<v Speaker 1>s
