WEBVTT

1
00:00:01.080 --> 00:00:03.000
<v Speaker 1>How'd you like to listen to dot net rocks with

2
00:00:03.040 --> 00:00:07.879
<v Speaker 1>no ads? Easy? Become a patron for just five dollars

3
00:00:07.919 --> 00:00:10.800
<v Speaker 1>a month. You get access to a private RSS feed

4
00:00:10.839 --> 00:00:14.240
<v Speaker 1>where all the shows have no ads. Twenty dollars a month,

5
00:00:14.279 --> 00:00:16.879
<v Speaker 1>we'll get you that and a special dot net Rocks

6
00:00:16.960 --> 00:00:21.000
<v Speaker 1>patron mug. Sign up now at Patreon dot dot NetRocks

7
00:00:21.120 --> 00:00:37.600
<v Speaker 1>dot com. Welcome back to dot net Rocks, the Internet

8
00:00:37.640 --> 00:00:40.920
<v Speaker 1>audio talkshow for dot net developers. Remember that tagline rich.

9
00:00:40.960 --> 00:00:42.479
<v Speaker 2>Yeah, because we're not clever enough to come up the

10
00:00:42.520 --> 00:00:44.880
<v Speaker 2>word podcast, Well we.

11
00:00:44.679 --> 00:00:48.520
<v Speaker 1>Were two years before that word could have thought of

12
00:00:48.560 --> 00:00:52.200
<v Speaker 1>the word yeah. I'm Carl Franklin, and I'm Richard Campbell,

13
00:00:52.240 --> 00:00:53.840
<v Speaker 1>Gary You and Park is here with us. We're gonna

14
00:00:53.880 --> 00:00:56.600
<v Speaker 1>be talking to him in a minute. But first, Richard, Hello,

15
00:00:57.000 --> 00:00:57.920
<v Speaker 1>where the heck are you?

16
00:00:58.600 --> 00:01:01.679
<v Speaker 2>I am at build stuff in Vilnius, Lithuania.

17
00:01:01.759 --> 00:01:02.039
<v Speaker 1>Wow.

18
00:01:02.240 --> 00:01:05.879
<v Speaker 2>Yeah, cool? Last week I was in Brisbane, Australia, So

19
00:01:05.959 --> 00:01:07.640
<v Speaker 2>I do not know what time it is?

20
00:01:08.719 --> 00:01:11.280
<v Speaker 1>Your uh? Your wife doesn't like you hanging around the

21
00:01:11.280 --> 00:01:13.200
<v Speaker 1>house too long, does she look?

22
00:01:13.200 --> 00:01:15.159
<v Speaker 2>I'm good for about three weeks, right, and by somewhere

23
00:01:15.159 --> 00:01:16.719
<v Speaker 2>else three weeks She's like, don't you have somewhere to

24
00:01:16.760 --> 00:01:21.400
<v Speaker 2>go now. No, she was with me in Australia. We

25
00:01:21.439 --> 00:01:23.760
<v Speaker 2>did a month in New Zealand, Australia with the new

26
00:01:23.840 --> 00:01:25.040
<v Speaker 2>grand baby with a family.

27
00:01:25.120 --> 00:01:25.319
<v Speaker 3>Yeah.

28
00:01:25.400 --> 00:01:27.599
<v Speaker 2>Yeah, yeah. She went from seven months old to eight

29
00:01:27.640 --> 00:01:30.359
<v Speaker 2>months old. We're on the road and when we left

30
00:01:30.400 --> 00:01:32.799
<v Speaker 2>with her, she could just sit up and she had

31
00:01:32.799 --> 00:01:35.480
<v Speaker 2>do a little teth in the bottom. There's cool. And

32
00:01:35.519 --> 00:01:37.719
<v Speaker 2>by the end of the month she's got two up

33
00:01:37.799 --> 00:01:40.959
<v Speaker 2>and down and she's starting to crawl and she's pulling

34
00:01:40.959 --> 00:01:44.959
<v Speaker 2>herself to her feet. Like you forget how fast babies grow.

35
00:01:45.079 --> 00:01:45.760
<v Speaker 2>It's done.

36
00:01:45.879 --> 00:01:48.280
<v Speaker 1>My grand baby is two years old and she's actually

37
00:01:48.400 --> 00:01:49.239
<v Speaker 1>visiting right now.

38
00:01:49.319 --> 00:01:50.120
<v Speaker 2>Oh that's awesome.

39
00:01:50.519 --> 00:01:52.519
<v Speaker 1>They came up for Thanksgiving weekend.

40
00:01:52.920 --> 00:01:55.400
<v Speaker 2>I'm digging this grandparenting thing. Man, this is fun.

41
00:01:55.640 --> 00:02:00.799
<v Speaker 1>Enough grandparent chit chat. Let's talk about what happened in

42
00:02:00.879 --> 00:02:04.719
<v Speaker 1>nineteen eighty because this is episode nineteen eighty twenty more

43
00:02:04.760 --> 00:02:11.360
<v Speaker 1>episodes and we've got we're now teenagers. Yes, that's right, thirteen,

44
00:02:11.520 --> 00:02:16.000
<v Speaker 1>I think. Yeah, so let's talk about it. Okay, Well,

45
00:02:16.039 --> 00:02:20.879
<v Speaker 1>this is the year that pac Man debuted. Yeah you

46
00:02:20.919 --> 00:02:25.520
<v Speaker 1>know that. Yeah, and CNN was launched, ye, and that

47
00:02:26.159 --> 00:02:29.639
<v Speaker 1>kind of changed everybody's worldview and made it seem like

48
00:02:29.680 --> 00:02:31.000
<v Speaker 1>the world was more dangerous.

49
00:02:32.039 --> 00:02:35.719
<v Speaker 2>Yeah, we could cave. Twenty four hour news, right, cable news. Yeah.

50
00:02:35.759 --> 00:02:38.639
<v Speaker 1>No, matter where the bad stuff happens, you'll know about it.

51
00:02:38.719 --> 00:02:38.960
<v Speaker 2>Yes.

52
00:02:40.039 --> 00:02:42.879
<v Speaker 1>Thirteenth Winter Olympics were held in Lake Placid, New York.

53
00:02:43.000 --> 00:02:48.360
<v Speaker 1>Oh right, yeah, starting February thirteen. Let's see US grane embargo.

54
00:02:48.479 --> 00:02:51.919
<v Speaker 1>On January fourth, Jimmy Carter announced the grain embargo against

55
00:02:51.919 --> 00:02:56.120
<v Speaker 1>the USSR. Of course, the Iran hostage crisis read its

56
00:02:56.199 --> 00:03:00.919
<v Speaker 1>ugly head. Let's see, there was an new Mexico State

57
00:03:00.960 --> 00:03:04.879
<v Speaker 1>penitentiary riot Mount Saint Helen's. Everybody remembers that we had

58
00:03:04.960 --> 00:03:07.560
<v Speaker 1>ash all the way over here in Connecticut on our

59
00:03:07.599 --> 00:03:08.919
<v Speaker 1>cars from Mount Saint Helen.

60
00:03:09.240 --> 00:03:12.199
<v Speaker 2>Yeah, and we heard it up in Vancouver. It was

61
00:03:12.199 --> 00:03:13.080
<v Speaker 2>this Sunday morning.

62
00:03:14.000 --> 00:03:16.360
<v Speaker 1>And that's all I'm gonna say. Because we've been getting

63
00:03:16.360 --> 00:03:19.919
<v Speaker 1>some negative feedback show we say about how long it

64
00:03:19.960 --> 00:03:21.919
<v Speaker 1>takes to get to our actual show.

65
00:03:22.000 --> 00:03:24.520
<v Speaker 2>So I'll wrap it up right here. Okay, but you

66
00:03:24.599 --> 00:03:28.120
<v Speaker 2>can talk amazing. You didn't mention Lenin was killed in

67
00:03:28.280 --> 00:03:29.199
<v Speaker 2>nineteen eighty though.

68
00:03:29.080 --> 00:03:32.159
<v Speaker 1>You know what, that's right, he was killed in oh Man.

69
00:03:32.479 --> 00:03:33.879
<v Speaker 1>That was a hard day.

70
00:03:33.960 --> 00:03:34.680
<v Speaker 2>It was a bad day.

71
00:03:34.840 --> 00:03:36.919
<v Speaker 1>That was a bad day. And we don't mean you

72
00:03:36.919 --> 00:03:41.960
<v Speaker 1>know lenin the leader. I mean John Lennon, of course, briefly,

73
00:03:42.039 --> 00:03:44.719
<v Speaker 1>what you got for science and tech and all that.

74
00:03:45.120 --> 00:03:47.319
<v Speaker 2>On the space side, this is the year that Vorger

75
00:03:47.360 --> 00:03:49.439
<v Speaker 2>one flies by Saturn, first time we get close up

76
00:03:49.439 --> 00:03:53.520
<v Speaker 2>pictures of Saturn. This dose also well. The Russians are

77
00:03:53.520 --> 00:03:59.039
<v Speaker 2>operating to Salute six space station in orbit and routinely

78
00:03:59.080 --> 00:04:01.680
<v Speaker 2>supplying it and maintained it. This is the launch of

79
00:04:01.719 --> 00:04:05.000
<v Speaker 2>the Solar Max satellite on Delta two rocket that immediately

80
00:04:05.039 --> 00:04:07.599
<v Speaker 2>has attitude control failures after a couple of months of

81
00:04:07.639 --> 00:04:11.560
<v Speaker 2>operations and will be repaired by this Space Shuttle challenger

82
00:04:11.599 --> 00:04:14.840
<v Speaker 2>in a few years, because the Shuttle is well in development.

83
00:04:14.879 --> 00:04:18.079
<v Speaker 2>In fact, Columbia has spent all of nineteen eighty in

84
00:04:18.199 --> 00:04:21.639
<v Speaker 2>testing getting ready for its first flight in nineteen eighty one. Wow.

85
00:04:22.000 --> 00:04:24.279
<v Speaker 2>On the computing side, this is the year that Jack

86
00:04:24.319 --> 00:04:28.319
<v Speaker 2>Tramil unveils the VIC twenty, although it doesn't actually show

87
00:04:28.399 --> 00:04:30.720
<v Speaker 2>up in the US until nineteen eighty one. In nineteen

88
00:04:30.720 --> 00:04:33.360
<v Speaker 2>eighty it's released to Japan as the VIC one thousand

89
00:04:33.399 --> 00:04:37.079
<v Speaker 2>and one with sixty five oh two processor five K

90
00:04:37.240 --> 00:04:39.800
<v Speaker 2>of ram Because numbers are hard, although expandable to thirty

91
00:04:39.839 --> 00:04:43.360
<v Speaker 2>two k and he also pays it was only about

92
00:04:43.399 --> 00:04:45.600
<v Speaker 2>three hundred bucks. They sell two million of the things.

93
00:04:45.720 --> 00:04:48.000
<v Speaker 2>It'll get replaced by the CC four course. But one

94
00:04:48.000 --> 00:04:49.839
<v Speaker 2>of the key things he did is he got Scott

95
00:04:49.879 --> 00:04:53.399
<v Speaker 2>Adams to port the Scott out of Adventures, five of

96
00:04:53.439 --> 00:04:55.879
<v Speaker 2>them to the VIC twenty. Now with only five k RAM,

97
00:04:55.920 --> 00:04:57.720
<v Speaker 2>there's no way to make those games running there, but

98
00:04:58.199 --> 00:05:01.959
<v Speaker 2>the game would sload off a sixteen k ROM cartridge

99
00:05:02.120 --> 00:05:05.120
<v Speaker 2>as you played it, so that the sworage was in

100
00:05:05.160 --> 00:05:07.639
<v Speaker 2>the wrong cartridge. And they sell it makes one point

101
00:05:07.680 --> 00:05:10.519
<v Speaker 2>five million just on those games. Wow. So and it

102
00:05:10.560 --> 00:05:13.279
<v Speaker 2>comes to go very very quickly. Nineteen eighty also the

103
00:05:13.319 --> 00:05:16.680
<v Speaker 2>year that Tim berners Lee builds a tool called Inquire,

104
00:05:17.199 --> 00:05:23.879
<v Speaker 2>which is a network hypertext system. Hmmm yeah, okay, that'll

105
00:05:23.920 --> 00:05:27.439
<v Speaker 2>never go anywhere, never go anywhere. Two more things. Seagate

106
00:05:27.480 --> 00:05:30.199
<v Speaker 2>releases the ST five six, which is a five megabyte

107
00:05:30.240 --> 00:05:33.279
<v Speaker 2>three and a half inch full height hard drive which

108
00:05:33.319 --> 00:05:37.079
<v Speaker 2>I will make money from installing into the upcoming IBM

109
00:05:37.240 --> 00:05:40.240
<v Speaker 2>PC which will be released next year. And this is

110
00:05:40.240 --> 00:05:44.120
<v Speaker 2>also the year that a collaboration between deck Intel and

111
00:05:44.240 --> 00:05:47.600
<v Speaker 2>Xerox comes up with the Ethernet Dix standard for ten

112
00:05:47.720 --> 00:05:51.879
<v Speaker 2>megabit networking. Wow, this is at a time when every

113
00:05:51.879 --> 00:05:54.120
<v Speaker 2>company had their own kind of networking, and so they

114
00:05:54.199 --> 00:05:55.680
<v Speaker 2>try and create sentence on this, and so the I

115
00:05:55.759 --> 00:05:58.000
<v Speaker 2>triple lee will start what do we know as the

116
00:05:58.160 --> 00:06:01.560
<v Speaker 2>eight O two standard four lands. This is the beginning

117
00:06:01.639 --> 00:06:03.720
<v Speaker 2>of all of that. And that's what I got.

118
00:06:03.920 --> 00:06:07.879
<v Speaker 1>Awesome, awesome, awesome, all right, Well let's get going with

119
00:06:08.000 --> 00:06:09.680
<v Speaker 1>better no framework, roll the music?

120
00:06:09.800 --> 00:06:18.839
<v Speaker 2>Awesome? All right, man, what do you got?

121
00:06:18.959 --> 00:06:23.920
<v Speaker 1>Okay? This is a tool called uni get ui, which

122
00:06:24.000 --> 00:06:29.439
<v Speaker 1>was formerly win get ui, and the main goal of

123
00:06:29.439 --> 00:06:32.160
<v Speaker 1>the project is created an intuitive guy for the most

124
00:06:32.160 --> 00:06:36.839
<v Speaker 1>common CLI package managers for Windows ten and eleven, such

125
00:06:36.879 --> 00:06:41.639
<v Speaker 1>as wind get Scoop, Chocolate, pip, NPM, dot Net tool, PowerShell, Gallery,

126
00:06:41.680 --> 00:06:46.680
<v Speaker 1>and moore. Check out the package manager compatibility table. So

127
00:06:46.959 --> 00:06:48.920
<v Speaker 1>they like to say that it's kind of like a

128
00:06:49.079 --> 00:06:51.560
<v Speaker 1>package manager manager package manager.

129
00:06:52.959 --> 00:06:55.319
<v Speaker 2>It's package manager inception.

130
00:06:55.600 --> 00:06:57.279
<v Speaker 1>But I thought that would be good because you know,

131
00:06:57.439 --> 00:07:00.319
<v Speaker 1>mister Chocolady is here and yeah, it's kind of and

132
00:07:00.360 --> 00:07:02.720
<v Speaker 1>it's kind of trending on GitHub right now. So kids

133
00:07:02.759 --> 00:07:03.240
<v Speaker 1>met cool.

134
00:07:03.319 --> 00:07:04.120
<v Speaker 2>Yeah, who knew.

135
00:07:04.319 --> 00:07:08.000
<v Speaker 1>I don't find a need for this myself, but you know.

136
00:07:08.639 --> 00:07:10.480
<v Speaker 2>How many How often are you building machines?

137
00:07:10.920 --> 00:07:14.040
<v Speaker 1>Well, that's true, but there's a little but you know,

138
00:07:14.480 --> 00:07:19.360
<v Speaker 1>there's package managers for NPM and and all of that

139
00:07:19.360 --> 00:07:22.439
<v Speaker 1>stuff as well PowerShell galleries. Yeah, it goes beyond just

140
00:07:22.639 --> 00:07:26.680
<v Speaker 1>you know, chocolatey and Windows. Anyway, that's what I got.

141
00:07:26.680 --> 00:07:28.759
<v Speaker 1>Who's talking to us today, Richard.

142
00:07:28.839 --> 00:07:31.759
<v Speaker 2>Grabbing comment off show eighteen fifty nine when we did

143
00:07:31.800 --> 00:07:34.360
<v Speaker 2>with one Gary, you and Park back in twenty twenty

144
00:07:34.360 --> 00:07:38.079
<v Speaker 2>three talking about it. Oddly enough, chocolatey hey, and this

145
00:07:38.160 --> 00:07:40.480
<v Speaker 2>common comes to us from Curtis who this is about

146
00:07:40.480 --> 00:07:42.839
<v Speaker 2>a year ago, where he said, I'm maintaining most chocolate

147
00:07:42.959 --> 00:07:45.759
<v Speaker 2>packages fairly easily. I spent about an hour a month

148
00:07:46.240 --> 00:07:50.399
<v Speaker 2>managing patches that update the using the au tool, which

149
00:07:50.439 --> 00:07:56.079
<v Speaker 2>is on the GitHub repository by Digital Coyote. The manual

150
00:07:56.120 --> 00:07:58.160
<v Speaker 2>packages in that repo are is can really more time

151
00:07:58.199 --> 00:08:01.639
<v Speaker 2>intensive though multipass, for instance cars booting up a Windows

152
00:08:01.720 --> 00:08:04.680
<v Speaker 2>pro or enterprise system to build tests and deploy that package.

153
00:08:05.560 --> 00:08:07.560
<v Speaker 2>On the note of using older dot net frameworks, it's

154
00:08:07.600 --> 00:08:09.439
<v Speaker 2>one of the things we talked about back that show.

155
00:08:10.079 --> 00:08:12.120
<v Speaker 2>I've seen time and again someone go into a new

156
00:08:12.120 --> 00:08:15.399
<v Speaker 2>project to choose dot net four six two because quote

157
00:08:15.519 --> 00:08:20.040
<v Speaker 2>it's stable, or quote we know it works. As recently

158
00:08:20.040 --> 00:08:22.439
<v Speaker 2>as mid twenty twenty three, I see the same choices

159
00:08:22.480 --> 00:08:24.480
<v Speaker 2>in new get packages as well, where a team will

160
00:08:24.560 --> 00:08:26.879
<v Speaker 2>choose to stick with the deprecated version of a package

161
00:08:26.920 --> 00:08:32.159
<v Speaker 2>because it's known to work. Upgraded projects to each LTS

162
00:08:32.200 --> 00:08:35.240
<v Speaker 2>release since dot net core two point one without issues.

163
00:08:35.879 --> 00:08:39.320
<v Speaker 2>That includes upgrading most dependencies on each release pretty through

164
00:08:39.360 --> 00:08:41.879
<v Speaker 2>the release notes and weighing the risk benefit will almost

165
00:08:41.919 --> 00:08:45.679
<v Speaker 2>always cause you to upgrade. The security fixes alone are

166
00:08:45.759 --> 00:08:49.799
<v Speaker 2>usually worth any breaking changes in your app. Absolutely, that's

167
00:08:49.840 --> 00:08:53.320
<v Speaker 2>good advice, Curtis. I'm not gonna argue a bit. Absolutely,

168
00:08:53.480 --> 00:08:55.840
<v Speaker 2>you know it's worth getting moving on. And the new

169
00:08:56.440 --> 00:09:00.720
<v Speaker 2>tools for actually checking compatibility guiding off four to six

170
00:09:00.919 --> 00:09:04.080
<v Speaker 2>up to what it is now dot net ten, which

171
00:09:04.159 --> 00:09:07.960
<v Speaker 2>is the latest LTS release, they're impressively good. They will

172
00:09:08.399 --> 00:09:10.360
<v Speaker 2>not only tell you where you're gonna have problems, they

173
00:09:10.399 --> 00:09:13.200
<v Speaker 2>will give you good instructions on what to do about it. Yep. So,

174
00:09:14.279 --> 00:09:18.639
<v Speaker 2>with the exception of web forms and other obviously non ports,

175
00:09:18.720 --> 00:09:22.440
<v Speaker 2>if you you a lot of apps apportable, even the

176
00:09:22.480 --> 00:09:26.080
<v Speaker 2>wind forms from the win SDK really not really a

177
00:09:26.080 --> 00:09:28.440
<v Speaker 2>breaking change anymore. They've done a pretty good job there,

178
00:09:28.919 --> 00:09:31.399
<v Speaker 2>So Curtis, thank you so much your comment, and a

179
00:09:31.480 --> 00:09:33.039
<v Speaker 2>copy of music cobuy is on its way to you.

180
00:09:33.039 --> 00:09:34.440
<v Speaker 2>And if you'd like a copy of music, go buy.

181
00:09:34.440 --> 00:09:35.960
<v Speaker 2>I write a cam on the website at dot net

182
00:09:36.039 --> 00:09:38.279
<v Speaker 2>rocks dot com or on the facebooks. You publish every

183
00:09:38.279 --> 00:09:39.600
<v Speaker 2>show there and if you comment there and I read

184
00:09:39.639 --> 00:09:41.639
<v Speaker 2>in the show, will send you copy music Go buy.

185
00:09:41.799 --> 00:09:45.440
<v Speaker 1>Music to Code by track twenty three is halfway done. Nice,

186
00:09:45.480 --> 00:09:48.720
<v Speaker 1>so I expect that to be published within the next

187
00:09:48.720 --> 00:09:53.000
<v Speaker 1>couple of weeks, maybe by Christmas, because why wouldn't you

188
00:09:53.240 --> 00:09:56.480
<v Speaker 1>get your favorite friends music to code buy for That's

189
00:09:56.480 --> 00:10:01.279
<v Speaker 1>a great idea. Yeah. And also you mentioned web forms,

190
00:10:02.039 --> 00:10:05.399
<v Speaker 1>the thing that just didn't move over to core, right, yep,

191
00:10:05.440 --> 00:10:08.519
<v Speaker 1>this is this is the main focus of my consultancy

192
00:10:08.559 --> 00:10:12.279
<v Speaker 1>now is doing dot net core you know, Blazer versions

193
00:10:12.320 --> 00:10:14.759
<v Speaker 1>of old web forms apps.

194
00:10:14.440 --> 00:10:16.360
<v Speaker 2>Web forms apps. Yeah, I figured that'd be a path.

195
00:10:16.440 --> 00:10:17.480
<v Speaker 1>Yeah, absolutely.

196
00:10:17.519 --> 00:10:20.279
<v Speaker 2>And it's not that automatic either, is it like it's worked? No,

197
00:10:20.519 --> 00:10:22.159
<v Speaker 2>you don't know, I mean, but it's good to do

198
00:10:22.200 --> 00:10:25.679
<v Speaker 2>a rethink Jeff Fritz. Actually Fritz and friends had a

199
00:10:25.759 --> 00:10:29.840
<v Speaker 2>library that had the same interfaces as the web forms things.

200
00:10:30.120 --> 00:10:31.919
<v Speaker 2>But you end up with a lot of code that

201
00:10:32.000 --> 00:10:35.200
<v Speaker 2>isn't modern and all that stuff. But yeah, yeah, the

202
00:10:35.279 --> 00:10:37.759
<v Speaker 2>best thing to do is just start over use your

203
00:10:38.240 --> 00:10:42.480
<v Speaker 2>business logic. Well, you have a template for what people want,

204
00:10:42.639 --> 00:10:44.559
<v Speaker 2>you know that, but you also have a list of

205
00:10:44.559 --> 00:10:46.799
<v Speaker 2>things that people are annoyed by. Yeah, so it's a

206
00:10:46.799 --> 00:10:49.759
<v Speaker 2>great opportunity to rebuild and something makes them happier.

207
00:10:49.840 --> 00:10:52.559
<v Speaker 1>Yep, Okay, let's introduce Gary and bring them back on

208
00:10:52.600 --> 00:10:55.840
<v Speaker 1>the show. Gary Ewan Park has over ten years experience,

209
00:10:55.919 --> 00:10:59.799
<v Speaker 1>probably more like twelve thirteen fifteen now right, working as

210
00:10:59.840 --> 00:11:04.759
<v Speaker 1>a developer on technologies such as ASPNAT, Windows Forms, WPF, Sharepoints,

211
00:11:04.799 --> 00:11:08.080
<v Speaker 1>silver Light, and many others. Throughout his career, Gary has

212
00:11:08.080 --> 00:11:10.879
<v Speaker 1>always looked to see how things can be automated, using

213
00:11:10.879 --> 00:11:13.000
<v Speaker 1>the mantra that if you do the same thing more

214
00:11:13.039 --> 00:11:17.519
<v Speaker 1>than twice, it's time for automation. In twenty seventeen, he

215
00:11:17.639 --> 00:11:22.159
<v Speaker 1>was awarded a Microsoft MVP in Developer Technologies, and in

216
00:11:22.200 --> 00:11:25.440
<v Speaker 1>twenty twenty one he was awarded a getthub Star. His

217
00:11:25.600 --> 00:11:29.240
<v Speaker 1>day job has him working for Chocolatey Software Incorporated. In

218
00:11:29.279 --> 00:11:32.480
<v Speaker 1>his spare time, Gary contributes a number of open source projects,

219
00:11:32.559 --> 00:11:37.639
<v Speaker 1>including Chocolatey box Starter, cake Cake contrib, get version and

220
00:11:37.759 --> 00:11:38.799
<v Speaker 1>get release manager.

221
00:11:39.159 --> 00:11:43.799
<v Speaker 2>So enough, there's a scene to those projects. There's scenes. Hmmm, yeah,

222
00:11:43.799 --> 00:11:46.200
<v Speaker 2>there seems to be a theme there, Gary, that's weird.

223
00:11:46.559 --> 00:11:50.879
<v Speaker 3>Yeah, it's a long sorted history that's put it out.

224
00:11:50.720 --> 00:11:54.039
<v Speaker 1>Here, and we're funny, grateful.

225
00:11:54.480 --> 00:11:57.279
<v Speaker 2>We just had Mattias on talking about Cake as well,

226
00:11:57.360 --> 00:12:00.399
<v Speaker 2>you know, like it's these are things that are part

227
00:12:00.399 --> 00:12:02.399
<v Speaker 2>of our lives. I don't even think about him anymore.

228
00:12:02.440 --> 00:12:04.440
<v Speaker 2>You just did the way that you build machines, the

229
00:12:04.480 --> 00:12:08.679
<v Speaker 2>way that you deploy applications, it's stuff you got to do, right.

230
00:12:09.320 --> 00:12:11.080
<v Speaker 2>This is the plumbing of software.

231
00:12:11.399 --> 00:12:13.840
<v Speaker 1>I first heard about Chocolate from Alan Stevens.

232
00:12:14.120 --> 00:12:15.399
<v Speaker 2>Yeah, yeah, he was.

233
00:12:15.639 --> 00:12:18.519
<v Speaker 1>He was gung ho on it. He was really ahead

234
00:12:18.519 --> 00:12:20.919
<v Speaker 1>of his time in terms of, you know, embracing new

235
00:12:20.919 --> 00:12:25.240
<v Speaker 1>technologies when it came out, and probably still is. I

236
00:12:25.240 --> 00:12:25.720
<v Speaker 1>haven't talked to.

237
00:12:25.759 --> 00:12:27.759
<v Speaker 2>Him in a while, but yeah, been Well, so what

238
00:12:27.759 --> 00:12:28.440
<v Speaker 2>have you been working on?

239
00:12:28.559 --> 00:12:29.279
<v Speaker 1>Friend?

240
00:12:30.480 --> 00:12:33.200
<v Speaker 3>We continue to be busy over here, to be honest,

241
00:12:33.240 --> 00:12:37.720
<v Speaker 3>I mean we are. We're obviously we're a small team Chocolate,

242
00:12:37.840 --> 00:12:41.960
<v Speaker 3>but we have been increasing our numbers Chocolate, and the

243
00:12:42.000 --> 00:12:44.840
<v Speaker 3>requests keep coming in in terms of what people are

244
00:12:44.879 --> 00:12:47.600
<v Speaker 3>looking for, So we are we are definitely kept busy.

245
00:12:48.279 --> 00:12:53.000
<v Speaker 3>Literally yesterday or yesterday, I'm into today. We've just shipped

246
00:12:53.039 --> 00:12:56.480
<v Speaker 3>new versions of four of our core products. So wow, yeah, no,

247
00:12:56.559 --> 00:13:01.080
<v Speaker 3>we're busy. We're absolutely making progress.

248
00:13:01.440 --> 00:13:03.919
<v Speaker 1>Before you go on, we should probably define with chocolate

249
00:13:04.039 --> 00:13:06.519
<v Speaker 1>as I know that everybody probably knows, but there might

250
00:13:06.559 --> 00:13:08.320
<v Speaker 1>be a few people out there who are like, what,

251
00:13:09.159 --> 00:13:13.200
<v Speaker 1>so chocolate is like new Get for Windows, right, if

252
00:13:13.200 --> 00:13:16.399
<v Speaker 1>you think about it, that's way new Get chocolate.

253
00:13:16.519 --> 00:13:19.480
<v Speaker 3>Yeah, no, absolutely, that's yeah, yep, that's where it started.

254
00:13:19.519 --> 00:13:23.720
<v Speaker 3>I mean Rob Reynolds, the original creator of Chocolatey, was

255
00:13:23.879 --> 00:13:27.799
<v Speaker 3>very much making use of new Get to manage his

256
00:13:28.440 --> 00:13:31.240
<v Speaker 3>project dependency, so you can actually install the libraries that

257
00:13:31.279 --> 00:13:34.639
<v Speaker 3>you need for under coding against. But what he found was,

258
00:13:35.200 --> 00:13:37.240
<v Speaker 3>and this is the story he'll tell the story himself,

259
00:13:37.240 --> 00:13:40.399
<v Speaker 3>but he would go to his a friend's machine or

260
00:13:40.399 --> 00:13:42.480
<v Speaker 3>a colleagues machine to help him do a pairing session,

261
00:13:42.879 --> 00:13:45.759
<v Speaker 3>and the tools that he wanted weren't on that machine.

262
00:13:45.799 --> 00:13:48.559
<v Speaker 3>So he wanted a simple way to get the tools

263
00:13:48.559 --> 00:13:50.919
<v Speaker 3>that he wanted onto that machine so that he could

264
00:13:50.960 --> 00:13:53.840
<v Speaker 3>aid with painting sessions. And he was using new Get

265
00:13:53.840 --> 00:13:55.879
<v Speaker 3>and he looked at them board and said, well, if

266
00:13:55.919 --> 00:13:58.039
<v Speaker 3>I can use new get to install libraries, then maybe

267
00:13:58.080 --> 00:14:02.200
<v Speaker 3>I can use new get to install applications. So he

268
00:14:02.320 --> 00:14:07.600
<v Speaker 3>took he started a project which Chocolate as a package manager.

269
00:14:07.679 --> 00:14:10.639
<v Speaker 3>Originally started as a PowerShell project, so it was written

270
00:14:10.639 --> 00:14:14.600
<v Speaker 3>in PowerShell scripted and PowerShell. The sole focus was to

271
00:14:14.720 --> 00:14:18.480
<v Speaker 3>use the new get client libraries to install applications. And

272
00:14:18.519 --> 00:14:23.000
<v Speaker 3>then as the project progressed, it morphed into a dot

273
00:14:23.080 --> 00:14:25.720
<v Speaker 3>Net application and c sharp and it's been that way

274
00:14:25.759 --> 00:14:28.080
<v Speaker 3>for quite a while now, and it continues to be

275
00:14:28.279 --> 00:14:33.960
<v Speaker 3>a mechanism for installing applications onto your machine in a simple,

276
00:14:34.559 --> 00:14:36.919
<v Speaker 3>maintainable and repeatable way. So that's kind of the aim

277
00:14:37.000 --> 00:14:39.720
<v Speaker 3>of what Chocolate is. It's a Windows package manager.

278
00:14:40.799 --> 00:14:44.360
<v Speaker 2>Now there is a bunch of these. I mean, I

279
00:14:44.360 --> 00:14:46.480
<v Speaker 2>don't put new Getting Chocolate in the same category, but

280
00:14:46.559 --> 00:14:50.360
<v Speaker 2>I think wind get sits there certainly, Like how do

281
00:14:50.399 --> 00:14:52.240
<v Speaker 2>you rationalize all of these? Geary?

282
00:14:53.480 --> 00:14:55.559
<v Speaker 3>So what it comes down to, and I've spoken to

283
00:14:55.559 --> 00:14:58.200
<v Speaker 3>a few people at different conferences and et cetera about this.

284
00:14:58.600 --> 00:15:01.440
<v Speaker 3>It comes down to it. It's choice. It's what is

285
00:15:01.480 --> 00:15:03.320
<v Speaker 3>it you want to what is it you want to use,

286
00:15:03.360 --> 00:15:05.840
<v Speaker 3>and how do you want to use it? So people

287
00:15:06.080 --> 00:15:08.759
<v Speaker 3>quite often hear people say, oh, the Windows doesn't have

288
00:15:08.840 --> 00:15:12.440
<v Speaker 3>a package package package management ecosystem. You look at Linux

289
00:15:12.480 --> 00:15:15.360
<v Speaker 3>where they've got four or five six different package managers

290
00:15:15.360 --> 00:15:17.960
<v Speaker 3>for installing things. But on the Windows side of the house,

291
00:15:17.960 --> 00:15:19.759
<v Speaker 3>where we're getting to a point where we have quite

292
00:15:19.799 --> 00:15:22.639
<v Speaker 3>a selection now. So there's chocolate E, there's wind Get

293
00:15:22.639 --> 00:15:27.639
<v Speaker 3>that you spoke about, there's scoop, there's other alternatives that

294
00:15:27.759 --> 00:15:31.279
<v Speaker 3>you can use to install tools nowadays, and there's things

295
00:15:31.320 --> 00:15:33.360
<v Speaker 3>like dot Net Global tools that the kind of that's

296
00:15:33.399 --> 00:15:35.320
<v Speaker 3>kind of changed the landscape in terms of how you

297
00:15:35.399 --> 00:15:40.000
<v Speaker 3>get tools into your Windows machine or into your cic

298
00:15:40.159 --> 00:15:43.159
<v Speaker 3>D pipeline, so you can use dot Net tool install

299
00:15:43.279 --> 00:15:46.360
<v Speaker 3>now as well. So that's list. There is a plethora

300
00:15:46.559 --> 00:15:50.720
<v Speaker 3>of options in the Windows ecosystem now for doing application

301
00:15:50.840 --> 00:15:55.440
<v Speaker 3>management and we Chocolate are one of those, and we're

302
00:15:55.519 --> 00:16:00.879
<v Speaker 3>aiming to make the one the Windows installation ecosystem as

303
00:16:00.879 --> 00:16:03.879
<v Speaker 3>simple as possible, because it literally is. When you start

304
00:16:03.919 --> 00:16:08.039
<v Speaker 3>digging into the differences between ms I installers and n

305
00:16:08.159 --> 00:16:11.639
<v Speaker 3>s I, n s I S installers and ex s's

306
00:16:11.679 --> 00:16:14.279
<v Speaker 3>a there's a multitude of them. So what we Chocolate

307
00:16:14.320 --> 00:16:17.759
<v Speaker 3>are trying to do is make that landscape easier to maintain.

308
00:16:18.080 --> 00:16:21.440
<v Speaker 1>So you're mentioning some updates that you were that you're

309
00:16:21.480 --> 00:16:24.039
<v Speaker 1>coming out with or having that with yep.

310
00:16:24.960 --> 00:16:30.679
<v Speaker 3>So the team shipped new product versions of so chocolate

311
00:16:30.759 --> 00:16:33.600
<v Speaker 3>as a product has Chocolate ECLI. That's the one that

312
00:16:33.639 --> 00:16:36.519
<v Speaker 3>most people might know about. It's the open source version

313
00:16:36.559 --> 00:16:40.919
<v Speaker 3>of chocolate and people can download install that freely. Even

314
00:16:40.919 --> 00:16:43.919
<v Speaker 3>in a commercial ecosystem, you can use Chocolate Cli. But

315
00:16:43.960 --> 00:16:46.919
<v Speaker 3>we've also got other products that the commercial offerings that

316
00:16:46.960 --> 00:16:50.200
<v Speaker 3>build on top of the Chocolate Cli. So there's new

317
00:16:50.240 --> 00:16:54.360
<v Speaker 3>releases to the Chocolate License Extension, a system that we

318
00:16:54.399 --> 00:16:58.240
<v Speaker 3>call Chocolate Agent, and also the Chocolate Gouy License Extension.

319
00:16:58.279 --> 00:17:00.840
<v Speaker 3>So there was updates to four of our coreate going

320
00:17:00.840 --> 00:17:02.240
<v Speaker 3>out the door yesterday and today.

321
00:17:02.279 --> 00:17:04.720
<v Speaker 1>Did you really just say chocolately and Guy in the

322
00:17:04.799 --> 00:17:06.559
<v Speaker 1>same sense I did?

323
00:17:06.839 --> 00:17:11.920
<v Speaker 3>I did. So Chocolate Gouey is our offering for using

324
00:17:12.000 --> 00:17:16.640
<v Speaker 3>chocolate but through a graphical user interface to Guy.

325
00:17:17.720 --> 00:17:20.759
<v Speaker 1>Similar to framework there correct.

326
00:17:20.480 --> 00:17:24.519
<v Speaker 3>So similar to win get UI. So Chocolate Gouey offers

327
00:17:25.160 --> 00:17:28.240
<v Speaker 3>support for trust the Chocolate package manager, whereas what wouldn't

328
00:17:28.240 --> 00:17:32.119
<v Speaker 3>get Ui is attempting to solve is as you mentioned,

329
00:17:32.200 --> 00:17:35.119
<v Speaker 3>is the package manager managers. You know, the UI version

330
00:17:35.160 --> 00:17:37.599
<v Speaker 3>of the package manager manager. So you might remember there

331
00:17:37.599 --> 00:17:41.039
<v Speaker 3>was a system called one get which was a PowerShell

332
00:17:41.160 --> 00:17:44.799
<v Speaker 3>version of a package manager manager, so it was driven

333
00:17:44.799 --> 00:17:48.000
<v Speaker 3>from the command line, and when UI kind of sits

334
00:17:48.079 --> 00:17:52.720
<v Speaker 3>above that obviously but allows the management of multiple package

335
00:17:52.759 --> 00:17:56.599
<v Speaker 3>managers on Windows. So actually, I've been in I've had

336
00:17:56.640 --> 00:18:01.160
<v Speaker 3>a longgoing issue with the maintainer of will get UI

337
00:18:01.240 --> 00:18:06.160
<v Speaker 3>to try and improve the traffic support and UNI get UI.

338
00:18:06.920 --> 00:18:10.160
<v Speaker 3>So it's a it's a great offering and we've actually

339
00:18:10.160 --> 00:18:11.920
<v Speaker 3>I've tried to have that conversation with him to improve

340
00:18:11.920 --> 00:18:14.480
<v Speaker 3>that support. But yeah, it's been working well.

341
00:18:14.559 --> 00:18:16.880
<v Speaker 1>So I wonder when it's going to be before we

342
00:18:16.920 --> 00:18:19.079
<v Speaker 1>find package manager manager managers.

343
00:18:20.440 --> 00:18:24.359
<v Speaker 3>It's good maybe hopefully, hopefully I will be happily retired

344
00:18:24.440 --> 00:18:27.079
<v Speaker 3>before that, but before that comes about get to.

345
00:18:26.960 --> 00:18:28.880
<v Speaker 2>The third order. This is exactly this.

346
00:18:29.119 --> 00:18:32.160
<v Speaker 1>It's sort of the reflects the corporate order of things,

347
00:18:32.200 --> 00:18:34.759
<v Speaker 1>doesn't it. Yeah, it's not a good thing. I think

348
00:18:34.759 --> 00:18:37.839
<v Speaker 1>it's too much, too much. Can we all just get

349
00:18:37.880 --> 00:18:39.039
<v Speaker 1>along really nice?

350
00:18:39.400 --> 00:18:42.599
<v Speaker 2>Indeed, are you finding folks using chocolate for setting up

351
00:18:42.680 --> 00:18:44.559
<v Speaker 2>vms in the cloud these days as well?

352
00:18:44.759 --> 00:18:47.359
<v Speaker 3>Yeah, I mean that's definitely that's definitely a use case

353
00:18:47.400 --> 00:18:51.319
<v Speaker 3>that we have heard of. Yes, there's it's the same

354
00:18:51.359 --> 00:18:53.920
<v Speaker 3>with whether it's a physical machine, whether it's a VM,

355
00:18:54.039 --> 00:18:59.200
<v Speaker 3>whether it's something else. There's always any to install the

356
00:18:59.240 --> 00:19:03.359
<v Speaker 3>applications that you need. And obviously the first approach that

357
00:19:03.440 --> 00:19:06.000
<v Speaker 3>you might use is to download it from the website,

358
00:19:06.039 --> 00:19:08.720
<v Speaker 3>double click on a click, click a click through the installers.

359
00:19:09.680 --> 00:19:12.079
<v Speaker 3>But it gets to the point where that's if you're

360
00:19:12.119 --> 00:19:14.119
<v Speaker 3>doing that over and over and over again, you're you're

361
00:19:14.160 --> 00:19:17.559
<v Speaker 3>looking for a way to automate that process and trying

362
00:19:17.599 --> 00:19:21.640
<v Speaker 3>to take that try to make that entry point that

363
00:19:21.720 --> 00:19:24.000
<v Speaker 3>bit easier by a single command to get all that

364
00:19:24.039 --> 00:19:28.119
<v Speaker 3>applications installed. That's the niche that Chocolate is trying to serve. So,

365
00:19:28.400 --> 00:19:32.079
<v Speaker 3>whether it's a physical device on your locally, whether it's

366
00:19:32.119 --> 00:19:36.680
<v Speaker 3>in the cloud, that are mechanisms to install and use Chocolate.

367
00:19:37.319 --> 00:19:39.839
<v Speaker 3>And then the natural progression of that is within a

368
00:19:39.880 --> 00:19:43.160
<v Speaker 3>CICD pipeline as part of your build, you might need

369
00:19:43.240 --> 00:19:46.039
<v Speaker 3>an application installed in order to perform the build. So

370
00:19:46.079 --> 00:19:49.319
<v Speaker 3>whether it's a tool, whether it's something like get Version,

371
00:19:49.359 --> 00:19:51.440
<v Speaker 3>whether it's something like get the lease Manager, you need

372
00:19:51.480 --> 00:19:56.759
<v Speaker 3>that on the host agent in order to perform the build.

373
00:19:57.359 --> 00:19:59.880
<v Speaker 3>If you look at the build agent that comes from

374
00:20:00.279 --> 00:20:04.640
<v Speaker 3>Have Actions, Chocolate is already on the box. So if

375
00:20:04.680 --> 00:20:07.400
<v Speaker 3>you need to perform an installation of an application as

376
00:20:07.480 --> 00:20:10.000
<v Speaker 3>part of your build, you can just add a new

377
00:20:10.039 --> 00:20:13.559
<v Speaker 3>step to your workflow, which is Choco install whatever the

378
00:20:13.599 --> 00:20:14.240
<v Speaker 3>application is.

379
00:20:14.319 --> 00:20:17.079
<v Speaker 2>Yeah. Sure, so I could see this from the from

380
00:20:17.119 --> 00:20:19.359
<v Speaker 2>an ARM template point of view saying Okay, I need

381
00:20:19.400 --> 00:20:21.759
<v Speaker 2>to stand up this particular instance of a VM. I

382
00:20:21.799 --> 00:20:24.759
<v Speaker 2>want this SOS on it, and then once that's in place,

383
00:20:24.920 --> 00:20:28.000
<v Speaker 2>now I go into a get have actions they poke

384
00:20:28.119 --> 00:20:32.160
<v Speaker 2>to this, do your Choco installs start? To me, it's

385
00:20:32.160 --> 00:20:34.920
<v Speaker 2>all about repeatability, right like that, So every time I

386
00:20:35.039 --> 00:20:37.559
<v Speaker 2>call this that VM is exactly correct.

387
00:20:37.599 --> 00:20:39.440
<v Speaker 3>So whether I say whether it's an ARM template or

388
00:20:39.480 --> 00:20:43.119
<v Speaker 3>whether it's something else. Like even Cody and our team

389
00:20:43.200 --> 00:20:47.599
<v Speaker 3>just now is looking to change our Packer builds to

390
00:20:47.720 --> 00:20:51.960
<v Speaker 3>regenerate some based golden images that we use, So Chocolate

391
00:20:52.000 --> 00:20:54.519
<v Speaker 3>is involved in that workflow as well. Packer defines what

392
00:20:54.640 --> 00:20:57.559
<v Speaker 3>needs to be installed and we use chocolate to perform

393
00:20:57.599 --> 00:21:00.480
<v Speaker 3>those actions. So that's definitely another mech and that we

394
00:21:00.519 --> 00:21:01.079
<v Speaker 3>can go through.

395
00:21:01.319 --> 00:21:03.400
<v Speaker 1>If you have an exc that you want to always

396
00:21:03.440 --> 00:21:07.680
<v Speaker 1>install in your Windows machine that only has a gooey installer.

397
00:21:07.799 --> 00:21:10.000
<v Speaker 1>In other words, there is now command line switches or

398
00:21:10.000 --> 00:21:13.240
<v Speaker 1>anything like that. Is that throw a roadblock up for Chocolate?

399
00:21:14.000 --> 00:21:16.920
<v Speaker 3>So yes and no, this is one of the what

400
00:21:17.440 --> 00:21:21.839
<v Speaker 3>I mentioned before that the Windows installer landscape is vast.

401
00:21:22.079 --> 00:21:24.400
<v Speaker 3>What you've described is just one of those. So the

402
00:21:24.799 --> 00:21:28.279
<v Speaker 3>creator of that installer, that native installer, hasn't included the

403
00:21:28.279 --> 00:21:32.400
<v Speaker 3>command line switches. So there is an immediate roadblock because essentially,

404
00:21:32.440 --> 00:21:34.839
<v Speaker 3>what Chocolate is trying to do is it's trying to

405
00:21:34.880 --> 00:21:38.640
<v Speaker 3>call out to just the ex to perform the installation.

406
00:21:38.759 --> 00:21:41.680
<v Speaker 3>So if it can't toggle the command line switches, then

407
00:21:41.720 --> 00:21:45.519
<v Speaker 3>there is a problem there. So what most package maintainers

408
00:21:45.559 --> 00:21:48.920
<v Speaker 3>do in that scenario is they will introduce something like

409
00:21:49.319 --> 00:21:53.400
<v Speaker 3>AutoIt or auto hockey. So they will have created an

410
00:21:53.400 --> 00:21:56.480
<v Speaker 3>auto hockey script. So for those who don't know, hockey

411
00:21:56.640 --> 00:22:01.279
<v Speaker 3>is essentially looking for triggers the Windows ecosystem. So whether

412
00:22:01.359 --> 00:22:05.200
<v Speaker 3>it's a form opening or whether it's a button becoming visible,

413
00:22:05.279 --> 00:22:08.160
<v Speaker 3>they will have created an auto hock key script that

414
00:22:08.599 --> 00:22:11.279
<v Speaker 3>will then do the action of clicking the buttons on

415
00:22:11.279 --> 00:22:14.799
<v Speaker 3>that native installer. So what the Chocolity package then looks

416
00:22:14.839 --> 00:22:19.279
<v Speaker 3>like is the Chocolate package takes a dependency on auto hockey.

417
00:22:19.759 --> 00:22:23.240
<v Speaker 3>So when Chocolatey comes along to install the first package,

418
00:22:23.519 --> 00:22:25.920
<v Speaker 3>it needs to install the dependency, which is all Hockey.

419
00:22:26.440 --> 00:22:29.759
<v Speaker 3>The script then says, run the auto hoockkey script and

420
00:22:29.839 --> 00:22:33.079
<v Speaker 3>look for these Windows triggers, and then it performs the

421
00:22:33.119 --> 00:22:37.480
<v Speaker 3>installation of your native installer. Auto hoot key kicks in,

422
00:22:37.640 --> 00:22:41.400
<v Speaker 3>it clicks all the buttons, and then the application is

423
00:22:41.440 --> 00:22:44.720
<v Speaker 3>then installed and the package is successfully installed after that.

424
00:22:44.759 --> 00:22:47.039
<v Speaker 3>So there is a mechanism to do it. But where

425
00:22:47.039 --> 00:22:51.480
<v Speaker 3>we get complaints source concerns is oh, where did this

426
00:22:51.519 --> 00:22:54.000
<v Speaker 3>auto hoot key come from on my machine? So then

427
00:22:54.039 --> 00:22:56.000
<v Speaker 3>we kind of have to explain that, Well, the native

428
00:22:56.000 --> 00:23:01.359
<v Speaker 3>installer didn't handle a clean installation or a clean unattended installation,

429
00:23:01.839 --> 00:23:03.920
<v Speaker 3>so you need to introduce something like a hockey to

430
00:23:03.920 --> 00:23:04.880
<v Speaker 3>perform that operation.

431
00:23:05.039 --> 00:23:07.680
<v Speaker 1>It reminds me of when we used to do this

432
00:23:08.079 --> 00:23:13.960
<v Speaker 1>crazy show called Monday's and Mark Miller introduced his new

433
00:23:14.039 --> 00:23:18.039
<v Speaker 1>invention which was called the installed buddy. Okay, so basic

434
00:23:18.880 --> 00:23:21.359
<v Speaker 1>next next finished is in the days where everything was

435
00:23:21.400 --> 00:23:26.200
<v Speaker 1>a Windows installation and it would just click next, next, next, next, next, next, next,

436
00:23:26.279 --> 00:23:30.119
<v Speaker 1>finish for you installed buddy.

437
00:23:30.559 --> 00:23:32.720
<v Speaker 2>It turns out it's a real thing. It's called auto

438
00:23:32.720 --> 00:23:33.920
<v Speaker 2>hot key. That's funny.

439
00:23:33.920 --> 00:23:36.720
<v Speaker 3>It is the system is there. I mean it's it's

440
00:23:36.759 --> 00:23:40.039
<v Speaker 3>a viable solution for the underlying problem, which is the

441
00:23:40.160 --> 00:23:43.720
<v Speaker 3>native installer didn't have those plan line switches to make

442
00:23:43.759 --> 00:23:45.240
<v Speaker 3>it an unattended installation.

443
00:23:45.400 --> 00:23:47.640
<v Speaker 2>I'm sure I imagine it's a little brittle if they've

444
00:23:47.720 --> 00:23:50.839
<v Speaker 2>changed it install steps well absolutely, yeah, yeah, So.

445
00:23:50.839 --> 00:23:53.119
<v Speaker 3>What we do so as part of the so for

446
00:23:53.160 --> 00:23:55.880
<v Speaker 3>those who don't know, we have a Trotholate community repository,

447
00:23:55.920 --> 00:23:58.319
<v Speaker 3>which is where we host all of the Tropolic packages

448
00:23:58.359 --> 00:24:00.920
<v Speaker 3>that the community maintains. One of the things that we

449
00:24:01.000 --> 00:24:04.440
<v Speaker 3>do as part of that is the moderation process is

450
00:24:04.480 --> 00:24:07.279
<v Speaker 3>we will and the cloud will spin up a VM

451
00:24:07.400 --> 00:24:11.359
<v Speaker 3>to perform the installation to ensure that it actually installs correctly.

452
00:24:12.160 --> 00:24:16.480
<v Speaker 3>So if something were to change and the autohockey script

453
00:24:16.519 --> 00:24:20.079
<v Speaker 3>stopped working, then package verifier existing, which is when we

454
00:24:20.160 --> 00:24:22.039
<v Speaker 3>run through and check to make sure that things are

455
00:24:22.039 --> 00:24:26.119
<v Speaker 3>still installing correctly. It might ultimately fail and send a

456
00:24:26.160 --> 00:24:28.240
<v Speaker 3>message to the maintainer to say that there's a problem.

457
00:24:29.000 --> 00:24:30.680
<v Speaker 3>Those processes in place to help with that.

458
00:24:31.039 --> 00:24:34.240
<v Speaker 1>This might be a good application of some sort of

459
00:24:34.279 --> 00:24:38.720
<v Speaker 1>AI thing that you know, can analyze the screen image

460
00:24:38.920 --> 00:24:41.759
<v Speaker 1>of you know the installer and figure out and you

461
00:24:41.759 --> 00:24:44.160
<v Speaker 1>can just tell it just you know, take select all

462
00:24:44.200 --> 00:24:48.079
<v Speaker 1>the defaults and it would do that. I don't know,

463
00:24:48.440 --> 00:24:51.079
<v Speaker 1>just thinking out loud, it'll be fifty bucks.

464
00:24:53.839 --> 00:24:57.839
<v Speaker 2>Well, I keep thinking about like Microsoft has the form recognizer,

465
00:24:57.920 --> 00:25:00.960
<v Speaker 2>we will take pay per forms and generate them into

466
00:25:01.000 --> 00:25:03.680
<v Speaker 2>code for you. Like we're just not that far away

467
00:25:03.680 --> 00:25:06.359
<v Speaker 2>from saying, hey, just look at this dialogue and figure

468
00:25:06.400 --> 00:25:09.920
<v Speaker 2>out what should happen next. Yeah. Really, you really could

469
00:25:10.079 --> 00:25:14.759
<v Speaker 2>deeply automate that. So of course, if they the better

470
00:25:14.799 --> 00:25:19.920
<v Speaker 2>thing is just give us the command line yes please, yes, please. Yeah.

471
00:25:20.000 --> 00:25:23.599
<v Speaker 3>I mean that's the for us from a package manager perspective,

472
00:25:23.599 --> 00:25:26.680
<v Speaker 3>that's the ultimate, because then that is what is No

473
00:25:26.720 --> 00:25:29.839
<v Speaker 3>one is repeatable, and it will continue to function the

474
00:25:29.880 --> 00:25:32.720
<v Speaker 3>way that we expect it to unless that a breaking

475
00:25:32.799 --> 00:25:36.640
<v Speaker 3>change in the installer or they switch installer technology, because

476
00:25:36.640 --> 00:25:40.279
<v Speaker 3>that sometimes happens as well. An application might the underlying

477
00:25:40.279 --> 00:25:43.119
<v Speaker 3>application doesn't change, but they might switch from a YSE

478
00:25:43.160 --> 00:25:47.160
<v Speaker 3>installer to an MSI or something changes in the native installer.

479
00:25:47.279 --> 00:25:50.920
<v Speaker 3>So that's where the package maintainer and the knowledge of

480
00:25:51.880 --> 00:25:54.440
<v Speaker 3>what is possible, that's where the package maintainer's job really

481
00:25:54.519 --> 00:25:58.079
<v Speaker 3>kicks in to help with keeping those packages install on

482
00:25:58.119 --> 00:25:58.759
<v Speaker 3>correctly nice.

483
00:25:58.880 --> 00:26:04.200
<v Speaker 1>Are there any other sort of gotcha's or roadblocks besides

484
00:26:04.319 --> 00:26:10.000
<v Speaker 1>the the UI only installer that you guys deal with gracefully.

485
00:26:10.640 --> 00:26:14.680
<v Speaker 3>So the one of the one of the hiccups that

486
00:26:14.720 --> 00:26:17.200
<v Speaker 3>sometimes have happened from a package maintenance point of view,

487
00:26:17.400 --> 00:26:20.519
<v Speaker 3>and it does cause problems for the package maintainers is

488
00:26:20.559 --> 00:26:23.160
<v Speaker 3>knowing what those silent arguments are. So again it comes

489
00:26:23.200 --> 00:26:27.599
<v Speaker 3>back to what is the underlying installer technology, because there

490
00:26:27.680 --> 00:26:30.799
<v Speaker 3>is a standard set. If you like, it's if it's

491
00:26:30.839 --> 00:26:33.480
<v Speaker 3>an MSI installer, these are the command line arguments, or

492
00:26:34.839 --> 00:26:37.519
<v Speaker 3>if it's this install technology is these command line arguments

493
00:26:37.640 --> 00:26:41.880
<v Speaker 3>or MSIs are actually sometimes better because they'll actually declare

494
00:26:41.920 --> 00:26:44.880
<v Speaker 3>within their manifest file these are the available command line arguments,

495
00:26:44.880 --> 00:26:47.920
<v Speaker 3>so you can pick which one you want to pass in.

496
00:26:49.319 --> 00:26:51.759
<v Speaker 3>So when you first get started with package maint and

497
00:26:51.759 --> 00:26:54.240
<v Speaker 3>then it's like, oh, I just want to install this thing,

498
00:26:54.440 --> 00:26:56.160
<v Speaker 3>but then you kind of have to dig into that

499
00:26:56.240 --> 00:26:59.160
<v Speaker 3>thing to understand how to manage it and how to

500
00:26:59.359 --> 00:27:01.839
<v Speaker 3>install it. So one of the things that we do

501
00:27:01.920 --> 00:27:04.319
<v Speaker 3>try to do and we provide this at the minute

502
00:27:04.440 --> 00:27:06.759
<v Speaker 3>and one of some of the commercial offerings is we

503
00:27:06.839 --> 00:27:10.039
<v Speaker 3>have a packaged builder, as we call it, so it

504
00:27:10.039 --> 00:27:13.519
<v Speaker 3>will actually look at the underlying installer technology and make

505
00:27:13.559 --> 00:27:16.799
<v Speaker 3>informed decisions about these are the sensible defaults for this

506
00:27:16.920 --> 00:27:21.119
<v Speaker 3>application type. So it's one of the it's one of

507
00:27:21.119 --> 00:27:23.960
<v Speaker 3>the features that we have been pushing within the team

508
00:27:24.079 --> 00:27:28.240
<v Speaker 3>to if we can bring it down to some of

509
00:27:28.279 --> 00:27:31.480
<v Speaker 3>the lower versions of Trocolate to make that package maintenance

510
00:27:31.519 --> 00:27:34.519
<v Speaker 3>story a bit easier. Something we'd like to have for

511
00:27:34.680 --> 00:27:37.519
<v Speaker 3>now that is a commercial only offering that we provide

512
00:27:37.680 --> 00:27:41.160
<v Speaker 3>that sort of installer detection logic and helping with the

513
00:27:41.200 --> 00:27:42.400
<v Speaker 3>provisioning of look packages.

514
00:27:42.400 --> 00:27:44.039
<v Speaker 1>All right, go one more question before we take a

515
00:27:44.039 --> 00:27:46.480
<v Speaker 1>break here, and that is you know, sometimes we're installing

516
00:27:46.519 --> 00:27:50.680
<v Speaker 1>something and you need administrator approval, and so your whole

517
00:27:50.720 --> 00:27:53.759
<v Speaker 1>screen goes away and you get this dialogue box that

518
00:27:54.000 --> 00:27:56.440
<v Speaker 1>can't be automated. As far as I know, you have

519
00:27:56.519 --> 00:27:59.759
<v Speaker 1>to click the yes I approve button. Do you get

520
00:27:59.759 --> 00:28:03.359
<v Speaker 1>around on that by like just running the install scripts

521
00:28:03.359 --> 00:28:06.160
<v Speaker 1>in admin mode for example? I don't even know if

522
00:28:06.200 --> 00:28:08.079
<v Speaker 1>that is enough to get rid of that.

523
00:28:09.440 --> 00:28:11.240
<v Speaker 3>From what you've described as one of the kind of

524
00:28:11.279 --> 00:28:15.759
<v Speaker 3>the fundamental principles of how Chocolate operates. So I know

525
00:28:15.799 --> 00:28:17.880
<v Speaker 3>that richer ops. That's going to go on when I

526
00:28:17.880 --> 00:28:20.960
<v Speaker 3>start saying this, but I'm already quivering. Bear with me,

527
00:28:21.000 --> 00:28:24.440
<v Speaker 3>doing a little bit right, Bear with me. So, Chocolate

528
00:28:24.519 --> 00:28:29.160
<v Speaker 3>as a product by default does require to be installed

529
00:28:29.160 --> 00:28:32.200
<v Speaker 3>by an administrator user, and it's installed to the c

530
00:28:32.359 --> 00:28:37.039
<v Speaker 3>program data folder with those administrative permissions, and as a result,

531
00:28:37.200 --> 00:28:40.599
<v Speaker 3>Chocolate Chocolate ex when it runs, needs to be running

532
00:28:40.640 --> 00:28:44.440
<v Speaker 3>as administrator because at the end of the day, most applications,

533
00:28:44.599 --> 00:28:49.279
<v Speaker 3>the most at least a significant proportion of the applications

534
00:28:49.279 --> 00:28:53.839
<v Speaker 3>that you want to install need administrator rights because they

535
00:28:53.880 --> 00:28:56.079
<v Speaker 3>might be installing to see program files folder, they might

536
00:28:56.079 --> 00:28:58.599
<v Speaker 3>be adding registry entries, they might be lots of stuff

537
00:28:58.640 --> 00:29:03.920
<v Speaker 3>that require admin permission. So way back when the decision

538
00:29:04.000 --> 00:29:07.240
<v Speaker 3>was made that chocolate as a product would require administrator

539
00:29:07.319 --> 00:29:10.920
<v Speaker 3>rights to run, and we have continued with that. Now

540
00:29:11.039 --> 00:29:12.960
<v Speaker 3>to answer your next question that might flow on to

541
00:29:13.039 --> 00:29:15.440
<v Speaker 3>that as well, how can I get other people within

542
00:29:15.480 --> 00:29:19.640
<v Speaker 3>my organization that don't have administrator rights to perform package installations.

543
00:29:20.279 --> 00:29:22.839
<v Speaker 3>That's where some of our other products, the likes of

544
00:29:23.200 --> 00:29:25.880
<v Speaker 3>background Service kicks in. So that's a mechanism where we

545
00:29:25.920 --> 00:29:30.200
<v Speaker 3>allow for a non administrator user to essentially request the

546
00:29:30.200 --> 00:29:33.319
<v Speaker 3>installation of a package, and that package installation is performed

547
00:29:33.359 --> 00:29:36.839
<v Speaker 3>by the background service that has those administrator rights. So

548
00:29:36.880 --> 00:29:40.880
<v Speaker 3>you're getting almost like a self service scenario where you

549
00:29:40.880 --> 00:29:45.279
<v Speaker 3>can say as a company, as an organization, I want

550
00:29:45.279 --> 00:29:48.440
<v Speaker 3>to allow the installation of these packages. But then as

551
00:29:48.440 --> 00:29:50.000
<v Speaker 3>a user, I can say, well, I want that one

552
00:29:50.039 --> 00:29:52.119
<v Speaker 3>and I want that one, and I'll self provision those,

553
00:29:52.319 --> 00:29:54.160
<v Speaker 3>so you kind of get the best of both worlds.

554
00:29:54.440 --> 00:29:57.359
<v Speaker 3>But yes, it's an age old problem. And the decision

555
00:29:57.359 --> 00:30:01.000
<v Speaker 3>that we chocolately made was that we would require administrator

556
00:30:01.119 --> 00:30:03.680
<v Speaker 3>rights by default now.

557
00:30:03.640 --> 00:30:07.039
<v Speaker 1>So when you run under administrator rights, you don't get those.

558
00:30:08.319 --> 00:30:12.359
<v Speaker 3>Dialogue normal no no, no correct. So you're you're you're

559
00:30:13.200 --> 00:30:16.559
<v Speaker 3>circumventing is the wrong word, but you're certainly side stepping

560
00:30:17.000 --> 00:30:20.640
<v Speaker 3>the need for the those ucps because you're escalated.

561
00:30:22.039 --> 00:30:22.440
<v Speaker 2>Exactly.

562
00:30:22.559 --> 00:30:25.960
<v Speaker 3>Okay, good, Now that has its own problems, and that's

563
00:30:26.039 --> 00:30:28.240
<v Speaker 3>kind of why I preempted the ops hack going on,

564
00:30:28.880 --> 00:30:33.079
<v Speaker 3>because then you're got administrator right, so malicious actors could

565
00:30:33.079 --> 00:30:33.880
<v Speaker 3>take advantage of.

566
00:30:33.799 --> 00:30:34.440
<v Speaker 1>That, exactly.

567
00:30:34.480 --> 00:30:36.319
<v Speaker 3>So that's there's all sorts of that we get into

568
00:30:36.720 --> 00:30:39.599
<v Speaker 3>within the team, within the organization, we get we have

569
00:30:39.759 --> 00:30:42.559
<v Speaker 3>lots of conversations along those lines as to whether this

570
00:30:42.799 --> 00:30:46.880
<v Speaker 3>is security vulnerabilities, et cetera. So all sorts of conversations

571
00:30:47.039 --> 00:30:47.799
<v Speaker 3>have along that.

572
00:30:47.960 --> 00:30:50.599
<v Speaker 1>Well, we're gonna we're going to have that conversation after

573
00:30:50.640 --> 00:30:53.559
<v Speaker 1>the break carry so we'll be right back after these

574
00:30:53.680 --> 00:30:58.279
<v Speaker 1>very important messages stick around. Do you have a complex

575
00:30:58.319 --> 00:31:00.839
<v Speaker 1>dot net monolith you'd like to refactor to a micro

576
00:31:00.960 --> 00:31:05.359
<v Speaker 1>services architecture? The micro Service Extractor for dot Net tool

577
00:31:05.519 --> 00:31:10.200
<v Speaker 1>visualizes your app and helps progressively extract code into micro services.

578
00:31:10.559 --> 00:31:17.200
<v Speaker 1>Learn more at aws dot Amazon dot com, slash Modernize.

579
00:31:18.880 --> 00:31:21.039
<v Speaker 2>And we're back. It's dot net Rocks. Amerger Campbell, Thatt's

580
00:31:21.039 --> 00:31:24.319
<v Speaker 2>Carl Franklin. You talking to our friend Gary and Park

581
00:31:24.720 --> 00:31:27.920
<v Speaker 2>a bit about the latest on the chocolatey side of things,

582
00:31:28.000 --> 00:31:30.960
<v Speaker 2>you know, I mean, you know, I'm the run ass

583
00:31:31.000 --> 00:31:34.720
<v Speaker 2>guy as well, and we certainly talk about install hacks

584
00:31:34.799 --> 00:31:36.920
<v Speaker 2>like there is.

585
00:31:36.960 --> 00:31:38.759
<v Speaker 1>Like run as yeah there.

586
00:31:38.920 --> 00:31:43.079
<v Speaker 2>Well, there are exploiters that are smart enough now that

587
00:31:43.200 --> 00:31:45.799
<v Speaker 2>they managed to get into a machine, recognize it, don't

588
00:31:46.240 --> 00:31:50.920
<v Speaker 2>leave it a process running that's waiting for escalated privileges

589
00:31:51.000 --> 00:31:54.640
<v Speaker 2>to intercept. But there's only so much you can do.

590
00:31:55.079 --> 00:31:57.720
<v Speaker 2>I mean, the reality here is we don't want users

591
00:31:57.759 --> 00:31:59.799
<v Speaker 2>to be able to install software. So you need to

592
00:31:59.799 --> 00:32:02.559
<v Speaker 2>ask privileges to install software. And where you're talking in

593
00:32:02.559 --> 00:32:06.720
<v Speaker 2>an enterprise environment. And as much as we talk about

594
00:32:06.759 --> 00:32:10.559
<v Speaker 2>granulating privileges for all of that, I know no one

595
00:32:10.720 --> 00:32:14.160
<v Speaker 2>I've ever spoken to that's done a large scale package deployment,

596
00:32:14.200 --> 00:32:17.720
<v Speaker 2>so multiple apps and so forth, installing where the privileges

597
00:32:17.720 --> 00:32:21.559
<v Speaker 2>are actually varying from install to install. They just go

598
00:32:21.680 --> 00:32:26.319
<v Speaker 2>super user push everything in, go out like it's just

599
00:32:26.440 --> 00:32:27.799
<v Speaker 2>not practical.

600
00:32:27.960 --> 00:32:30.759
<v Speaker 1>And yeah, I think also the security risk come more

601
00:32:30.799 --> 00:32:33.039
<v Speaker 1>from people than they do from the software. I mean,

602
00:32:33.079 --> 00:32:35.240
<v Speaker 1>if you've got a good software bill materials and you

603
00:32:35.400 --> 00:32:38.799
<v Speaker 1>trust the software that you're installing goes without saying, then

604
00:32:38.839 --> 00:32:41.319
<v Speaker 1>the person the admin who writes the script is probably

605
00:32:41.400 --> 00:32:43.039
<v Speaker 1>going to be the one that runs it. So it's

606
00:32:43.039 --> 00:32:46.440
<v Speaker 1>not like somebody's gonna somebody like Patrick Kins to say,

607
00:32:46.720 --> 00:32:49.319
<v Speaker 1>if somebody just offered you a piece of food on

608
00:32:49.359 --> 00:32:51.680
<v Speaker 1>the street, here eat this, You're not going to eat it,

609
00:32:51.839 --> 00:32:55.000
<v Speaker 1>you know. Yeah, So if somebody says, here, run this script,

610
00:32:55.759 --> 00:32:58.720
<v Speaker 1>you'd be a little you should be a little apprehensive

611
00:32:58.720 --> 00:33:00.359
<v Speaker 1>about it until you check it out well.

612
00:33:00.359 --> 00:33:02.240
<v Speaker 2>And more importantly, that's why we don't give you the

613
00:33:02.279 --> 00:33:04.319
<v Speaker 2>privileges so that you'll have to ask us about it.

614
00:33:04.359 --> 00:33:06.039
<v Speaker 2>We'll say, where did you get that from?

615
00:33:06.079 --> 00:33:06.640
<v Speaker 1>Exactly?

616
00:33:06.839 --> 00:33:09.680
<v Speaker 3>So exactly purely from a chocolatey point of view and

617
00:33:09.720 --> 00:33:13.000
<v Speaker 3>a chocolate ecosystem point of view, the default place to

618
00:33:13.039 --> 00:33:15.319
<v Speaker 3>get those packages that Carl's talking about there is the

619
00:33:15.400 --> 00:33:19.680
<v Speaker 3>chocolate community repository. So the problem that we have there

620
00:33:19.839 --> 00:33:23.319
<v Speaker 3>is that anyone can push to the chocolate community apositry,

621
00:33:23.400 --> 00:33:25.759
<v Speaker 3>so there is the potential for there being bad actors

622
00:33:25.759 --> 00:33:27.559
<v Speaker 3>in that space. Now we do what we can in

623
00:33:27.680 --> 00:33:32.559
<v Speaker 3>terms of moderating those packages and shooting a good package quality,

624
00:33:32.799 --> 00:33:36.039
<v Speaker 3>but ultimately there's no guarantee and we don't provide any

625
00:33:36.039 --> 00:33:39.759
<v Speaker 3>guarantee that there won't be something nefarious on that website.

626
00:33:39.839 --> 00:33:42.680
<v Speaker 3>But that's why we recommend due diligence in terms of

627
00:33:42.759 --> 00:33:45.119
<v Speaker 3>again that what you said, you wouldn't run any scripts

628
00:33:45.119 --> 00:33:47.759
<v Speaker 3>from the internet, you wouldn't install any package from the

629
00:33:47.759 --> 00:33:49.920
<v Speaker 3>internet either. There are a due diligence aspect to that.

630
00:33:50.359 --> 00:33:52.599
<v Speaker 1>Well, so it depends on the package, right, I mean,

631
00:33:52.640 --> 00:33:56.039
<v Speaker 1>if it's version one point oh oh oh of some

632
00:33:56.160 --> 00:33:59.559
<v Speaker 1>new thing and nobody's installed it before, I wouldn't install it.

633
00:33:59.680 --> 00:34:01.680
<v Speaker 1>You know, you want to wait for there's definitely.

634
00:34:01.759 --> 00:34:01.880
<v Speaker 2>Two.

635
00:34:02.119 --> 00:34:04.039
<v Speaker 3>Yeah, no, absolutely absolutely.

636
00:34:03.559 --> 00:34:05.839
<v Speaker 1>Package is mature and it's been vetted by the community.

637
00:34:06.160 --> 00:34:09.119
<v Speaker 3>That's true too, yeah, absolutely. But where we're going to

638
00:34:09.199 --> 00:34:11.599
<v Speaker 3>go with that is that, in an organizational point of view,

639
00:34:11.960 --> 00:34:14.519
<v Speaker 3>we don't recommend the usage of the Chocolate community of

640
00:34:14.559 --> 00:34:17.360
<v Speaker 3>positry because it's not something that you as a company

641
00:34:17.719 --> 00:34:19.960
<v Speaker 3>would want to make use of. So what we recommend

642
00:34:20.039 --> 00:34:23.639
<v Speaker 3>instead is you take the packages that you vetted and

643
00:34:23.679 --> 00:34:26.159
<v Speaker 3>you put them into your own internal repository, and that's

644
00:34:26.199 --> 00:34:28.000
<v Speaker 3>where you get to your what you describe their car,

645
00:34:28.079 --> 00:34:30.840
<v Speaker 3>which was someone's done all the vetting, someone's done all

646
00:34:30.880 --> 00:34:33.360
<v Speaker 3>the package installations to make sure that they're valid, and

647
00:34:33.400 --> 00:34:36.280
<v Speaker 3>then you offer them up to the internal organization to say,

648
00:34:36.519 --> 00:34:38.840
<v Speaker 3>have your pick of these ones. But they don't get

649
00:34:38.920 --> 00:34:40.760
<v Speaker 3>to use the community depository.

650
00:34:40.800 --> 00:34:43.360
<v Speaker 2>And this is the commercial version of Chocolate, right, that's

651
00:34:43.400 --> 00:34:47.480
<v Speaker 2>the central management tool and install our controls and all

652
00:34:47.519 --> 00:34:50.760
<v Speaker 2>those sorts of things. So for me as an oh, really,

653
00:34:51.280 --> 00:34:53.000
<v Speaker 2>that's exactly.

654
00:34:53.519 --> 00:34:56.760
<v Speaker 3>Well, there was a slight clarification there. So the repository

655
00:34:56.800 --> 00:34:58.719
<v Speaker 3>itself so which is not to be confused with a

656
00:34:58.760 --> 00:35:02.320
<v Speaker 3>GitHub repository and one FNTO, here is a repository of

657
00:35:02.400 --> 00:35:05.639
<v Speaker 3>packages that's not something that we chocolately offer. So we

658
00:35:05.679 --> 00:35:09.320
<v Speaker 3>would look to something like a progate or an Nexus

659
00:35:09.360 --> 00:35:11.800
<v Speaker 3>or an arch factory to provide the actual.

660
00:35:11.840 --> 00:35:12.639
<v Speaker 2>The actual package.

661
00:35:13.440 --> 00:35:16.400
<v Speaker 3>Okay, so those are stored there, and what you're refering

662
00:35:16.440 --> 00:35:18.599
<v Speaker 3>to there is the Chocolate Central management. It would build

663
00:35:18.639 --> 00:35:21.960
<v Speaker 3>on top of that to allow the deployment of packages

664
00:35:22.000 --> 00:35:25.599
<v Speaker 3>to across your suite of computers. But we we at

665
00:35:25.599 --> 00:35:29.480
<v Speaker 3>a minute, don't offer a repository solution for packages.

666
00:35:29.639 --> 00:35:33.000
<v Speaker 2>That's not something. And you also get to the other aspect,

667
00:35:33.039 --> 00:35:36.880
<v Speaker 2>which is rarely as an administrator of infrastructure, and do

668
00:35:36.920 --> 00:35:39.840
<v Speaker 2>I actually want the latest version of anything? Right? We

669
00:35:39.960 --> 00:35:43.719
<v Speaker 2>have an accepted set of versions of Adobe Reader, and

670
00:35:43.840 --> 00:35:45.280
<v Speaker 2>those are the ones we're going to install. I don't

671
00:35:45.280 --> 00:35:46.920
<v Speaker 2>care if there's new one coming out until it's gone

672
00:35:46.960 --> 00:35:49.000
<v Speaker 2>through the process. It's not in the package.

673
00:35:49.079 --> 00:35:52.639
<v Speaker 1>I think the problem is you've chosen Adobe Reader. Yeah,

674
00:35:52.679 --> 00:35:54.440
<v Speaker 1>well fair, real problem.

675
00:35:54.679 --> 00:35:57.880
<v Speaker 2>Yeah, but you know the the when when you get

676
00:35:57.880 --> 00:36:02.400
<v Speaker 2>to hundreds of thousands of seeds, you're trying to manage

677
00:36:02.480 --> 00:36:05.880
<v Speaker 2>the total landscape of different versions of things. Yeah, sure,

678
00:36:05.920 --> 00:36:07.639
<v Speaker 2>and so you get a little more strict and this

679
00:36:07.719 --> 00:36:09.480
<v Speaker 2>is the stuff you pay for and why you get

680
00:36:09.480 --> 00:36:12.199
<v Speaker 2>paid to do your job. So privileges are one thing,

681
00:36:12.239 --> 00:36:15.480
<v Speaker 2>but known versions of another. Because this whole conversation about

682
00:36:15.480 --> 00:36:18.920
<v Speaker 2>supply chain attack like this is only getting worse.

683
00:36:19.079 --> 00:36:19.719
<v Speaker 1>It's serious.

684
00:36:20.039 --> 00:36:23.199
<v Speaker 2>Yeah, and they're definitely besieging open source.

685
00:36:23.960 --> 00:36:25.760
<v Speaker 3>So on that note that the flip side of that

686
00:36:25.880 --> 00:36:28.039
<v Speaker 3>is that there are thads out there that do want

687
00:36:28.079 --> 00:36:31.440
<v Speaker 3>the latest and greatest. And what happened the other month

688
00:36:31.519 --> 00:36:34.800
<v Speaker 3>was last month when dot Net shipped one of our

689
00:36:34.960 --> 00:36:38.000
<v Speaker 3>one of our core community maintainers, Jacob, he went about

690
00:36:38.079 --> 00:36:41.639
<v Speaker 3>and set about set created packages for all the new

691
00:36:41.679 --> 00:36:44.679
<v Speaker 3>dot Net packages. So whether that's the desktop version, the

692
00:36:44.760 --> 00:36:48.519
<v Speaker 3>runtime version, the SDK, he flooded us. He literally flooded

693
00:36:48.599 --> 00:36:51.880
<v Speaker 3>us with the dot Net related packages on the community pository.

694
00:36:51.960 --> 00:36:54.920
<v Speaker 3>So it's great because we then have all the dot

695
00:36:54.920 --> 00:36:57.639
<v Speaker 3>Net ten packages that people can then install. But that's

696
00:36:57.719 --> 00:37:00.119
<v Speaker 3>him literally being on the bleeding edge. It was it

697
00:37:00.159 --> 00:37:02.639
<v Speaker 3>was announced and he had packages ready to go and

698
00:37:02.960 --> 00:37:04.880
<v Speaker 3>ship to the community positors.

699
00:37:04.480 --> 00:37:07.880
<v Speaker 1>And he said, I'm done then, you know.

700
00:37:08.880 --> 00:37:12.840
<v Speaker 3>So the great thing about the open source is that

701
00:37:13.000 --> 00:37:15.480
<v Speaker 3>the option there and then is that someone could pick

702
00:37:15.519 --> 00:37:18.320
<v Speaker 3>those packages up. So all the work that Jacob does,

703
00:37:18.840 --> 00:37:21.639
<v Speaker 3>it's all on a gihub repository, all of his packaging scripts,

704
00:37:21.719 --> 00:37:23.960
<v Speaker 3>all of his automation to create those packages and keep

705
00:37:23.960 --> 00:37:26.480
<v Speaker 3>those packages up today, that's all on GitHub. So if

706
00:37:26.599 --> 00:37:29.000
<v Speaker 3>Jacob were to step away, and we've had people step

707
00:37:29.039 --> 00:37:33.199
<v Speaker 3>away from the community, that's absolutely something that happens. But

708
00:37:33.280 --> 00:37:35.719
<v Speaker 3>what we find is that there's always people that come

709
00:37:35.760 --> 00:37:38.519
<v Speaker 3>along and I say I'm interested in maintaining that package

710
00:37:38.679 --> 00:37:43.519
<v Speaker 3>and ultimately gets picked up. So Jacob would be sorely missed,

711
00:37:43.599 --> 00:37:45.280
<v Speaker 3>let's put it that way, if he were to step

712
00:37:45.320 --> 00:37:49.000
<v Speaker 3>away from the community. But for the he's been involved

713
00:37:49.039 --> 00:37:52.960
<v Speaker 3>in the all of the dominant packages since I can't

714
00:37:53.000 --> 00:37:55.519
<v Speaker 3>even remember when he started, and he's probably been around

715
00:37:55.559 --> 00:37:57.519
<v Speaker 3>as long as I have to be honest because his

716
00:37:57.599 --> 00:37:58.559
<v Speaker 3>name is so familiar.

717
00:37:58.639 --> 00:37:59.920
<v Speaker 1>So go Jacob.

718
00:38:00.519 --> 00:38:03.880
<v Speaker 3>Absolutely, absolutely, I'm not going to try and pronounce the

719
00:38:03.880 --> 00:38:06.599
<v Speaker 3>second name because it's not one that's in my remit,

720
00:38:06.639 --> 00:38:09.960
<v Speaker 3>I don't think. But he goes by Jacob, so that's well,

721
00:38:10.079 --> 00:38:10.639
<v Speaker 3>I'll stick with.

722
00:38:11.880 --> 00:38:14.880
<v Speaker 1>Somebody should send him a pizza.

723
00:38:15.679 --> 00:38:18.159
<v Speaker 2>What are your thoughts on the whole supply chain attack

724
00:38:18.360 --> 00:38:21.039
<v Speaker 2>landscape these days? Like do you do you give advice

725
00:38:21.159 --> 00:38:24.639
<v Speaker 2>to to developers that are using these tools on? Like

726
00:38:24.679 --> 00:38:26.559
<v Speaker 2>what do I got to think about to make sure

727
00:38:26.599 --> 00:38:29.039
<v Speaker 2>I'm not a part of a supply chain attack.

728
00:38:29.159 --> 00:38:32.159
<v Speaker 3>I mean, it's definitely, it is definitely an issue. Is

729
00:38:32.199 --> 00:38:36.159
<v Speaker 3>prevalent with an hour, with an hour and ecosystem. It's

730
00:38:36.199 --> 00:38:40.119
<v Speaker 3>something we need to be conscious of. And if you

731
00:38:40.159 --> 00:38:43.639
<v Speaker 3>are using package management solutions like Chocolate or whether it's

732
00:38:43.679 --> 00:38:47.559
<v Speaker 3>something else, just installing the latest and greatest is probably

733
00:38:47.599 --> 00:38:50.800
<v Speaker 3>not the best advice. It would be maybe I'd carl

734
00:38:50.840 --> 00:38:53.159
<v Speaker 3>kind of hinto that with the first version of that application,

735
00:38:53.559 --> 00:38:57.400
<v Speaker 3>Maybe wait that thirty days or something to see whether

736
00:38:57.440 --> 00:38:59.079
<v Speaker 3>there's bugs, see whether there's anything with this.

737
00:38:59.280 --> 00:39:02.320
<v Speaker 2>Is the ITAM mentality. Change is good. You go first,

738
00:39:02.360 --> 00:39:04.239
<v Speaker 2>you go exactly exactly.

739
00:39:04.719 --> 00:39:08.239
<v Speaker 3>A great way of putting it. So it just just

740
00:39:08.280 --> 00:39:11.320
<v Speaker 3>to be sensible, to be honest. I mean, there's what

741
00:39:11.360 --> 00:39:15.119
<v Speaker 3>we offer on the community pository is any package that's

742
00:39:15.159 --> 00:39:18.400
<v Speaker 3>pushed to the CCR of the Trocolate Community postry, we

743
00:39:18.519 --> 00:39:22.119
<v Speaker 3>send all the related files and packages over divirus total

744
00:39:22.159 --> 00:39:24.239
<v Speaker 3>to let them scan it as well, and we report

745
00:39:24.280 --> 00:39:27.599
<v Speaker 3>that information on virus Total. So if there were something

746
00:39:27.639 --> 00:39:30.480
<v Speaker 3>that comes through, then that information is available on the

747
00:39:30.480 --> 00:39:32.519
<v Speaker 3>package page, so you'll be able to see that there's

748
00:39:32.519 --> 00:39:35.280
<v Speaker 3>a there's maybe a higher rate of virus detections for

749
00:39:35.360 --> 00:39:37.800
<v Speaker 3>this package version, and it might give you pause to

750
00:39:37.840 --> 00:39:40.480
<v Speaker 3>think about what that's maybe not a good idea, or

751
00:39:40.519 --> 00:39:43.119
<v Speaker 3>it gives you more pause to take it onto some

752
00:39:43.159 --> 00:39:47.519
<v Speaker 3>sort of DMZ within your organization, install it there without

753
00:39:47.840 --> 00:39:52.199
<v Speaker 3>letting it, letting it across your organization. There's mechanisms that

754
00:39:52.239 --> 00:39:57.159
<v Speaker 3>you can use to prevent those potential supply chain attacks.

755
00:39:57.199 --> 00:39:59.239
<v Speaker 3>But at the end of the day, I mean, it's

756
00:39:59.280 --> 00:40:01.800
<v Speaker 3>it is. It's something that we all have to be

757
00:40:01.800 --> 00:40:05.440
<v Speaker 3>conscious of because there's there are malicious actors out there

758
00:40:05.440 --> 00:40:10.119
<v Speaker 3>that we need to be careful of. It's unfortunately as

759
00:40:10.559 --> 00:40:13.000
<v Speaker 3>part of the world that we've lived in today.

760
00:40:12.800 --> 00:40:16.239
<v Speaker 2>Well and these recently just the past couple of years,

761
00:40:16.239 --> 00:40:21.280
<v Speaker 2>we've found now long term maintainers that may have been

762
00:40:21.400 --> 00:40:25.480
<v Speaker 2>plants the whole time thence quiet, you know, getting that

763
00:40:25.519 --> 00:40:28.199
<v Speaker 2>maintainer of privilege that they could approve their own prs

764
00:40:29.000 --> 00:40:34.039
<v Speaker 2>and adding really like crazy sneaky things like the xz

765
00:40:34.239 --> 00:40:38.639
<v Speaker 2>util ones comes to mind, where literally, you know, this

766
00:40:38.679 --> 00:40:42.960
<v Speaker 2>is a utility for data compression that and numerous numerous people,

767
00:40:43.119 --> 00:40:47.599
<v Speaker 2>millions of people use, and this longtime maintainer slipped in

768
00:40:47.639 --> 00:40:50.199
<v Speaker 2>this bit of code that was sending telemetry of everything

769
00:40:50.280 --> 00:40:54.719
<v Speaker 2>being compressed to China. And the only reason it was

770
00:40:54.760 --> 00:40:58.400
<v Speaker 2>detected is that there was a Microsoft guy was his

771
00:40:58.480 --> 00:41:03.039
<v Speaker 2>name Andres who was doing performance testing version of version

772
00:41:03.199 --> 00:41:09.280
<v Speaker 2>and the new version was five hundred milliseconds slower, and

773
00:41:09.320 --> 00:41:11.480
<v Speaker 2>so he dug in like what made this slower? And

774
00:41:11.519 --> 00:41:15.119
<v Speaker 2>I covered this whole thing like it's quite a story.

775
00:41:15.440 --> 00:41:19.199
<v Speaker 2>Thank goodness, people like this exists. But it also speaks

776
00:41:19.199 --> 00:41:23.159
<v Speaker 2>to part of our instrumentation on updated versions. It really

777
00:41:23.239 --> 00:41:25.920
<v Speaker 2>is looking at the subtle changes.

778
00:41:26.159 --> 00:41:28.400
<v Speaker 1>I kind of think automation is a good place for

779
00:41:28.480 --> 00:41:31.280
<v Speaker 1>these kinds of things to look like. GitHub has depend

780
00:41:31.280 --> 00:41:33.079
<v Speaker 1>abot right, and I don't know how much of it

781
00:41:33.119 --> 00:41:36.480
<v Speaker 1>is automated, but it seems like it is. And you know,

782
00:41:36.559 --> 00:41:39.960
<v Speaker 1>to do automated testing of things like this, Richard that

783
00:41:40.119 --> 00:41:43.599
<v Speaker 1>you know that this guy had a human had to

784
00:41:43.639 --> 00:41:47.079
<v Speaker 1>find that based on some timing. But some of these

785
00:41:47.119 --> 00:41:50.559
<v Speaker 1>things could be automated. I think maybe in the future

786
00:41:50.559 --> 00:41:51.519
<v Speaker 1>they will be more.

787
00:41:51.360 --> 00:41:54.280
<v Speaker 2>Yeah, and I wonder this is what's againing well. Llm's

788
00:41:54.360 --> 00:41:57.159
<v Speaker 2>working for us right, not being part of the problem

789
00:41:57.239 --> 00:42:00.599
<v Speaker 2>where they to be able to assess the risk of

790
00:42:00.679 --> 00:42:04.840
<v Speaker 2>data changes and maybe raise a red flag because ultimately

791
00:42:06.119 --> 00:42:09.840
<v Speaker 2>that a self approved PR bad like giant red flag

792
00:42:09.960 --> 00:42:12.400
<v Speaker 2>right away. But okay, so you have two people involved,

793
00:42:12.920 --> 00:42:16.360
<v Speaker 2>but just having very detailed assessments of what's early in

794
00:42:16.400 --> 00:42:19.079
<v Speaker 2>that PR and what and what its potential risk is.

795
00:42:19.119 --> 00:42:22.440
<v Speaker 2>Like I wonder if we aren't already maturing and I

796
00:42:22.480 --> 00:42:24.920
<v Speaker 2>don't have evidence, but I'll look for it. That we

797
00:42:24.960 --> 00:42:27.719
<v Speaker 2>are starting to build lms. Who's specially who are going

798
00:42:27.800 --> 00:42:29.800
<v Speaker 2>to be And I shouldn't say who because it's software

799
00:42:30.440 --> 00:42:36.679
<v Speaker 2>that analyzed security risk on co changes constantly.

800
00:42:36.760 --> 00:42:38.679
<v Speaker 1>Well you mean you already have you know, things like

801
00:42:38.719 --> 00:42:39.679
<v Speaker 1>gethub copilot.

802
00:42:39.800 --> 00:42:43.079
<v Speaker 2>Yeah, well it depends on what we'll catch like keys

803
00:42:43.159 --> 00:42:43.719
<v Speaker 2>in code.

804
00:42:43.920 --> 00:42:47.760
<v Speaker 1>Yeah yes, but it isn't going to test right. But

805
00:42:47.800 --> 00:42:50.079
<v Speaker 1>you know the thing about gethub copilot is you tell

806
00:42:50.119 --> 00:42:51.840
<v Speaker 1>it to do something, it just goes off and does it.

807
00:42:52.599 --> 00:42:55.559
<v Speaker 1>Or the get ub Copilot code Assistant I think it's called,

808
00:42:57.239 --> 00:43:00.280
<v Speaker 1>so you know, there could be back background process he's

809
00:43:00.559 --> 00:43:03.679
<v Speaker 1>running and get hub per se I mean not just there,

810
00:43:03.719 --> 00:43:08.280
<v Speaker 1>but anywhere where something new is checked in. I mean

811
00:43:08.320 --> 00:43:11.280
<v Speaker 1>it's just another pipeline really if you think about it.

812
00:43:10.920 --> 00:43:13.199
<v Speaker 2>Something that you know the same way that used to

813
00:43:13.239 --> 00:43:15.880
<v Speaker 2>be so fixated on performance at SLA testing for a

814
00:43:15.920 --> 00:43:18.519
<v Speaker 2>lot of software where it's like, is this still going

815
00:43:18.559 --> 00:43:20.719
<v Speaker 2>to comply with the SLA or the performance levels that

816
00:43:20.719 --> 00:43:23.639
<v Speaker 2>we agreed to, you know now, and I'm thinking back

817
00:43:23.639 --> 00:43:25.360
<v Speaker 2>of the day where we were talking about just needing

818
00:43:25.400 --> 00:43:28.840
<v Speaker 2>provision new hardware because we were running our own rigs. Right,

819
00:43:28.920 --> 00:43:30.920
<v Speaker 2>it's like, hey, we added. The classic one was when

820
00:43:30.920 --> 00:43:33.000
<v Speaker 2>we added the recommendation engine and brought the whole place

821
00:43:33.000 --> 00:43:35.920
<v Speaker 2>of it's knees because it was so much more computationally

822
00:43:35.960 --> 00:43:39.639
<v Speaker 2>intensive and so we fortunately we ab switched it, figured

823
00:43:39.679 --> 00:43:41.360
<v Speaker 2>out how much more it was, and then like did

824
00:43:41.400 --> 00:43:43.079
<v Speaker 2>the math and said, we have to buy this many

825
00:43:43.079 --> 00:43:45.519
<v Speaker 2>more computers if we're going to be able to run

826
00:43:45.559 --> 00:43:49.400
<v Speaker 2>this thing. You know, So those kinds of benchmarking, the

827
00:43:49.440 --> 00:43:51.239
<v Speaker 2>fact that we're going to benchmark it to see was

828
00:43:51.320 --> 00:43:54.719
<v Speaker 2>malicious code added, Like wow, this is the world we're

829
00:43:54.760 --> 00:43:57.679
<v Speaker 2>living in now. It's really you know, package management ain't

830
00:43:57.719 --> 00:44:02.400
<v Speaker 2>what it used to be. You've been doing this longer

831
00:44:02.400 --> 00:44:05.559
<v Speaker 2>than anybody, Gary, Like, obviously the demands only get bigger.

832
00:44:06.159 --> 00:44:07.679
<v Speaker 2>I mean, is it getting better?

833
00:44:08.400 --> 00:44:11.800
<v Speaker 3>I mean it's definitely as we continue to see more

834
00:44:11.800 --> 00:44:13.920
<v Speaker 3>people using it and we continue to see more packages

835
00:44:13.960 --> 00:44:16.400
<v Speaker 3>being pushed to the repostentry that we maintained. So it

836
00:44:16.519 --> 00:44:20.599
<v Speaker 3>is always, it's always that all of the graphs that

837
00:44:20.639 --> 00:44:24.239
<v Speaker 3>we have and that we maintain, more people are wanting

838
00:44:24.280 --> 00:44:27.000
<v Speaker 3>it and more people are using it. Right, But I mean,

839
00:44:27.039 --> 00:44:29.480
<v Speaker 3>I go back to where I started. I set up

840
00:44:29.480 --> 00:44:31.559
<v Speaker 3>and in this game quite a long time now, But

841
00:44:31.920 --> 00:44:34.880
<v Speaker 3>when I started, it was just literally I want a

842
00:44:34.960 --> 00:44:37.599
<v Speaker 3>quick way of installing this thing, but it's now morphed

843
00:44:37.639 --> 00:44:40.199
<v Speaker 3>into I want to bring up a whole suite of

844
00:44:40.239 --> 00:44:42.639
<v Speaker 3>computers that all have different applications on them, or a

845
00:44:42.639 --> 00:44:45.559
<v Speaker 3>whole different different applications on them to test these different

846
00:44:45.559 --> 00:44:49.159
<v Speaker 3>scenarios as part of my CICD pipeline. So whereas before

847
00:44:49.239 --> 00:44:52.880
<v Speaker 3>we would have been constrained to here's one build agent

848
00:44:53.039 --> 00:44:56.639
<v Speaker 3>that's got all the stuff on it that is maintained

849
00:44:56.880 --> 00:45:01.239
<v Speaker 3>in secrecy by the whole ops team, now transferred all

850
00:45:01.239 --> 00:45:05.400
<v Speaker 3>of that over to vms running in the cloud that

851
00:45:05.440 --> 00:45:07.760
<v Speaker 3>you can spin up on a whim, but you still

852
00:45:07.800 --> 00:45:10.119
<v Speaker 3>need to do the application management over it. And that's

853
00:45:10.119 --> 00:45:12.920
<v Speaker 3>where something like chocolate comes in. So it's it's a

854
00:45:12.960 --> 00:45:17.039
<v Speaker 3>never changing landscape, but it's one that continues to need

855
00:45:17.119 --> 00:45:20.159
<v Speaker 3>solutions like chocolate. So it's it's a very interesting space

856
00:45:20.199 --> 00:45:20.880
<v Speaker 3>to be involved in.

857
00:45:21.039 --> 00:45:22.880
<v Speaker 1>Yeah, I bet never a dull moment.

858
00:45:23.239 --> 00:45:24.519
<v Speaker 3>I bet never a dull moment.

859
00:45:24.639 --> 00:45:27.880
<v Speaker 2>Yes, But you said pack. I think about how much

860
00:45:27.920 --> 00:45:32.119
<v Speaker 2>more complicated CICD pipelines are these days, and this package

861
00:45:32.159 --> 00:45:35.960
<v Speaker 2>management pipeline, including the feed in of new versions is

862
00:45:35.960 --> 00:45:38.920
<v Speaker 2>going to be at least as complicated now. Absolutely, it's

863
00:45:39.000 --> 00:45:41.199
<v Speaker 2>all part of the equation and it's.

864
00:45:41.119 --> 00:45:44.679
<v Speaker 3>It's it's the landscape is ever increasing as you start

865
00:45:44.719 --> 00:45:47.159
<v Speaker 3>talking in the likes of ARM. ARM is now a

866
00:45:47.199 --> 00:45:49.519
<v Speaker 3>thing that people want to build on, and file for

867
00:45:49.800 --> 00:45:53.079
<v Speaker 3>and package for. So that's one of the conversations that

868
00:45:53.079 --> 00:45:55.599
<v Speaker 3>we're having internally is well, what is how does chocolate

869
00:45:55.679 --> 00:45:58.679
<v Speaker 3>fit into that ARM landscape and what do we need

870
00:45:58.719 --> 00:46:02.400
<v Speaker 3>to do to perform it because chocolate chocolate ex Today

871
00:46:02.760 --> 00:46:05.639
<v Speaker 3>runs under the emulation layer with on ARM, Right, but

872
00:46:06.239 --> 00:46:08.280
<v Speaker 3>do we want or do we need? Do you want

873
00:46:08.320 --> 00:46:12.000
<v Speaker 3>a native version of chocolate ex The answer to that

874
00:46:12.079 --> 00:46:15.880
<v Speaker 3>is probably yes, but then eventually eventually that but then

875
00:46:15.920 --> 00:46:18.960
<v Speaker 3>that causes our bills then need to change because we

876
00:46:19.039 --> 00:46:22.239
<v Speaker 3>need to introduce having the ARM hardware to then build on,

877
00:46:22.360 --> 00:46:26.400
<v Speaker 3>compile on, test on, package on. So it increases our

878
00:46:26.480 --> 00:46:28.599
<v Speaker 3>landscape of what we need to do in order to

879
00:46:28.599 --> 00:46:31.400
<v Speaker 3>provide that increase landscape for the customer.

880
00:46:31.440 --> 00:46:34.960
<v Speaker 2>It's my experience with the Snapdragons, the Snapdragon ultras is

881
00:46:35.000 --> 00:46:38.400
<v Speaker 2>the emulator is very fast, and you'd be very happy

882
00:46:38.440 --> 00:46:40.480
<v Speaker 2>with that until you just see you see how much

883
00:46:40.480 --> 00:46:44.239
<v Speaker 2>faster it is running native correct, and the emulated version

884
00:46:44.280 --> 00:46:46.320
<v Speaker 2>was not bad until you saw the native version went wow,

885
00:46:46.360 --> 00:46:48.000
<v Speaker 2>I want that more of that.

886
00:46:48.159 --> 00:46:50.840
<v Speaker 3>It's just and also some of the some of the

887
00:46:50.840 --> 00:46:53.800
<v Speaker 3>APIs they get lied to because of the emulation layer.

888
00:46:53.880 --> 00:46:56.159
<v Speaker 3>So where we would say what are you running on,

889
00:46:56.360 --> 00:46:58.480
<v Speaker 3>it will go well, I'm running on this, when actually

890
00:46:58.519 --> 00:47:02.559
<v Speaker 3>it's running on this completely separate things. So there's different

891
00:47:02.559 --> 00:47:04.679
<v Speaker 3>APIs that we need to call into for certain things

892
00:47:04.679 --> 00:47:07.559
<v Speaker 3>to get some of that information out. So the landscape

893
00:47:07.639 --> 00:47:10.199
<v Speaker 3>changes ever so slightly. But you if you're using the

894
00:47:10.199 --> 00:47:13.280
<v Speaker 3>emulation layer, but if you're running natively, that's those problems

895
00:47:13.320 --> 00:47:14.119
<v Speaker 3>no longer exist.

896
00:47:14.360 --> 00:47:16.519
<v Speaker 2>And you guys don't tend to poke into ring zero

897
00:47:16.599 --> 00:47:17.280
<v Speaker 2>for any reason.

898
00:47:17.679 --> 00:47:20.000
<v Speaker 3>You know, no, No, that's not no.

899
00:47:20.840 --> 00:47:23.559
<v Speaker 2>That's and that's where the real WAMI comes for arm

900
00:47:23.679 --> 00:47:26.559
<v Speaker 2>is that all of that architecture is fundamentally different. Yeah,

901
00:47:26.960 --> 00:47:28.639
<v Speaker 2>as long as you're staying in the user layer. The

902
00:47:28.719 --> 00:47:30.559
<v Speaker 2>user layer lies to you really efficiently.

903
00:47:31.159 --> 00:47:35.440
<v Speaker 3>Yes, So that's something that we're definitely looking at. It's

904
00:47:35.440 --> 00:47:37.360
<v Speaker 3>the conversations are being had about what we need to

905
00:47:37.400 --> 00:47:40.360
<v Speaker 3>do and what we need to do, because right now,

906
00:47:40.519 --> 00:47:43.599
<v Speaker 3>for Chocolate, we will say the helper scripts that we

907
00:47:43.639 --> 00:47:46.440
<v Speaker 3>have will say give me the thirty two bit installer

908
00:47:46.800 --> 00:47:48.519
<v Speaker 3>or give me the sixty four bit installer, and then

909
00:47:48.599 --> 00:47:51.280
<v Speaker 3>Chocolate does the right thing based on where it's running.

910
00:47:51.639 --> 00:47:53.800
<v Speaker 3>But then we would need to extend that to have

911
00:47:53.920 --> 00:47:56.800
<v Speaker 3>well are you on ARM and then is it ARM

912
00:47:56.880 --> 00:47:59.119
<v Speaker 3>thirty two? Is ARM clutter two still a thing? Is

913
00:47:59.159 --> 00:48:02.239
<v Speaker 3>it ARM sixty four? Yeah, there's all these questions here.

914
00:48:02.119 --> 00:48:04.800
<v Speaker 2>When it's only ARMS sixty four, like just one last thing,

915
00:48:05.000 --> 00:48:07.000
<v Speaker 2>it's pretty hard. Thirty two is pretty much over.

916
00:48:07.519 --> 00:48:09.719
<v Speaker 3>That's it. So but I say those questions are those

917
00:48:09.800 --> 00:48:12.760
<v Speaker 3>questions are being asked. Those we're trying to provide answers.

918
00:48:13.679 --> 00:48:15.719
<v Speaker 3>So that that I said, that landscape is ever changing

919
00:48:15.719 --> 00:48:18.159
<v Speaker 3>and we're trying to But I mean there's the other

920
00:48:18.239 --> 00:48:21.039
<v Speaker 3>parts of it from a development perspective. We had this

921
00:48:21.079 --> 00:48:23.639
<v Speaker 3>conversation last time where we've literally just done the switch

922
00:48:23.679 --> 00:48:26.119
<v Speaker 3>from dot net four up to dot net four point

923
00:48:26.119 --> 00:48:29.320
<v Speaker 3>eight we're in a similar chasm now where we're at

924
00:48:29.320 --> 00:48:32.079
<v Speaker 3>four point eight, but we want to jump to dot net,

925
00:48:32.119 --> 00:48:35.639
<v Speaker 3>to actual dot net. So there's conversations around what we

926
00:48:35.719 --> 00:48:39.119
<v Speaker 3>do there, what do we do again? Our builds need

927
00:48:39.159 --> 00:48:41.920
<v Speaker 3>to change, our testing needs to change. So there's it's

928
00:48:41.920 --> 00:48:45.159
<v Speaker 3>a never ending sea of things that need to be

929
00:48:45.159 --> 00:48:46.440
<v Speaker 3>thought about in conversations.

930
00:48:46.760 --> 00:48:49.400
<v Speaker 1>All right, you're gonna love this question, Gary, what is

931
00:48:49.440 --> 00:48:52.400
<v Speaker 1>the wackiest tech support ticket you ever saw?

932
00:48:52.880 --> 00:48:53.559
<v Speaker 2>For chocolate?

933
00:48:54.719 --> 00:48:57.920
<v Speaker 3>So so the one that comes to mind is one

934
00:48:57.920 --> 00:49:00.519
<v Speaker 3>that I briefly spoke about and our last meeting, but

935
00:49:00.599 --> 00:49:04.239
<v Speaker 3>it was we had a customer who the customer that

936
00:49:04.280 --> 00:49:07.559
<v Speaker 3>was running CCM and CCM at the time. It does

937
00:49:07.559 --> 00:49:11.719
<v Speaker 3>a thing where we do deployment and it installed on

938
00:49:12.559 --> 00:49:15.599
<v Speaker 3>the computer that you're running on. So this customer happened

939
00:49:15.599 --> 00:49:19.280
<v Speaker 3>to be running on Windows Server twenty twelve, and the

940
00:49:19.360 --> 00:49:22.559
<v Speaker 3>deployment would work the first time, and then if you

941
00:49:22.639 --> 00:49:26.280
<v Speaker 3>ran it again it would fail. So there was it was.

942
00:49:26.440 --> 00:49:28.440
<v Speaker 3>It was in explosive. It would always just work. So

943
00:49:28.679 --> 00:49:31.000
<v Speaker 3>in our testing it always just worked. We were testing

944
00:49:31.039 --> 00:49:34.239
<v Speaker 3>on not Windows Server twenty twelve. So it turns out

945
00:49:34.440 --> 00:49:37.599
<v Speaker 3>that there was a problem with the SMA assembly the

946
00:49:37.599 --> 00:49:42.159
<v Speaker 3>PowerShell SMA assembly had a bug, and the first deployment

947
00:49:42.239 --> 00:49:44.880
<v Speaker 3>it worked just fine, and the second deployment, I think

948
00:49:44.880 --> 00:49:47.920
<v Speaker 3>it was an internal array that had been set and

949
00:49:48.000 --> 00:49:52.320
<v Speaker 3>therefore it didn't work the same way that it worked before. Literally,

950
00:49:52.840 --> 00:49:56.719
<v Speaker 3>after literally debugging or decompiling the SMA assembly and looking

951
00:49:56.719 --> 00:50:00.079
<v Speaker 3>at the generated code, I figured it out, found a

952
00:50:00.079 --> 00:50:03.719
<v Speaker 3>way to reset the array on each deployment, and I

953
00:50:03.760 --> 00:50:05.679
<v Speaker 3>was able to fix it for that customer. But that's

954
00:50:05.880 --> 00:50:09.360
<v Speaker 3>That's one of the the fundamentals of Chocolate is that

955
00:50:09.360 --> 00:50:12.159
<v Speaker 3>we try to be backwards compatible, but that end the

956
00:50:12.239 --> 00:50:14.079
<v Speaker 3>end result of that is we end up with customers

957
00:50:14.159 --> 00:50:16.760
<v Speaker 3>running on older operating systems that we're trying to support

958
00:50:16.800 --> 00:50:17.239
<v Speaker 3>and maintain.

959
00:50:17.360 --> 00:50:19.360
<v Speaker 1>Yeah, and they're like, how dare you not run on

960
00:50:19.440 --> 00:50:22.559
<v Speaker 1>a ten year old operating exactly exactly you guys? Do

961
00:50:22.639 --> 00:50:23.639
<v Speaker 1>you freaking guys?

962
00:50:24.880 --> 00:50:26.719
<v Speaker 3>So that's the one that immediately springs to mind. So

963
00:50:26.760 --> 00:50:29.280
<v Speaker 3>that was me splunking into the internals of the SMA

964
00:50:29.280 --> 00:50:32.679
<v Speaker 3>assembly to figure out how things work.

965
00:50:32.679 --> 00:50:34.480
<v Speaker 2>And I mean, so there's no point in pushing to

966
00:50:34.519 --> 00:50:36.920
<v Speaker 2>the PowerShell guys. They're gonna go a sorry, now, that's

967
00:50:36.960 --> 00:50:38.280
<v Speaker 2>not a supported operating system.

968
00:50:38.679 --> 00:50:41.559
<v Speaker 3>That's exactly it, so we were able to find a solution.

969
00:50:41.639 --> 00:50:44.280
<v Speaker 3>So sometimes these things happened, and that's literally there's nothing

970
00:50:44.280 --> 00:50:45.920
<v Speaker 3>we can do in this suggestion as well, you need

971
00:50:45.920 --> 00:50:49.800
<v Speaker 3>to upgrade to X whatever it is to upgrade. But

972
00:50:50.159 --> 00:50:52.280
<v Speaker 3>we try to support because we know that people are

973
00:50:52.360 --> 00:50:56.599
<v Speaker 3>running those older operating systems of older applications. So Chocolatey

974
00:50:56.639 --> 00:50:59.800
<v Speaker 3>tries to be as backwards compatible as we can be.

975
00:50:59.840 --> 00:51:02.079
<v Speaker 3>So we can say that we've got both the one

976
00:51:02.079 --> 00:51:04.159
<v Speaker 3>point X branch of chocolate and the two point X

977
00:51:04.159 --> 00:51:06.719
<v Speaker 3>branch of chocolate. Both of them are supported. So one

978
00:51:06.719 --> 00:51:09.079
<v Speaker 3>point X goes all the way back to dot net four.

979
00:51:09.199 --> 00:51:13.840
<v Speaker 3>If you really wanted to wow, I hope I I

980
00:51:13.840 --> 00:51:16.519
<v Speaker 3>would like to think there's not many people still on

981
00:51:16.599 --> 00:51:19.639
<v Speaker 3>dot net four. But yeah, stranger things have happened.

982
00:51:19.639 --> 00:51:23.599
<v Speaker 1>Well, but this whole story about Windows twenty twelve and

983
00:51:23.599 --> 00:51:25.599
<v Speaker 1>I don't know when it happened, but it was probably

984
00:51:25.679 --> 00:51:28.079
<v Speaker 1>ten years later, right that, So.

985
00:51:28.039 --> 00:51:30.400
<v Speaker 3>We're talking within the last three years, the last three

986
00:51:30.440 --> 00:51:31.360
<v Speaker 3>years that this was that man.

987
00:51:31.519 --> 00:51:31.760
<v Speaker 2>But it.

988
00:51:33.280 --> 00:51:37.400
<v Speaker 1>Just it speaks to the point that somebody has been

989
00:51:37.519 --> 00:51:41.880
<v Speaker 1>using Windows, a version of Windows for ten years, a

990
00:51:41.920 --> 00:51:44.400
<v Speaker 1>server version of Windows for ten years.

991
00:51:44.159 --> 00:51:47.360
<v Speaker 2>Which by the way, only went out of support in

992
00:51:47.440 --> 00:51:48.320
<v Speaker 2>twenty twenty two.

993
00:51:48.519 --> 00:51:50.480
<v Speaker 1>That speaks volumes, right.

994
00:51:50.400 --> 00:51:52.400
<v Speaker 2>Like Microsoft used to offer ten years.

995
00:51:52.440 --> 00:51:55.119
<v Speaker 1>If speaks volumes about the quality of Windows Server. I

996
00:51:55.159 --> 00:51:57.639
<v Speaker 1>think it does well. It does except for that one

997
00:51:57.719 --> 00:52:02.760
<v Speaker 1>stupid DLL that is the program didn't stupid initialize the array.

998
00:52:04.400 --> 00:52:07.119
<v Speaker 2>But also you notice not Microsoft's pushing back and starting

999
00:52:07.119 --> 00:52:11.480
<v Speaker 2>to shorten those timelines to encourage upgrade. There's also some

1000
00:52:11.559 --> 00:52:14.519
<v Speaker 2>vulnerabilities in twenty twelve that are really freaking serious, right,

1001
00:52:14.679 --> 00:52:18.360
<v Speaker 2>like it's time to retire that.

1002
00:52:18.880 --> 00:52:21.440
<v Speaker 3>And it's one of those situations that yes, we know

1003
00:52:21.519 --> 00:52:23.960
<v Speaker 3>people are using these systems, but we're also hoping it's

1004
00:52:23.960 --> 00:52:26.320
<v Speaker 3>in some sort of air gun network that has less

1005
00:52:26.400 --> 00:52:31.239
<v Speaker 3>to the Internet. Yeah, but again, stranger things well you know.

1006
00:52:31.800 --> 00:52:34.599
<v Speaker 2>Now, then back to my run ass hat. It's like

1007
00:52:34.679 --> 00:52:38.079
<v Speaker 2>the Halfnium exploit of all of those old Exchange servers,

1008
00:52:38.280 --> 00:52:41.360
<v Speaker 2>tens of thousands of them, which is sort of proof

1009
00:52:41.400 --> 00:52:44.159
<v Speaker 2>that not leading people not upgrading, they are also putting

1010
00:52:44.199 --> 00:52:44.840
<v Speaker 2>them on the internet.

1011
00:52:45.639 --> 00:52:47.920
<v Speaker 1>I told you, I think I told you many times

1012
00:52:47.960 --> 00:52:51.079
<v Speaker 1>about my sister in law who just last year was

1013
00:52:51.119 --> 00:52:56.679
<v Speaker 1>still running Windows Vista well on her home computer, not.

1014
00:52:56.639 --> 00:52:59.159
<v Speaker 2>Only running an old version of Windows, but a.

1015
00:52:59.159 --> 00:53:03.119
<v Speaker 1>Really bad but not only yet so, but her excuse was,

1016
00:53:03.199 --> 00:53:05.440
<v Speaker 1>but I like it, and I'm like, I don't care.

1017
00:53:05.800 --> 00:53:09.280
<v Speaker 1>You know what likes you, malware, that's what likes you.

1018
00:53:10.960 --> 00:53:13.559
<v Speaker 3>I remember, I think it was the Windows XP. I

1019
00:53:13.559 --> 00:53:15.639
<v Speaker 3>remember trying to set up I think with my granny's

1020
00:53:15.639 --> 00:53:17.679
<v Speaker 3>computer at the time, and I was trying to do

1021
00:53:17.800 --> 00:53:20.679
<v Speaker 3>Windows updates on Windows XP and I got I remember

1022
00:53:20.679 --> 00:53:22.119
<v Speaker 3>which bug it was, but it was one of those

1023
00:53:22.159 --> 00:53:24.119
<v Speaker 3>bugs that in the time that it took me to

1024
00:53:24.119 --> 00:53:28.840
<v Speaker 3>download the Windows updates, malware had attacked the machine. It

1025
00:53:28.880 --> 00:53:31.639
<v Speaker 3>was already infected, and there was at that point there

1026
00:53:31.679 --> 00:53:36.639
<v Speaker 3>was no mechanism to do downloads of Windows updates out

1027
00:53:36.679 --> 00:53:39.960
<v Speaker 3>with the Windows Update interface. So it was a race

1028
00:53:40.079 --> 00:53:42.000
<v Speaker 3>literally to try and get the update to fix the

1029
00:53:42.000 --> 00:53:45.440
<v Speaker 3>bug before the bug got onto your machine, before.

1030
00:53:45.199 --> 00:53:46.519
<v Speaker 2>You got exploited through that bug.

1031
00:53:47.000 --> 00:53:47.239
<v Speaker 3>Yeah.

1032
00:53:47.400 --> 00:53:50.119
<v Speaker 2>Yeah, they those who ever looked up the half new exploit.

1033
00:53:50.239 --> 00:53:54.800
<v Speaker 2>In the end, the FBI used the vulnerability to patch

1034
00:53:54.840 --> 00:53:59.760
<v Speaker 2>the vulnerability. Wow, rather because people weren't fixing it. Yeah, wow,

1035
00:54:00.119 --> 00:54:00.679
<v Speaker 2>is that bad?

1036
00:54:00.880 --> 00:54:02.760
<v Speaker 1>Halfnium? Is that what you called it?

1037
00:54:02.920 --> 00:54:06.039
<v Speaker 2>The coxploit? Yeah, it's a few years ago. There's a

1038
00:54:06.039 --> 00:54:07.840
<v Speaker 2>whole run as on it. For those who care but

1039
00:54:07.880 --> 00:54:10.159
<v Speaker 2>you know, this is all you know, this is all

1040
00:54:10.199 --> 00:54:14.519
<v Speaker 2>the stuff that that the security people scare us with, right, right,

1041
00:54:14.559 --> 00:54:18.159
<v Speaker 2>but these were these were crucial sort of turning point

1042
00:54:18.400 --> 00:54:21.400
<v Speaker 2>of vulnerabilities. Right, it's twenty twenty one.

1043
00:54:21.519 --> 00:54:24.320
<v Speaker 1>Every Thursday, after I record Security this Week with Patrick

1044
00:54:24.400 --> 00:54:27.320
<v Speaker 1>Hines and Duine Laflatte, Kelly sits down and says, so

1045
00:54:27.840 --> 00:54:29.519
<v Speaker 1>what should I be scared about today?

1046
00:54:30.440 --> 00:54:33.360
<v Speaker 2>Just put the tinfoil on your head and be quiet. Right,

1047
00:54:33.440 --> 00:54:34.400
<v Speaker 2>It's gonna be fine.

1048
00:54:34.800 --> 00:54:38.320
<v Speaker 1>Sometimes it feels like we're all screwed. It's just a

1049
00:54:38.360 --> 00:54:40.880
<v Speaker 1>matter of how long it's going to be before that

1050
00:54:40.960 --> 00:54:42.280
<v Speaker 1>happens somehow.

1051
00:54:42.440 --> 00:54:44.960
<v Speaker 2>Sometimes, well, the good news is the good The good

1052
00:54:44.960 --> 00:54:46.760
<v Speaker 2>guys are smarter than the bad guys. But the good

1053
00:54:46.760 --> 00:54:48.760
<v Speaker 2>guys have to be right every time they get guys

1054
00:54:48.800 --> 00:54:49.559
<v Speaker 2>only have to write once.

1055
00:54:49.599 --> 00:54:51.960
<v Speaker 1>I don't know. The bad guys have countries behind them though,

1056
00:54:52.000 --> 00:54:55.519
<v Speaker 1>So that's what bothers me. Armies of hackers. You know,

1057
00:54:56.760 --> 00:54:59.840
<v Speaker 1>it's scary world out there. But as Rory said, once

1058
00:55:00.119 --> 00:55:05.440
<v Speaker 1>cut off your hands, live in a box, you'll be fine.

1059
00:55:05.960 --> 00:55:07.599
<v Speaker 2>There's a tone for the show.

1060
00:55:10.079 --> 00:55:11.400
<v Speaker 1>Everything's going to be fine.

1061
00:55:11.559 --> 00:55:13.760
<v Speaker 2>Baggage management it's great, No, really, it's great.

1062
00:55:13.800 --> 00:55:17.239
<v Speaker 1>Great, No, it's fine. Gary. What's next for you? What's

1063
00:55:17.239 --> 00:55:18.000
<v Speaker 1>in your inbox?

1064
00:55:19.360 --> 00:55:22.639
<v Speaker 3>So obviously more chocolate you work. I'm hoping to go

1065
00:55:22.719 --> 00:55:28.840
<v Speaker 3>to ps COM for you in Germany in June the CONFI. Yeah,

1066
00:55:28.880 --> 00:55:32.599
<v Speaker 3>so it's the EU version of the PowerShell Summit that

1067
00:55:32.679 --> 00:55:35.199
<v Speaker 3>happened at State Side, so as a really good event.

1068
00:55:35.239 --> 00:55:38.199
<v Speaker 3>I was there last year or sorry this year, and

1069
00:55:38.239 --> 00:55:40.639
<v Speaker 3>I'm hoping to go next year as well. But yeah,

1070
00:55:40.719 --> 00:55:44.079
<v Speaker 3>other than that, just being a dad, being a husband,

1071
00:55:44.280 --> 00:55:46.880
<v Speaker 3>doing all the day to day stuff. It's not it's

1072
00:55:46.920 --> 00:55:49.760
<v Speaker 3>not it's not exciting, but it is what it is.

1073
00:55:50.039 --> 00:55:52.840
<v Speaker 2>So oh, it's exciting being It's bloody rewarding is what

1074
00:55:52.880 --> 00:55:53.119
<v Speaker 2>it is.

1075
00:55:54.320 --> 00:55:56.039
<v Speaker 3>That's very true.

1076
00:55:56.119 --> 00:55:58.400
<v Speaker 1>All right, Well Gary, thanks a lot. We always learn

1077
00:55:58.440 --> 00:55:59.920
<v Speaker 1>a lot when we talk to you, and this was

1078
00:56:00.159 --> 00:56:03.159
<v Speaker 1>no difference. So thanks than all right, We'll talk to

1079
00:56:03.199 --> 00:56:26.920
<v Speaker 1>you next time on dot net rocks. Dot net rocks

1080
00:56:27.000 --> 00:56:29.719
<v Speaker 1>is brought to you by Franklin's Net and produced by

1081
00:56:29.800 --> 00:56:33.800
<v Speaker 1>Pop Studios, a full service audio, video and post production

1082
00:56:33.920 --> 00:56:37.880
<v Speaker 1>facility located physically in New London, Connecticut, and of course

1083
00:56:37.920 --> 00:56:42.079
<v Speaker 1>in the cloud online at pwop dot com.

1084
00:56:42.280 --> 00:56:44.400
<v Speaker 4>Visit our website at d O T N E t

1085
00:56:44.639 --> 00:56:48.679
<v Speaker 4>r o c k S dot com for RSS feeds, downloads,

1086
00:56:48.840 --> 00:56:52.519
<v Speaker 4>mobile apps, comments, and access to the full archives going

1087
00:56:52.559 --> 00:56:55.800
<v Speaker 4>back to show number one, recorded in September two.

1088
00:56:55.599 --> 00:56:58.599
<v Speaker 1>Thousand and two. And make sure you check out our sponsors.

1089
00:56:58.760 --> 00:57:01.559
<v Speaker 1>They keep us in business. Now go write some code,

1090
00:57:02.159 --> 00:57:06.199
<v Speaker 1>see you next time. Got tad middle vans now the

1091
00:57:06.639 --> 00:57:14.079
<v Speaker 1>summer time that means home. Then my Texas in line

1092
00:57:14.360 --> 00:57:14.599
<v Speaker 1>read
