WEBVTT

1
00:00:01.169 --> 00:00:04.790
<v Speaker 1>How'd you like to listen to. NET Rocks with no ads? Easy.

2
00:00:05.370 --> 00:00:08.769
<v Speaker 1>Become a patron. For just $ 5 a month, you get

3
00:00:08.890 --> 00:00:11.720
<v Speaker 1>access to a private RSS feed where all the shows

4
00:00:11.800 --> 00:00:14.900
<v Speaker 1>have no ads. $ 20 a month will get you that

5
00:00:15.119 --> 00:00:18.839
<v Speaker 1>and a special. NET Rocks patron mug. Sign up now

6
00:00:18.899 --> 00:00:36.549
<v Speaker 1>at patreon.dotnetrocks.com. Hey, and welcome back to. NET Rocks. I'm

7
00:00:36.590 --> 00:00:37.210
<v Speaker 1>Carl Franklin.

8
00:00:37.289 --> 00:00:37.950
<v Speaker 2>And I'm Richard Kaplan.

9
00:00:38.049 --> 00:00:41.250
<v Speaker 1>Our friend Don XML, I mean, Don Demsack is here.

10
00:00:41.270 --> 00:00:41.530
<v Speaker 3>Oh, jeez.

11
00:00:42.170 --> 00:00:44.590
<v Speaker 1>Or is he Don Jason? Are you Don Jason now?

12
00:00:45.109 --> 00:00:45.770
<v Speaker 4>That's my brother.

13
00:00:48.700 --> 00:00:51.880
<v Speaker 2>At least he didn't say Don Yammel. God knows. No.

14
00:00:51.899 --> 00:00:52.659
<v Speaker 5>No.

15
00:00:53.479 --> 00:00:58.119
<v Speaker 1>This is going to be a good one. This is

16
00:00:58.259 --> 00:01:01.460
<v Speaker 1>episode 2018. And as we always do at the top

17
00:01:01.500 --> 00:01:04.040
<v Speaker 1>of the show, let's talk about things that happened that year.

18
00:01:05.120 --> 00:01:07.799
<v Speaker 1>I get all the depressing ones and Richard gets all

19
00:01:07.840 --> 00:01:09.760
<v Speaker 1>the happy ones in space and tech.

20
00:01:09.780 --> 00:01:11.459
<v Speaker 2>Just have to pick carefully.

21
00:01:11.480 --> 00:01:15.849
<v Speaker 1>Yeah, I guess so. But, you know, these are important events, right?

22
00:01:15.950 --> 00:01:16.250
<v Speaker 2>Are they?

23
00:01:16.390 --> 00:01:17.310
<v Speaker 1>School shootings.

24
00:01:17.750 --> 00:01:18.030
<v Speaker 2>Are they?

25
00:01:18.170 --> 00:01:20.689
<v Speaker 1>Robert Mueller's Russia investigation.

26
00:01:20.909 --> 00:01:21.290
<v Speaker 2>Oh, yeah.

27
00:01:21.469 --> 00:01:21.689
<v Speaker 5>Well.

28
00:01:21.730 --> 00:01:25.590
<v Speaker 1>Brett Kavanaugh, Supreme Court confirmation battle.

29
00:01:25.689 --> 00:01:25.870
<v Speaker 4>Yeah.

30
00:01:25.930 --> 00:01:30.620
<v Speaker 1>The 2018 midterm elections when the Democrats took over. The

31
00:01:30.659 --> 00:01:32.640
<v Speaker 1>Democrats strike back. Did they?

32
00:01:32.799 --> 00:01:33.079
<v Speaker 5>Okay.

33
00:01:33.400 --> 00:01:33.840
<v Speaker 1>Well, okay.

34
00:01:33.959 --> 00:01:34.239
<v Speaker 2>I don't know.

35
00:01:37.599 --> 00:01:40.829
<v Speaker 1>Trump and Kim Jong-un, still crazy after all these years.

36
00:01:41.269 --> 00:01:41.549
<v Speaker 4>Nice.

37
00:01:42.030 --> 00:01:42.590
<v Speaker 1>Still friends.

38
00:01:42.609 --> 00:01:45.290
<v Speaker 2>I think that was one of the first meetings, wasn't it?

39
00:01:45.709 --> 00:01:46.290
<v Speaker 4>Yeah, yeah.

40
00:01:46.670 --> 00:01:54.019
<v Speaker 1>June 12th in Singapore. Jamal Khashoggi, as Trump said, these

41
00:01:54.040 --> 00:02:00.260
<v Speaker 1>things happen. He was killed and dissolved in a bathtub

42
00:02:00.400 --> 00:02:00.959
<v Speaker 1>of acid.

43
00:02:01.219 --> 00:02:01.659
<v Speaker 2>Or something.

44
00:02:01.680 --> 00:02:02.040
<v Speaker 5>Okay. Okay.

45
00:02:02.849 --> 00:02:07.480
<v Speaker 1>Or something. That's what we think. California wildfires happens every year,

46
00:02:07.560 --> 00:02:11.520
<v Speaker 1>but 2018 was particularly bad. The Me Too movement and

47
00:02:11.539 --> 00:02:15.639
<v Speaker 1>the Larry Nassar scandal. And just to put a little

48
00:02:15.659 --> 00:02:17.879
<v Speaker 1>fine point on it, hurricanes Florence and Michael.

49
00:02:18.120 --> 00:02:18.280
<v Speaker 3>Right.

50
00:02:18.439 --> 00:02:19.000
<v Speaker 2>Those are good ones.

51
00:02:19.120 --> 00:02:21.139
<v Speaker 1>Catastrophic flooding in the Carolinas.

52
00:02:21.319 --> 00:02:21.590
<v Speaker 2>Yeah.

53
00:02:21.840 --> 00:02:24.650
<v Speaker 1>And the Florida panhandle. All right, Richard. That's enough.

54
00:02:24.889 --> 00:02:28.449
<v Speaker 2>Well, it was also, remember that cave rescue in Thailand? Oh, yeah.

55
00:02:28.750 --> 00:02:31.449
<v Speaker 2>Those students went in and there was the flash flood.

56
00:02:31.530 --> 00:02:32.289
<v Speaker 2>That's when that happened.

57
00:02:32.310 --> 00:02:33.210
<v Speaker 1>That was a good story.

58
00:02:33.430 --> 00:02:33.789
<v Speaker 5>It was.

59
00:02:33.870 --> 00:02:36.129
<v Speaker 2>I mean, one of the rescuers lost their lives trying

60
00:02:36.150 --> 00:02:38.909
<v Speaker 2>to save those kids. Right. But they were successful. Do

61
00:02:39.270 --> 00:02:42.090
<v Speaker 2>you remember when, I think that's when Elon started going crazy. Yeah.

62
00:02:42.189 --> 00:02:44.509
<v Speaker 2>Remember he really wanted to be involved in that. It's like,

63
00:02:44.530 --> 00:02:48.580
<v Speaker 2>you're not actually qualified. I'll build a submersible. It's like, A,

64
00:02:48.590 --> 00:02:50.719
<v Speaker 2>you don't know how to build a submersible. And B,

65
00:02:51.280 --> 00:02:53.939
<v Speaker 2>that's not going to work in a cave either. And

66
00:02:53.960 --> 00:02:56.759
<v Speaker 2>then he got really snarky and started calling people pedophiles

67
00:02:56.800 --> 00:02:59.599
<v Speaker 2>and things. Yeah. I don't know. It was one of

68
00:02:59.620 --> 00:03:02.969
<v Speaker 2>those moments because this is the same year that the

69
00:03:03.030 --> 00:03:05.370
<v Speaker 2>Falcon Heavy flies for the first time and Elon put

70
00:03:05.409 --> 00:03:09.430
<v Speaker 2>his red Tesla Roadster on top of it as the payload,

71
00:03:09.949 --> 00:03:11.250
<v Speaker 2>which was pretty cool.

72
00:03:11.330 --> 00:03:13.930
<v Speaker 1>I thought that was the cool Elon doing that.

73
00:03:13.969 --> 00:03:17.580
<v Speaker 2>Yeah. But it's interesting to think that's the same year

74
00:03:17.639 --> 00:03:21.259
<v Speaker 2>he goes nuts on this cave rescue thing so i

75
00:03:21.280 --> 00:03:22.439
<v Speaker 2>mean things are just getting.

76
00:03:22.240 --> 00:03:27.719
<v Speaker 1>Weirder and weirder yeah weirdness weirdness abides um also i

77
00:03:27.759 --> 00:03:31.370
<v Speaker 1>want to mention aretha franklin and anthony bourdain died in

78
00:03:31.370 --> 00:03:35.210
<v Speaker 1>2018 yeah very sad also paul allen very sad about

79
00:03:35.250 --> 00:03:39.310
<v Speaker 1>have you there's a new movie like a documentary about anthony.

80
00:03:39.189 --> 00:03:41.930
<v Speaker 2>There's an anthony bourdain movie coming out imminently yeah so

81
00:03:41.949 --> 00:03:43.500
<v Speaker 2>it hasn't come out yet I think it's just out

82
00:03:43.520 --> 00:03:44.319
<v Speaker 2>brand new. Okay.

83
00:03:44.520 --> 00:03:45.240
<v Speaker 1>Yeah. I want to see that.

84
00:03:45.300 --> 00:03:45.479
<v Speaker 5>Yeah.

85
00:03:45.740 --> 00:03:49.169
<v Speaker 1>Also George H.W. Bush and John McCain died. Yeah.

86
00:03:49.370 --> 00:03:51.830
<v Speaker 2>All right, Richard, save us from this misery. So I

87
00:03:52.129 --> 00:03:54.270
<v Speaker 2>mentioned the Falcon heavy flight, which, yeah, that was pretty cool.

88
00:03:54.289 --> 00:03:56.090
<v Speaker 2>We ended up doing a geek out about it. I mean,

89
00:03:56.110 --> 00:03:59.229
<v Speaker 2>it was just an extraordinary rocket strapping three side by side.

90
00:04:00.210 --> 00:04:03.030
<v Speaker 2>Originally he had planned on doing something called asparagus staging,

91
00:04:03.060 --> 00:04:05.060
<v Speaker 2>where he was actually going to feed the fuel from

92
00:04:05.120 --> 00:04:08.610
<v Speaker 2>the wing of boosters into the center so that when

93
00:04:08.669 --> 00:04:12.050
<v Speaker 2>the outer boosters were empty and separated, the center booster

94
00:04:12.069 --> 00:04:15.849
<v Speaker 2>would be completely full. Never happened. Instead, they do it

95
00:04:15.889 --> 00:04:18.149
<v Speaker 2>the simpler way, which is simply to throttle down the

96
00:04:18.189 --> 00:04:21.319
<v Speaker 2>center booster so it doesn't burn as much fuel. That

97
00:04:21.360 --> 00:04:23.740
<v Speaker 2>being said, Falcon Heavy, you'd be never real happy with

98
00:04:23.779 --> 00:04:26.720
<v Speaker 2>it The simple reason that it has a lot of power,

99
00:04:26.759 --> 00:04:28.860
<v Speaker 2>but it doesn't have a lot of payload space. And

100
00:04:28.879 --> 00:04:31.959
<v Speaker 2>so there's relatively few cases where it's needed. And he

101
00:04:31.980 --> 00:04:35.250
<v Speaker 2>was already talking about what we now know is Starship, uh,

102
00:04:35.370 --> 00:04:38.250
<v Speaker 2>and starting to do prototypes around all of that. Uh,

103
00:04:38.259 --> 00:04:42.310
<v Speaker 2>we have a lot of cool, uh, satellites up in 2018,

104
00:04:42.310 --> 00:04:46.750
<v Speaker 2>starting with tests, the transiting exoplanet survey satellite. So this

105
00:04:46.769 --> 00:04:51.129
<v Speaker 2>was the only, the third of the dedicated finding exoplanet

106
00:04:51.149 --> 00:04:55.069
<v Speaker 2>satellites that the, the successor of Kepler. Kepler had launched

107
00:04:55.100 --> 00:04:59.240
<v Speaker 2>back in 2009 and found 2,600 exoplanets. That was Kepler's

108
00:04:59.300 --> 00:05:02.620
<v Speaker 2>mission was to do deep surveys to see how common

109
00:05:02.839 --> 00:05:06.759
<v Speaker 2>are planets. And the answer is very common. Most stars

110
00:05:06.839 --> 00:05:11.100
<v Speaker 2>have planets. TESS as a survey satellite is not designed

111
00:05:11.139 --> 00:05:15.160
<v Speaker 2>to observe as closely, but to cover much larger tracks

112
00:05:15.279 --> 00:05:19.040
<v Speaker 2>of the sky. And fast forwarding eight years now, it's

113
00:05:19.079 --> 00:05:23.759
<v Speaker 2>found over 8,000 potential objects that generally need additional surveying.

114
00:05:24.269 --> 00:05:28.790
<v Speaker 2>because it is a survey spacecraft. But of those 8,000,

115
00:05:28.790 --> 00:05:31.629
<v Speaker 2>almost 1,000 have not been confirmed as exoplanets. So if

116
00:05:31.649 --> 00:05:36.689
<v Speaker 2>you're keeping count, we're up around 6,300 confirmed exoplanets so

117
00:05:36.750 --> 00:05:41.569
<v Speaker 2>far from all of our different collection methodologies. This is

118
00:05:41.610 --> 00:05:44.550
<v Speaker 2>not how Star Trek was supposed to work. Remember in

119
00:05:44.569 --> 00:05:46.470
<v Speaker 2>Star Trek, you had to fly to the solar system

120
00:05:46.490 --> 00:05:48.250
<v Speaker 2>to see the planets? No, we're going to have a

121
00:05:48.300 --> 00:05:50.620
<v Speaker 2>map of all of them long before we can get

122
00:05:50.639 --> 00:05:53.579
<v Speaker 2>to any of them. There's a couple of asteroid missions.

123
00:05:53.639 --> 00:05:59.759
<v Speaker 2>Hayabusa 2 in June got to Rigu. And in December,

124
00:06:00.420 --> 00:06:03.420
<v Speaker 2>OSIRIS-REx gets to Bennu, which is cool. We start to

125
00:06:03.480 --> 00:06:06.379
<v Speaker 2>explore asteroids sort of on a regular basis. In August,

126
00:06:06.430 --> 00:06:09.870
<v Speaker 2>the Parker Solar Probe, the first time we've ever tried

127
00:06:09.910 --> 00:06:13.310
<v Speaker 2>to fly a satellite to the sun. to actually do

128
00:06:13.370 --> 00:06:16.769
<v Speaker 2>measurements of its outer atmosphere. That's a very difficult thing

129
00:06:16.810 --> 00:06:18.550
<v Speaker 2>to do. You have to go really, really fast to

130
00:06:18.569 --> 00:06:18.810
<v Speaker 2>do that.

131
00:06:18.829 --> 00:06:21.269
<v Speaker 1>Remember Richard Pryor's bit, the first man to walk on

132
00:06:21.310 --> 00:06:21.649
<v Speaker 1>the sun?

133
00:06:21.670 --> 00:06:25.009
<v Speaker 4>Ooh, ah, ah, ooh, how?

134
00:06:26.180 --> 00:06:28.720
<v Speaker 2>So to make the solar probe go fast enough to

135
00:06:28.759 --> 00:06:30.240
<v Speaker 2>get that close to the sun, they launched on a

136
00:06:30.259 --> 00:06:32.620
<v Speaker 2>Delta IV, which is one of the highest performance rockets

137
00:06:32.660 --> 00:06:36.339
<v Speaker 2>ever made. It's largely obsolete now and retired and broke

138
00:06:36.360 --> 00:06:37.740
<v Speaker 2>a bunch of speed records to try and get it

139
00:06:37.779 --> 00:06:40.259
<v Speaker 2>down there. It'll take a while to actually get close

140
00:06:40.300 --> 00:06:42.019
<v Speaker 2>enough and actually start to do sampling of the sun.

141
00:06:42.620 --> 00:06:45.439
<v Speaker 2>Also in August was when on the International Space Station,

142
00:06:45.540 --> 00:06:50.279
<v Speaker 2>Soyuz MS-09, this is the vehicle that they transport astronauts

143
00:06:50.339 --> 00:06:52.300
<v Speaker 2>to and from the space station, which at that time,

144
00:06:52.319 --> 00:06:55.990
<v Speaker 2>because the shuttle is no longer flying and Crew Dragon

145
00:06:56.019 --> 00:06:58.610
<v Speaker 2>doesn't exist yet, it's still in development, was the only

146
00:06:58.649 --> 00:07:00.990
<v Speaker 2>way to get to the station. They find a two

147
00:07:01.089 --> 00:07:05.389
<v Speaker 2>millimeter hole in the orbital module of the Soyuz. And

148
00:07:05.410 --> 00:07:07.230
<v Speaker 2>there was a lot of controversy about whether it was

149
00:07:07.350 --> 00:07:09.750
<v Speaker 2>drilled because it was sort of a perfect hole or

150
00:07:09.790 --> 00:07:12.569
<v Speaker 2>was it just that right hole? you know, penetrator that

151
00:07:12.610 --> 00:07:15.189
<v Speaker 2>it went through there. Anyway, fixed with a piece of

152
00:07:15.509 --> 00:07:16.430
<v Speaker 2>cape on tape.

153
00:07:16.449 --> 00:07:17.430
<v Speaker 1>Could have been mice.

154
00:07:17.750 --> 00:07:19.910
<v Speaker 2>You know, and because it was the Orbridge module, it

155
00:07:19.930 --> 00:07:21.829
<v Speaker 2>doesn't have to survive re-entry, so it's not that big

156
00:07:21.850 --> 00:07:23.509
<v Speaker 2>of a deal. But yeah, it kicked up a lot

157
00:07:23.550 --> 00:07:27.569
<v Speaker 2>of speculation. And if that wasn't enough, the very next

158
00:07:27.649 --> 00:07:31.250
<v Speaker 2>Soyuz in October, this is Soyuz MS-10, it was only

159
00:07:31.290 --> 00:07:33.889
<v Speaker 2>carrying two passengers. Normally, the Soyuz can carry three, but

160
00:07:33.930 --> 00:07:39.569
<v Speaker 2>occasionally fly with less. In this case, it had Alexei Ovichin, And, uh,

161
00:07:39.680 --> 00:07:42.740
<v Speaker 2>from Roscosmos and Nick Hague from NASA, they were going

162
00:07:42.759 --> 00:07:44.699
<v Speaker 2>to be part of the exhibition 57 to the international

163
00:07:44.720 --> 00:07:49.160
<v Speaker 2>space station. But two minutes after launch, there was a failure.

164
00:07:49.399 --> 00:07:52.199
<v Speaker 2>And Soyuz is one of the most reliable, most flown

165
00:07:52.220 --> 00:07:53.500
<v Speaker 2>spacecraft of all time.

166
00:07:53.579 --> 00:07:53.839
<v Speaker 1>Yeah.

167
00:07:53.899 --> 00:07:56.220
<v Speaker 2>This was one of the very rare failures and it

168
00:07:56.240 --> 00:08:00.189
<v Speaker 2>was a failure that had never occurred before. There was

169
00:08:00.199 --> 00:08:02.810
<v Speaker 2>something wrong in the sensor of one of the strap-on boosters.

170
00:08:02.829 --> 00:08:05.449
<v Speaker 2>There are four strap-on boosters that famously separate from a

171
00:08:05.490 --> 00:08:08.170
<v Speaker 2>Soyuz and do what they call the Korolev cross. As

172
00:08:08.189 --> 00:08:10.649
<v Speaker 2>they come flying off. And it didn't happen this time.

173
00:08:10.709 --> 00:08:12.459
<v Speaker 2>And the one booster hung up. And then when it

174
00:08:12.500 --> 00:08:17.360
<v Speaker 2>did break away, it struck the central booster core. And

175
00:08:17.420 --> 00:08:20.560
<v Speaker 2>that ended the going into space. As Nick Hague said,

176
00:08:20.620 --> 00:08:22.860
<v Speaker 2>as soon as the bouncing around started, I guess we're

177
00:08:22.899 --> 00:08:27.139
<v Speaker 2>not going to the space station. But at this point,

178
00:08:27.160 --> 00:08:29.639
<v Speaker 2>they're already 50 kilometers up. And that's too high for

179
00:08:29.699 --> 00:08:33.659
<v Speaker 2>the escape tower. So it's already been ejected. But there is...

180
00:08:34.269 --> 00:08:38.549
<v Speaker 2>Mode 2, Ascent Abort, a system that had been tested

181
00:08:38.690 --> 00:08:41.899
<v Speaker 2>but never used. And this was the first and only

182
00:08:41.940 --> 00:08:42.919
<v Speaker 2>time it's ever been used.

183
00:08:43.100 --> 00:08:45.159
<v Speaker 1>So they basically turned it around and re-entered?

184
00:08:45.259 --> 00:08:47.620
<v Speaker 2>It's more complicated than that because you've got an exploding

185
00:08:47.679 --> 00:08:49.679
<v Speaker 2>rocket behind you, so you don't want to be near that.

186
00:08:49.750 --> 00:08:52.789
<v Speaker 2>So instead of abort motors fire and push the Soyuz

187
00:08:52.830 --> 00:08:56.049
<v Speaker 2>assembly away from the booster, and then you have to

188
00:08:56.210 --> 00:09:00.370
<v Speaker 2>get into... descent mode because you're carrying the propulsion module

189
00:09:00.409 --> 00:09:03.309
<v Speaker 2>as well as descent module and the orbital module so

190
00:09:03.370 --> 00:09:05.370
<v Speaker 2>those each have to be pushed off and then it

191
00:09:05.409 --> 00:09:07.480
<v Speaker 2>has to switch over to descent mode get the heat

192
00:09:07.500 --> 00:09:12.259
<v Speaker 2>shield pointed down and actually land because of the angle

193
00:09:12.279 --> 00:09:14.259
<v Speaker 2>of ascent they only get to about 90 kilometers so

194
00:09:14.279 --> 00:09:16.059
<v Speaker 2>they spend some time in free fall still going up

195
00:09:16.120 --> 00:09:17.139
<v Speaker 2>the explosion happened.

196
00:09:16.940 --> 00:09:19.620
<v Speaker 1>At 50 dude you should make movies This is great.

197
00:09:20.179 --> 00:09:20.799
<v Speaker 2>It's crazy.

198
00:09:21.000 --> 00:09:22.580
<v Speaker 1>It's like I'm on the edge of my seat.

199
00:09:22.679 --> 00:09:25.000
<v Speaker 2>And they're in free fall, and now they have to reorient,

200
00:09:25.019 --> 00:09:27.110
<v Speaker 2>and they do a ballistic return, which means those poor

201
00:09:27.120 --> 00:09:30.950
<v Speaker 2>guys pulled about seven Gs as they came back down.

202
00:09:32.289 --> 00:09:35.830
<v Speaker 2>Worked perfectly. Both astronauts walked away. The crazy part is

203
00:09:35.870 --> 00:09:40.889
<v Speaker 2>realizing from launch at Balkanur to on the ground about

204
00:09:40.889 --> 00:09:44.019
<v Speaker 2>200 kilometers downrange in Kazakhstan, 19 minutes.

205
00:09:44.419 --> 00:09:44.879
<v Speaker 4>Oh, my God.

206
00:09:45.289 --> 00:09:45.710
<v Speaker 1>Goodness.

207
00:09:46.029 --> 00:09:49.379
<v Speaker 2>It was fast and it's all automated. Like basically they

208
00:09:49.399 --> 00:09:52.659
<v Speaker 2>were having trouble keeping up with the control systems working

209
00:09:52.700 --> 00:09:53.000
<v Speaker 2>through it.

210
00:09:53.059 --> 00:09:55.259
<v Speaker 1>That's definitely not enough time for a feature film.

211
00:09:55.470 --> 00:09:57.970
<v Speaker 2>No, it's pretty quick, but I'm sure there's a bit

212
00:09:57.990 --> 00:09:59.970
<v Speaker 2>of story to go around it. Anyway, it worked flawlessly.

213
00:10:00.659 --> 00:10:03.019
<v Speaker 2>and they would eventually get to space on a different

214
00:10:03.039 --> 00:10:08.600
<v Speaker 2>spacecraft because that one weren't no good no more. In November,

215
00:10:08.740 --> 00:10:10.899
<v Speaker 2>we have the 20th anniversary of the International Space Station

216
00:10:10.919 --> 00:10:14.580
<v Speaker 2>because the Zarya module went up in 1998. We're also

217
00:10:14.679 --> 00:10:18.299
<v Speaker 2>fully over into commercial resupply now. So Roscoff's mostly due

218
00:10:18.350 --> 00:10:22.570
<v Speaker 2>to five deliveries in 2018. But SpaceX does three on

219
00:10:22.629 --> 00:10:26.370
<v Speaker 2>Cargo Dragon. Orbital ATK does three with Cygnus. And JAXA

220
00:10:26.409 --> 00:10:31.909
<v Speaker 2>has one HTV delivery. So a total of, what is that, 12.

221
00:10:31.909 --> 00:10:34.450
<v Speaker 2>And also in November, the InSight lander lands on Mars.

222
00:10:34.509 --> 00:10:37.200
<v Speaker 2>First thing to have landed on Mars since Perseverance. And

223
00:10:37.299 --> 00:10:41.440
<v Speaker 2>it's doing measurements of Mars quakes and interior mapping of Mars.

224
00:10:41.990 --> 00:10:45.990
<v Speaker 2>by looking at reverberations that travel through the planet. And finally,

225
00:10:46.110 --> 00:10:50.720
<v Speaker 2>in December, China launches the Chang'e 4 relay satellite in

226
00:10:50.840 --> 00:10:53.779
<v Speaker 2>preparation for their landing, putting a lander and rover down

227
00:10:53.799 --> 00:10:55.480
<v Speaker 2>on the far side of the moon. They need a

228
00:10:55.519 --> 00:10:57.159
<v Speaker 2>satellite to be able to communicate with the far side

229
00:10:57.179 --> 00:10:59.460
<v Speaker 2>of the moon. So that goes up in 2018. The

230
00:10:59.500 --> 00:11:02.539
<v Speaker 2>big mission will be in 2019. Ready for compute stories?

231
00:11:02.879 --> 00:11:03.200
<v Speaker 1>Yes.

232
00:11:03.720 --> 00:11:05.379
<v Speaker 2>And you always think I have to give you all

233
00:11:05.399 --> 00:11:07.620
<v Speaker 2>the good news. So let's start off in January with

234
00:11:07.720 --> 00:11:10.000
<v Speaker 2>Meltdown Inspector. Okay.

235
00:11:10.039 --> 00:11:10.159
<v Speaker 1>Okay.

236
00:11:10.809 --> 00:11:18.870
<v Speaker 2>So these were discovered potential exploits using a speculative execution

237
00:11:18.889 --> 00:11:23.700
<v Speaker 2>that exists in both AMD and Intel processors. And there

238
00:11:23.740 --> 00:11:25.740
<v Speaker 2>was no security around that. So the theory was that

239
00:11:25.759 --> 00:11:27.879
<v Speaker 2>if you did stuff exactly right, you might be able

240
00:11:27.899 --> 00:11:30.740
<v Speaker 2>to grab data from another virtual machine that was running through.

241
00:11:31.100 --> 00:11:34.179
<v Speaker 2>This exploit has never been found in the wild. Even

242
00:11:34.259 --> 00:11:36.519
<v Speaker 2>attempts to try and utilize it have been largely futile.

243
00:11:36.559 --> 00:11:39.990
<v Speaker 2>But at the time, they really freaked out. And putting

244
00:11:40.029 --> 00:11:44.860
<v Speaker 2>security rules in place caused substantial performance penalties. I think

245
00:11:44.879 --> 00:11:48.720
<v Speaker 2>to talk about literally 20% of available compute disappeared to

246
00:11:48.759 --> 00:11:50.200
<v Speaker 2>fix spectrum and meltdown.

247
00:11:50.480 --> 00:11:50.960
<v Speaker 1>Not good.

248
00:11:51.000 --> 00:11:51.679
<v Speaker 4>Remember that?

249
00:11:51.720 --> 00:11:52.019
<v Speaker 1>Wow.

250
00:11:52.399 --> 00:11:54.759
<v Speaker 2>And adding to my, I don't only have good news

251
00:11:55.039 --> 00:11:59.379
<v Speaker 2>stories in 2018, Google officially removes their don't be evil

252
00:11:59.460 --> 00:12:02.100
<v Speaker 2>from their code of conduct. I mean, they didn't add

253
00:12:02.120 --> 00:12:04.139
<v Speaker 2>be evil, but they just took out the don't be.

254
00:12:04.759 --> 00:12:08.919
<v Speaker 2>And then in March, uh, The Cambridge Analytica scandal. Oh, yes.

255
00:12:09.259 --> 00:12:12.000
<v Speaker 2>Where Cambridge Analytica had mined Facebook data in a way

256
00:12:12.019 --> 00:12:15.220
<v Speaker 2>that not even Facebook had thought about and was very

257
00:12:15.279 --> 00:12:19.620
<v Speaker 2>effective at doing things like creating ads for individuals where

258
00:12:19.639 --> 00:12:22.649
<v Speaker 2>the individual didn't realize they're the only ones seeing the ad.

259
00:12:22.970 --> 00:12:26.389
<v Speaker 2>A very effective strategy for getting a group of English

260
00:12:26.429 --> 00:12:29.110
<v Speaker 2>people to vote against their best interests and exit the EU.

261
00:12:29.269 --> 00:12:31.230
<v Speaker 1>Now we have Facebook and nobody cares.

262
00:12:31.250 --> 00:12:32.169
<v Speaker 2>There you go. Yeah.

263
00:12:32.330 --> 00:12:32.929
<v Speaker 1>Targeted ad.

264
00:12:33.029 --> 00:12:37.110
<v Speaker 2>And in April, Belgium declares... video game loot box systems

265
00:12:37.149 --> 00:12:40.590
<v Speaker 2>to be gambling and illegal for minors, which it is.

266
00:12:40.610 --> 00:12:46.549
<v Speaker 2>I don't disagree with them. Interesting problem. Yeah. Don't manipulate children, please. Well,

267
00:12:46.889 --> 00:12:50.029
<v Speaker 2>not too heavily. And then in May, the GDPR is enacted.

268
00:12:50.490 --> 00:12:53.210
<v Speaker 2>It's been in development for a few years. This is

269
00:12:53.250 --> 00:12:56.129
<v Speaker 2>why you have to keep agreeing to cookies as well

270
00:12:56.169 --> 00:12:57.500
<v Speaker 2>as a bunch of other things like the right to

271
00:12:57.529 --> 00:13:02.840
<v Speaker 2>be forgotten and serious fines for not being forthright with breaches.

272
00:13:03.120 --> 00:13:03.299
<v Speaker 5>Yeah.

273
00:13:03.639 --> 00:13:05.500
<v Speaker 2>Um, over on the Microsoft side of things, it may,

274
00:13:05.519 --> 00:13:10.570
<v Speaker 2>we have build 2018, which ships.net core 2.1. But also,

275
00:13:10.590 --> 00:13:12.429
<v Speaker 2>and I realized this in hindsight, when I was putting

276
00:13:12.450 --> 00:13:15.210
<v Speaker 2>this together is sort of the first wave of AI stuff.

277
00:13:15.230 --> 00:13:17.710
<v Speaker 2>Remember visual studio and telecode? I think we did a

278
00:13:17.769 --> 00:13:18.269
<v Speaker 2>show on it.

279
00:13:18.370 --> 00:13:18.830
<v Speaker 4>Yeah. Yeah.

280
00:13:18.850 --> 00:13:18.990
<v Speaker 3>Yeah.

281
00:13:19.090 --> 00:13:21.429
<v Speaker 2>Where it wasn't an, you know, we're really talking about having,

282
00:13:21.529 --> 00:13:24.320
<v Speaker 2>helping to generate code for testing and things. It's also

283
00:13:24.360 --> 00:13:27.940
<v Speaker 2>the year they ship ml.net machine learning.net for, for doing

284
00:13:27.980 --> 00:13:28.700
<v Speaker 2>models that way.

285
00:13:28.720 --> 00:13:29.059
<v Speaker 5>Right.

286
00:13:29.350 --> 00:13:32.409
<v Speaker 2>And certainly last but not least, for the build announcements,

287
00:13:32.480 --> 00:13:35.059
<v Speaker 2>one of the ones that I jumped over was Azure Sphere.

288
00:13:35.120 --> 00:13:37.620
<v Speaker 2>Do you remember this? This is when Microsoft starts building

289
00:13:37.659 --> 00:13:41.500
<v Speaker 2>their own flavor of a Linux operating system for IoT.

290
00:13:42.570 --> 00:13:45.370
<v Speaker 2>It's subsequently been phased out now, but for a few

291
00:13:45.409 --> 00:13:48.149
<v Speaker 2>years here, it's like, Microsoft makes their own Linux. I

292
00:13:48.210 --> 00:13:48.549
<v Speaker 2>love that.

293
00:13:48.710 --> 00:13:48.870
<v Speaker 5>Mm-hmm.

294
00:13:49.490 --> 00:13:51.210
<v Speaker 2>Later in the year, in October, well, actually it was

295
00:13:51.250 --> 00:13:54.320
<v Speaker 2>announced in June, but completed in October, Microsoft acquires GitHub

296
00:13:54.340 --> 00:13:59.120
<v Speaker 2>for $ 7. 5 billion. And our friend, Nat Friedman, formerly of Xamarin,

297
00:13:59.179 --> 00:14:02.679
<v Speaker 2>now a Microsoft employee, becomes the new CEO of GitHub.

298
00:14:02.860 --> 00:14:04.700
<v Speaker 2>We get Core 2.2 at the end of the year

299
00:14:04.720 --> 00:14:05.600
<v Speaker 2>in December. Yeah.

300
00:14:05.779 --> 00:14:07.360
<v Speaker 4>A couple other compute stories.

301
00:14:08.019 --> 00:14:10.649
<v Speaker 2>This is the year that Elon Musk attempts to take

302
00:14:10.750 --> 00:14:13.529
<v Speaker 2>over OpenAI from his partners and gets booted out of it.

303
00:14:13.529 --> 00:14:15.509
<v Speaker 2>And he's still angry about that and purse fights with

304
00:14:15.549 --> 00:14:16.769
<v Speaker 2>Sam Altman on regular basis.

305
00:14:16.950 --> 00:14:19.110
<v Speaker 1>Yeah, because... That's where he is right now.

306
00:14:19.309 --> 00:14:22.539
<v Speaker 2>Because reasons, because I realized all the same, the same

307
00:14:22.600 --> 00:14:25.759
<v Speaker 2>year that he flies the biggest rocket in history into

308
00:14:25.799 --> 00:14:28.860
<v Speaker 2>space and puts a sports car into space, which still orbiting,

309
00:14:28.879 --> 00:14:32.259
<v Speaker 2>you know, between the earth and Mars also, you know,

310
00:14:32.370 --> 00:14:36.649
<v Speaker 2>call some guy trying to save children in Thailand, a pedophile, uh,

311
00:14:36.730 --> 00:14:39.899
<v Speaker 2>also tries to hijack the AI company. Yeah. Uh, We're

312
00:14:39.940 --> 00:14:43.210
<v Speaker 2>coming into the period of excitement as we're going through

313
00:14:43.230 --> 00:14:47.470
<v Speaker 2>these next few years in quantum computing. And in 2018,

314
00:14:47.470 --> 00:14:50.610
<v Speaker 2>there was a very important paper published, the NISC paper,

315
00:14:50.669 --> 00:14:54.250
<v Speaker 2>which means Noisy Intermediate Scale Quantum, this paper by John Preskill.

316
00:14:55.149 --> 00:14:59.549
<v Speaker 2>This is the point where companies are starting to build qubits,

317
00:14:59.929 --> 00:15:03.289
<v Speaker 2>build these chandelier dipped in liquid helium style computers that

318
00:15:03.309 --> 00:15:06.250
<v Speaker 2>have about 50 qubits or so forth. And in this paper,

319
00:15:06.269 --> 00:15:08.490
<v Speaker 2>he talks about it's all going to be about error correction.

320
00:15:09.220 --> 00:15:10.860
<v Speaker 2>that we're getting out of the lab. These things are

321
00:15:10.879 --> 00:15:12.340
<v Speaker 2>going to be able to do certain levels of compute,

322
00:15:12.360 --> 00:15:15.610
<v Speaker 2>but without really fault tolerance in this, you're not going

323
00:15:15.629 --> 00:15:20.049
<v Speaker 2>to be able to get much done. And that sets

324
00:15:20.149 --> 00:15:22.529
<v Speaker 2>up Google, who's driving a lot of this stuff with

325
00:15:22.570 --> 00:15:26.549
<v Speaker 2>their quantum toolkit, aimed at researchers for testing what prototype

326
00:15:26.570 --> 00:15:28.940
<v Speaker 2>hardware could do, which is funny because next year they'll

327
00:15:29.240 --> 00:15:32.919
<v Speaker 2>actually produce the second market process. So obviously Google was anticipated.

328
00:15:33.419 --> 00:15:33.919
<v Speaker 2>And that's what I got.

329
00:15:34.250 --> 00:15:34.570
<v Speaker 4>All right.

330
00:15:34.610 --> 00:15:38.730
<v Speaker 1>Well, before we bring Don on, let's talk about Better

331
00:15:38.750 --> 00:15:40.149
<v Speaker 1>Know Framework. Roll the music.

332
00:15:40.230 --> 00:15:40.490
<v Speaker 5>Awesome.

333
00:15:40.809 --> 00:15:43.870
<v Speaker 3>All right, man.

334
00:15:44.230 --> 00:15:51.399
<v Speaker 1>What do you got? Guess who's back in Better Know Framework?

335
00:15:51.539 --> 00:15:57.080
<v Speaker 2>I think I know. He's Australian. It's Simon.

336
00:15:57.320 --> 00:15:57.860
<v Speaker 4>It's Simon.

337
00:15:58.539 --> 00:16:05.009
<v Speaker 1>So he belongs to our Appfee Next Slack channel. And

338
00:16:05.210 --> 00:16:08.519
<v Speaker 1>he basically knew that I had done some work into

339
00:16:08.600 --> 00:16:14.480
<v Speaker 1>looking into serializing link queries and passing them from client

340
00:16:14.519 --> 00:16:18.820
<v Speaker 1>to server and pretty much gave up. And there was

341
00:16:18.860 --> 00:16:23.049
<v Speaker 1>a whole smattering of GitHub repos out there of people

342
00:16:23.090 --> 00:16:26.149
<v Speaker 1>who attempted it. And I tried like 50% of them

343
00:16:26.169 --> 00:16:29.090
<v Speaker 1>and they all failed. And so he came up with

344
00:16:29.129 --> 00:16:33.559
<v Speaker 1>this thing called SCRY, S-C-R-Y, or maybe it's SCARY. I

345
00:16:33.580 --> 00:16:33.799
<v Speaker 1>don't know.

346
00:16:33.879 --> 00:16:34.559
<v Speaker 2>Or Scree.

347
00:16:34.759 --> 00:16:35.379
<v Speaker 1>Or Scree?

348
00:16:35.440 --> 00:16:35.700
<v Speaker 4>Yeah.

349
00:16:35.779 --> 00:16:38.860
<v Speaker 1>He doesn't have a pronunciation legend, but he says it's

350
00:16:38.919 --> 00:16:43.070
<v Speaker 1>a type-safe serializable link from a client to a server

351
00:16:43.159 --> 00:16:47.470
<v Speaker 1>side EF core model. And I had told him, and

352
00:16:47.750 --> 00:16:52.590
<v Speaker 1>both Mateus Carvalho and I had worked on this before,

353
00:16:52.629 --> 00:16:56.169
<v Speaker 1>and Mateus came up with something, and I came up

354
00:16:56.190 --> 00:17:01.740
<v Speaker 1>with something, AVN repository, that basically tells Did the same,

355
00:17:01.779 --> 00:17:07.279
<v Speaker 1>but I used classes and serialized those classes for filtering

356
00:17:07.380 --> 00:17:11.099
<v Speaker 1>and basically all aspects of a SQL query, a link query, right?

357
00:17:11.640 --> 00:17:14.660
<v Speaker 1>A where, an order by, all of that stuff just

358
00:17:14.720 --> 00:17:16.269
<v Speaker 1>turned into data and passed in.

359
00:17:16.289 --> 00:17:16.809
<v Speaker 2>And it works.

360
00:17:17.349 --> 00:17:23.150
<v Speaker 1>But as Simon pointed out, it's not as efficient as

361
00:17:23.190 --> 00:17:26.289
<v Speaker 1>what he's doing. Yeah. So this is, and he has a,

362
00:17:26.950 --> 00:17:28.650
<v Speaker 1>there's two links. We're going to give you a link

363
00:17:28.670 --> 00:17:32.109
<v Speaker 1>to the scary or the scry or scree project. And

364
00:17:32.170 --> 00:17:36.549
<v Speaker 1>then there's this doc querying MD composing a query at runtime.

365
00:17:37.990 --> 00:17:41.079
<v Speaker 1>And so he just talks about how to do that,

366
00:17:41.150 --> 00:17:47.480
<v Speaker 1>how to create projections and computer projection members. It's really cool. And,

367
00:17:47.700 --> 00:17:49.039
<v Speaker 1>and it works interesting.

368
00:17:49.180 --> 00:17:50.299
<v Speaker 2>And so, yeah.

369
00:17:50.420 --> 00:17:54.960
<v Speaker 1>And, and so, yeah. Um, Simon, you win the prize.

370
00:17:55.220 --> 00:17:55.960
<v Speaker 2>You're awesome.

371
00:17:56.319 --> 00:17:59.240
<v Speaker 1>You're the first person I know who has actually done this.

372
00:17:59.849 --> 00:18:02.930
<v Speaker 1>And maybe I just resigned and said, I can't be done.

373
00:18:02.990 --> 00:18:06.190
<v Speaker 1>And maybe it was done, you know, long before that.

374
00:18:06.309 --> 00:18:06.670
<v Speaker 2>I don't know.

375
00:18:06.950 --> 00:18:09.190
<v Speaker 4>But that reminds me of link to rest.

376
00:18:09.650 --> 00:18:12.690
<v Speaker 1>Oh, link to rest. Well, that sounds exactly like what

377
00:18:12.730 --> 00:18:13.230
<v Speaker 1>I was doing.

378
00:18:13.410 --> 00:18:14.049
<v Speaker 2>Yeah. Yeah.

379
00:18:14.069 --> 00:18:16.170
<v Speaker 4>Because it was the inverse.

380
00:18:16.430 --> 00:18:16.670
<v Speaker 3>Right.

381
00:18:16.769 --> 00:18:21.059
<v Speaker 4>Where you, well, you created from a link query, you

382
00:18:21.220 --> 00:18:23.740
<v Speaker 4>could create a query string.

383
00:18:23.980 --> 00:18:24.269
<v Speaker 3>Right.

384
00:18:24.420 --> 00:18:26.119
<v Speaker 1>But you couldn't put it back on the other side

385
00:18:26.140 --> 00:18:28.750
<v Speaker 1>and turn it into a link query, which is, which

386
00:18:28.789 --> 00:18:30.529
<v Speaker 1>is what he's doing. And what I wanted to do

387
00:18:30.589 --> 00:18:34.109
<v Speaker 1>as well, right? Because you've got a form and it's

388
00:18:34.150 --> 00:18:36.289
<v Speaker 1>got a whole bunch of search parameters. And if your

389
00:18:36.309 --> 00:18:38.289
<v Speaker 1>data is local, great link query.

390
00:18:38.789 --> 00:18:41.009
<v Speaker 4>Well, no, so it did it the other way too.

391
00:18:41.450 --> 00:18:42.690
<v Speaker 1>If it's behind an API.

392
00:18:43.529 --> 00:18:48.039
<v Speaker 4>Link to REST, it would, it was an ASP.NET. It

393
00:18:48.059 --> 00:18:52.369
<v Speaker 4>was NBC, ASP.NET. It would, take that query string and

394
00:18:52.410 --> 00:18:54.630
<v Speaker 4>then turn it into a link.

395
00:18:54.950 --> 00:19:00.160
<v Speaker 1>Oh, okay. Well, that's great. Link to rest, rest to link. Okay. Well,

396
00:19:00.339 --> 00:19:02.960
<v Speaker 1>check out scary or scree or scry or whatever it is.

397
00:19:03.960 --> 00:19:06.349
<v Speaker 1>And ask Simon how to pronounce this thing.

398
00:19:06.369 --> 00:19:06.990
<v Speaker 2>Cause I don't know.

399
00:19:07.509 --> 00:19:08.990
<v Speaker 4>I'm sure there's a difference, but yeah.

400
00:19:09.109 --> 00:19:09.369
<v Speaker 5>Right.

401
00:19:09.609 --> 00:19:11.509
<v Speaker 4>I just remember link to rest.

402
00:19:11.930 --> 00:19:13.910
<v Speaker 1>Well, Richard, who's talking to us today?

403
00:19:14.029 --> 00:19:16.650
<v Speaker 2>Grabbed a comment off show 1994, the one we did

404
00:19:16.670 --> 00:19:19.470
<v Speaker 2>with our friend Brady Gaster, talking about Squad. A lot

405
00:19:19.490 --> 00:19:20.630
<v Speaker 2>of good comments on that show.

406
00:19:20.710 --> 00:19:20.890
<v Speaker 3>Yeah.

407
00:19:21.130 --> 00:19:24.650
<v Speaker 2>And this one comes from Paula Pinto, who says, while

408
00:19:24.769 --> 00:19:27.349
<v Speaker 2>interesting as always, the whole Squad enthusiasm was pretty much

409
00:19:27.390 --> 00:19:30.890
<v Speaker 2>focused on single developer workflow. Now not having to depend

410
00:19:30.930 --> 00:19:33.400
<v Speaker 2>on anyone else to do related development tasks. It was

411
00:19:33.539 --> 00:19:37.039
<v Speaker 2>all about their nicknamed agents without any ethical discussion of

412
00:19:37.079 --> 00:19:40.640
<v Speaker 2>what tooling like Squad will have in developer teams. I've

413
00:19:40.660 --> 00:19:43.119
<v Speaker 2>already observed how teams have been downsized. Thank the SaaS

414
00:19:43.160 --> 00:19:45.789
<v Speaker 2>products for placing the need for backend developers, AI tooling

415
00:19:45.809 --> 00:19:47.670
<v Speaker 2>doing the work of team members that used to do

416
00:19:47.690 --> 00:19:50.890
<v Speaker 2>translations or asset creations for CMS platforms. Now we get

417
00:19:50.930 --> 00:19:54.099
<v Speaker 2>tools like Squad reducing even further the amount of humans

418
00:19:54.140 --> 00:19:56.480
<v Speaker 2>in the loop, getting celebrated for what a single developer

419
00:19:56.500 --> 00:19:58.559
<v Speaker 2>could choose while taking into account the repercussions it has

420
00:19:59.000 --> 00:20:00.839
<v Speaker 2>on those that are deemed no longer needed to be

421
00:20:00.859 --> 00:20:01.740
<v Speaker 2>kept around as employees.

422
00:20:01.819 --> 00:20:03.259
<v Speaker 1>Unless you didn't have a team to begin with.

423
00:20:03.319 --> 00:20:05.720
<v Speaker 2>In a late capitalism-driven society, if $ 5 can do what...

424
00:20:06.690 --> 00:20:08.829
<v Speaker 2>work of 20 developers thanks to tooling like squad the

425
00:20:08.869 --> 00:20:10.609
<v Speaker 2>remaining 15 are out of the company like an old

426
00:20:10.630 --> 00:20:12.910
<v Speaker 2>detroit they will need to find work that isn't yet taken.

427
00:20:12.710 --> 00:20:15.880
<v Speaker 1>By ai unless you didn't start with a team yeah

428
00:20:16.000 --> 00:20:17.299
<v Speaker 1>you were always one guy.

429
00:20:18.039 --> 00:20:20.819
<v Speaker 2>But i also think it's kind of a short-sighted mindset

430
00:20:20.859 --> 00:20:24.299
<v Speaker 2>too because i'm seeing more nobody team's not getting laid

431
00:20:24.339 --> 00:20:26.400
<v Speaker 2>out but just working on the other stuff they hadn't

432
00:20:26.440 --> 00:20:29.160
<v Speaker 2>gotten to like the joke for years was none of

433
00:20:29.220 --> 00:20:30.750
<v Speaker 2>us would get to the bottom of our to-do list

434
00:20:32.079 --> 00:20:35.559
<v Speaker 2>And now we're getting through the feature lists and starting

435
00:20:35.579 --> 00:20:38.619
<v Speaker 2>to get into tech debt. And then other features start

436
00:20:38.700 --> 00:20:43.460
<v Speaker 2>to appear. It's only the shortest-sighted of companies that would

437
00:20:43.500 --> 00:20:46.640
<v Speaker 2>work on one thing and not think, what are the

438
00:20:46.680 --> 00:20:48.309
<v Speaker 2>other things we could do? You've got a group of

439
00:20:48.349 --> 00:20:51.049
<v Speaker 2>people who are now more powerful. Utilize them.

440
00:20:51.069 --> 00:20:52.970
<v Speaker 1>You take all those people on the team, give them

441
00:20:53.049 --> 00:20:57.279
<v Speaker 1>all a unique task, give them their AI tools. And

442
00:20:57.500 --> 00:20:59.789
<v Speaker 1>set them free. And before you know it, you're through

443
00:20:59.880 --> 00:21:00.619
<v Speaker 1>all of those things.

444
00:21:00.869 --> 00:21:01.089
<v Speaker 5>Yeah.

445
00:21:01.200 --> 00:21:02.460
<v Speaker 1>Technical debt's a big one.

446
00:21:02.589 --> 00:21:05.150
<v Speaker 2>I also think there is a larger conversation about what

447
00:21:05.210 --> 00:21:09.069
<v Speaker 2>the shape of teams looks like with these tools going forward. Right.

448
00:21:09.289 --> 00:21:10.430
<v Speaker 2>We're still in early days.

449
00:21:10.789 --> 00:21:14.170
<v Speaker 4>I've been running into folks who, in the startup community,

450
00:21:14.230 --> 00:21:16.390
<v Speaker 4>are saying they don't need developers anymore.

451
00:21:16.970 --> 00:21:19.190
<v Speaker 2>Yeah. That doesn't seem true.

452
00:21:20.710 --> 00:21:23.650
<v Speaker 4>Somebody I ran into, he just came back from two

453
00:21:23.670 --> 00:21:27.670
<v Speaker 4>weeks of a startup incubator, and he was saying, Of

454
00:21:27.750 --> 00:21:31.490
<v Speaker 4>the 20 or so startups there, none of them had developers.

455
00:21:31.569 --> 00:21:31.809
<v Speaker 3>Yeah.

456
00:21:31.930 --> 00:21:32.150
<v Speaker 4>Right.

457
00:21:32.309 --> 00:21:33.289
<v Speaker 1>That's easy to understand.

458
00:21:33.869 --> 00:21:35.950
<v Speaker 2>Sure. All right, Paulo. Thank you so much for your comment.

459
00:21:36.049 --> 00:21:37.410
<v Speaker 2>And a copy of Music Code Buy is on its

460
00:21:37.430 --> 00:21:38.569
<v Speaker 2>way to you. And if you'd like a copy of

461
00:21:38.589 --> 00:21:42.369
<v Speaker 2>Music Code Buy, write a comment on the website at. netronics. com

462
00:21:41.690 --> 00:21:43.500
<v Speaker 2>or on the Facebooks. We publish every show there. And

463
00:21:43.539 --> 00:21:45.000
<v Speaker 2>if you comment there and I read it on the show,

464
00:21:45.460 --> 00:21:46.690
<v Speaker 2>we'll send you a copy of Music Code Buy.

465
00:21:46.700 --> 00:21:52.599
<v Speaker 1>Or you could just go to musictocodebuy.net and get it yourself. MP3, WAV,

466
00:21:52.700 --> 00:21:56.240
<v Speaker 1>and FLAC formats. Go ahead. You know you want it.

467
00:21:59.170 --> 00:22:01.809
<v Speaker 1>All right, let's bring on Don Demsack. Don is a

468
00:22:01.849 --> 00:22:05.809
<v Speaker 1>technology leader dedicated to strengthening the tech ecosystem in Central

469
00:22:05.849 --> 00:22:09.430
<v Speaker 1>Pennsylvania and beyond. His day job is with a major

470
00:22:09.470 --> 00:22:14.279
<v Speaker 1>technology company's infrastructure group where he helps CIOs and CTOs

471
00:22:14.380 --> 00:22:19.140
<v Speaker 1>think like COOs. His nights and weekends go to volunteering

472
00:22:19.200 --> 00:22:21.700
<v Speaker 1>as a board member of the Technology Council of Central

473
00:22:21.720 --> 00:22:26.569
<v Speaker 1>PA and as an active member of Tech Lancaster. You

474
00:22:26.589 --> 00:22:29.970
<v Speaker 1>can find his latest ramblings over on Substack. This is

475
00:22:30.039 --> 00:22:32.420
<v Speaker 1>his fourth trip to. NET Rocks and the first in

476
00:22:32.460 --> 00:22:33.400
<v Speaker 1>almost 20 years.

477
00:22:33.940 --> 00:22:34.740
<v Speaker 2>It's been too long.

478
00:22:35.019 --> 00:22:40.140
<v Speaker 1>Dude, I remember your first episode. It was during the

479
00:22:40.200 --> 00:22:44.140
<v Speaker 1>Rory years. So it's episode 62. Rory years were 50

480
00:22:44.140 --> 00:22:49.970
<v Speaker 1>to 100. And he somehow convinced you to come up

481
00:22:50.009 --> 00:22:52.130
<v Speaker 1>to the studio. And you were there in the studio

482
00:22:52.170 --> 00:22:53.250
<v Speaker 1>for us, with us.

483
00:22:53.769 --> 00:22:54.589
<v Speaker 4>Yep. And you remember.

484
00:22:55.099 --> 00:22:57.539
<v Speaker 1>Richard Roy used to do the Google weirdos thing.

485
00:22:57.720 --> 00:22:58.000
<v Speaker 5>Right.

486
00:22:59.799 --> 00:23:03.039
<v Speaker 1>So just for people who don't remember, he would look,

487
00:23:03.059 --> 00:23:08.460
<v Speaker 1>he had a blog, popular blog, neopolian.com. And it was

488
00:23:08.779 --> 00:23:14.640
<v Speaker 1>hysterical and very, very surreal. And he took it down

489
00:23:14.680 --> 00:23:16.809
<v Speaker 1>because he, he wanted to be taken more seriously as

490
00:23:16.829 --> 00:23:19.230
<v Speaker 1>a developer and everybody just wanted comic relief, but he

491
00:23:19.269 --> 00:23:23.670
<v Speaker 1>was very funny. Anyway, he would look at the logs and,

492
00:23:24.390 --> 00:23:28.890
<v Speaker 1>of what people typed into Google and then landed themselves

493
00:23:29.109 --> 00:23:31.609
<v Speaker 1>on his blog, right? He could tell that it came

494
00:23:31.650 --> 00:23:36.579
<v Speaker 1>from Google and the string is in the log, right?

495
00:23:36.599 --> 00:23:37.150
<v Speaker 4>The URL.

496
00:23:38.130 --> 00:23:42.099
<v Speaker 1>And so he would read these and they were just crazy,

497
00:23:42.119 --> 00:23:45.500
<v Speaker 1>what people were looking for. But one of them, and

498
00:23:45.519 --> 00:23:49.740
<v Speaker 1>I remember this specifically, Don, tell Don XML to come

499
00:23:49.799 --> 00:23:51.039
<v Speaker 1>home and take out the garbage.

500
00:23:52.809 --> 00:23:56.930
<v Speaker 4>You just made my wife's week. That is exactly. Make

501
00:23:57.049 --> 00:23:58.470
<v Speaker 4>sure Carl brings that up.

502
00:23:59.190 --> 00:24:00.759
<v Speaker 1>Oh, well, how could we not?

503
00:24:00.779 --> 00:24:03.000
<v Speaker 2>I mean, it's crazy.

504
00:24:03.259 --> 00:24:06.259
<v Speaker 1>But yeah, you used to be Don XML. And then

505
00:24:06.299 --> 00:24:09.759
<v Speaker 1>I think by your third episode, which was 271, it

506
00:24:09.799 --> 00:24:11.740
<v Speaker 1>was Don Demsack on Link to XML.

507
00:24:12.109 --> 00:24:16.599
<v Speaker 4>Yeah. And who did the session before Mike? Do you remember?

508
00:24:16.619 --> 00:24:18.880
<v Speaker 2>Uh, two 70 to 70.

509
00:24:18.880 --> 00:24:20.619
<v Speaker 1>Let's see. I got the list right here.

510
00:24:22.099 --> 00:24:23.779
<v Speaker 2>It's funny. It's all online. That's weird.

511
00:24:23.839 --> 00:24:25.740
<v Speaker 4>Yes, it is. I can tell you.

512
00:24:25.759 --> 00:24:28.779
<v Speaker 1>No, I got it right here. It was Eric Meyer,

513
00:24:29.220 --> 00:24:29.980
<v Speaker 1>Eric Meyer.

514
00:24:30.400 --> 00:24:34.359
<v Speaker 2>Oh, why the Eric Meyer on link on link? Yeah.

515
00:24:34.380 --> 00:24:35.539
<v Speaker 2>The guy who helped create it.

516
00:24:35.599 --> 00:24:37.200
<v Speaker 1>Something he knows a little thing about.

517
00:24:37.509 --> 00:24:37.740
<v Speaker 3>Yeah.

518
00:24:37.809 --> 00:24:42.029
<v Speaker 4>Just a little. Um, if you haven't, he, or, uh,

519
00:24:42.069 --> 00:24:46.339
<v Speaker 4>been paying attention to him, uh, He recently has a

520
00:24:46.380 --> 00:24:48.980
<v Speaker 4>video up on YouTube of a presentation.

521
00:24:49.000 --> 00:24:49.079
<v Speaker 2>AI.

522
00:24:50.640 --> 00:24:58.319
<v Speaker 4>Engineering, around how AI agents got teeth once we allowed

523
00:24:58.440 --> 00:25:03.279
<v Speaker 4>them to do more than just chat when he gave

524
00:25:03.299 --> 00:25:06.579
<v Speaker 4>them access to tools. And he throws out a whole

525
00:25:06.759 --> 00:25:11.529
<v Speaker 4>theory of how we can lock down AI agents by

526
00:25:11.589 --> 00:25:16.039
<v Speaker 4>making them do... mathematical proofs that the stuff that they're

527
00:25:16.059 --> 00:25:22.609
<v Speaker 4>doing won't negatively impact something. It is an awesome video.

528
00:25:22.950 --> 00:25:25.269
<v Speaker 1>Yeah, we need more of that. Absolutely.

529
00:25:25.269 --> 00:25:26.549
<v Speaker 4>100%.

530
00:25:26.549 --> 00:25:30.990
<v Speaker 1>I saw an article that you wrote on LinkedIn, which

531
00:25:31.029 --> 00:25:35.369
<v Speaker 1>was also on your sub stack. Everything that I've seen

532
00:25:35.589 --> 00:25:39.259
<v Speaker 1>from you has been thought-provoking, but this was about the

533
00:25:39.279 --> 00:25:48.039
<v Speaker 1>new MCP 2.0 and how you can't make a stateful

534
00:25:48.279 --> 00:25:53.299
<v Speaker 1>MCP server anymore if you're using 2.0. And so, yeah,

535
00:25:53.339 --> 00:25:55.589
<v Speaker 1>we talked about that. I talked about that with Rocky

536
00:25:55.890 --> 00:26:02.730
<v Speaker 1>on Code with AI. And Richard found your substack and

537
00:26:02.809 --> 00:26:05.529
<v Speaker 1>found some good stuff that you're thinking of and talking about.

538
00:26:05.849 --> 00:26:06.650
<v Speaker 1>And here you are.

539
00:26:06.890 --> 00:26:11.319
<v Speaker 4>Yeah, it ties right back to what Eric is talking about.

540
00:26:11.380 --> 00:26:13.240
<v Speaker 4>It was funny because I've been working on this for

541
00:26:13.279 --> 00:26:20.819
<v Speaker 4>a bit. But this whole idea of how do we

542
00:26:20.980 --> 00:26:22.940
<v Speaker 4>govern these agents better?

543
00:26:23.099 --> 00:26:23.559
<v Speaker 2>Right. Sure.

544
00:26:23.700 --> 00:26:28.259
<v Speaker 4>Everybody. Now, for the last two years, people have been

545
00:26:28.480 --> 00:26:32.279
<v Speaker 4>really complaining about governance. But the big thing everybody now

546
00:26:32.380 --> 00:26:34.240
<v Speaker 4>is complaining about is tokenomics.

547
00:26:34.500 --> 00:26:35.920
<v Speaker 1>Tokenomics.

548
00:26:36.079 --> 00:26:39.420
<v Speaker 4>That's the big thing that everybody is looking because now

549
00:26:39.440 --> 00:26:41.119
<v Speaker 4>there's a cost per token.

550
00:26:41.279 --> 00:26:41.519
<v Speaker 2>Right.

551
00:26:41.599 --> 00:26:46.710
<v Speaker 4>Well, those two things are kind of related. about two

552
00:26:46.730 --> 00:26:49.809
<v Speaker 4>years ago, just over two years ago, through my day job,

553
00:26:50.049 --> 00:26:54.750
<v Speaker 4>I got to see a demo of some agentic AI.

554
00:26:55.509 --> 00:27:01.509
<v Speaker 4>And the demo that they created was really thought-provoking because

555
00:27:01.529 --> 00:27:09.549
<v Speaker 4>it didn't just show what the agents were working on,

556
00:27:09.950 --> 00:27:12.859
<v Speaker 4>but it actually, at the bottom of it, showed the

557
00:27:12.990 --> 00:27:16.599
<v Speaker 4>conversations the agents were actually having with each other. And

558
00:27:17.099 --> 00:27:20.960
<v Speaker 4>I was like, wow, that looks like a Teams or

559
00:27:21.000 --> 00:27:26.839
<v Speaker 4>a Slack conversation. But I'd never thought of agentic AI

560
00:27:27.180 --> 00:27:32.160
<v Speaker 4>in that way. We're software developers. We think about APIs,

561
00:27:32.519 --> 00:27:36.539
<v Speaker 4>application programming interfaces. Now there's this whole idea of a

562
00:27:37.220 --> 00:27:38.700
<v Speaker 4>natural language interface.

563
00:27:38.900 --> 00:27:42.690
<v Speaker 2>Or semi-natural, like The way those tools talk to each

564
00:27:42.789 --> 00:27:47.329
<v Speaker 2>other is not that normal, but I get what you're saying.

565
00:27:47.430 --> 00:27:49.109
<v Speaker 2>It is English of a sort.

566
00:27:49.750 --> 00:27:52.009
<v Speaker 4>And that, that was the thing that jumped out at

567
00:27:52.029 --> 00:27:59.759
<v Speaker 4>me was it was too generic in a team's chat.

568
00:27:59.920 --> 00:28:05.460
<v Speaker 4>You expect a lot of three letter acronyms and very

569
00:28:05.519 --> 00:28:08.849
<v Speaker 4>specific words. for each of the roles that are there.

570
00:28:09.369 --> 00:28:13.089
<v Speaker 4>Think about chat between a DBA, a front end developer

571
00:28:13.130 --> 00:28:16.970
<v Speaker 4>and a middle and a mid tier developer, all the conversations,

572
00:28:17.119 --> 00:28:19.220
<v Speaker 4>all the acronyms that they wind up using.

573
00:28:19.319 --> 00:28:19.539
<v Speaker 2>Yeah.

574
00:28:19.740 --> 00:28:20.920
<v Speaker 4>That was lacking.

575
00:28:21.259 --> 00:28:24.039
<v Speaker 2>It speaks to a lack of common context between the agents.

576
00:28:24.440 --> 00:28:28.160
<v Speaker 4>And that's where my head was going was how do I, that,

577
00:28:28.220 --> 00:28:32.559
<v Speaker 4>that seems to be missing. Um, and as you guys know,

578
00:28:32.619 --> 00:28:35.259
<v Speaker 4>and you've got, you guys had a bunch of over

579
00:28:35.299 --> 00:28:39.950
<v Speaker 4>the years, especially recently, domain-driven design type folks. I was like,

580
00:28:40.410 --> 00:28:42.009
<v Speaker 4>there's no ubiquitous language.

581
00:28:42.549 --> 00:28:42.750
<v Speaker 5>Right.

582
00:28:43.769 --> 00:28:52.130
<v Speaker 4>What if we made these agents speak the ubiquitous language

583
00:28:52.599 --> 00:28:56.500
<v Speaker 4>of the domain that they're in charge of?

584
00:28:56.819 --> 00:28:57.039
<v Speaker 2>Right.

585
00:28:57.319 --> 00:28:59.240
<v Speaker 4>That would be super cool.

586
00:28:59.599 --> 00:29:02.259
<v Speaker 2>And really what you're doing is bracketing their context, right?

587
00:29:02.279 --> 00:29:04.400
<v Speaker 2>That they need to use the correct language.

588
00:29:04.640 --> 00:29:09.339
<v Speaker 4>Correct. And by doing that, there's side effects, lots of

589
00:29:09.380 --> 00:29:13.140
<v Speaker 4>good side effects. If you can constrain them or control

590
00:29:13.200 --> 00:29:17.029
<v Speaker 4>their language, I'm calling it a controlled natural language. Um,

591
00:29:17.390 --> 00:29:20.750
<v Speaker 4>then they can only do what they can express.

592
00:29:21.450 --> 00:29:21.789
<v Speaker 5>Yeah.

593
00:29:22.089 --> 00:29:23.430
<v Speaker 2>And it's another kind of constraint.

594
00:29:23.910 --> 00:29:28.029
<v Speaker 4>Think about the open AI hacking of hugging face.

595
00:29:28.589 --> 00:29:28.829
<v Speaker 5>Right.

596
00:29:28.970 --> 00:29:34.759
<v Speaker 4>Where it had access via MCP to a tool. figured

597
00:29:34.859 --> 00:29:38.990
<v Speaker 4>out how to do something that wasn't desired by that tool.

598
00:29:39.450 --> 00:29:42.569
<v Speaker 4>But if we had a natural, a constrained or controlled

599
00:29:42.609 --> 00:29:45.190
<v Speaker 4>natural language in front of that, then they wouldn't be

600
00:29:45.250 --> 00:29:47.609
<v Speaker 4>able to ask the things that they shouldn't be able

601
00:29:47.630 --> 00:29:48.009
<v Speaker 4>to do.

602
00:29:48.210 --> 00:29:49.190
<v Speaker 2>Yeah.

603
00:29:49.650 --> 00:29:55.769
<v Speaker 4>So that's, and so the term, these are patterns that I,

604
00:29:56.380 --> 00:30:01.279
<v Speaker 4>I'm using for this is instead of bounded context, domain-driven design,

605
00:30:01.740 --> 00:30:05.710
<v Speaker 4>how about bounded agency? So how do we build walls

606
00:30:05.730 --> 00:30:09.910
<v Speaker 4>around what the domain that that particular agent can do,

607
00:30:11.859 --> 00:30:15.279
<v Speaker 4>not via just security, but actually ways to express it?

608
00:30:15.599 --> 00:30:17.220
<v Speaker 4>If they don't have the language to express it, they

609
00:30:17.259 --> 00:30:17.640
<v Speaker 4>can't do it.

610
00:30:17.759 --> 00:30:18.000
<v Speaker 3>Right.

611
00:30:18.160 --> 00:30:21.859
<v Speaker 1>So if you're adding another layer... Doesn't, uh, doesn't that

612
00:30:21.900 --> 00:30:22.960
<v Speaker 1>affect your tokenomics?

613
00:30:23.259 --> 00:30:30.720
<v Speaker 4>That's the other side is now you can actually decrease the, um, the,

614
00:30:31.220 --> 00:30:37.109
<v Speaker 4>the verbiage that's going across. Um, and one of the

615
00:30:37.349 --> 00:30:41.109
<v Speaker 4>major challenges with a natural language as us as humans

616
00:30:41.890 --> 00:30:43.849
<v Speaker 4>is there's a lots of different ways to say the

617
00:30:43.910 --> 00:30:48.289
<v Speaker 4>exact same thing, which leads to ambiguity. Right. And there's, and,

618
00:30:49.519 --> 00:30:53.299
<v Speaker 4>By constraining it or controlling that language, you actually reduce

619
00:30:53.480 --> 00:31:00.019
<v Speaker 4>the actual word count, which you're going to reduce the tokens.

620
00:31:00.240 --> 00:31:03.740
<v Speaker 4>But then you're also decreasing your ambiguity, too, because you

621
00:31:03.759 --> 00:31:05.359
<v Speaker 4>can only say it a certain way.

622
00:31:05.519 --> 00:31:09.900
<v Speaker 1>Well, aren't you using tokens for that intermediate layer that

623
00:31:09.940 --> 00:31:11.250
<v Speaker 1>does the translation?

624
00:31:11.710 --> 00:31:16.130
<v Speaker 4>So originally, that's where I was thinking. But then I

625
00:31:16.150 --> 00:31:17.470
<v Speaker 4>take it one step further.

626
00:31:17.490 --> 00:31:17.779
<v Speaker 5>If I.

627
00:31:18.880 --> 00:31:24.400
<v Speaker 4>can control the language, and so I can control the syntax.

628
00:31:24.440 --> 00:31:27.670
<v Speaker 4>And this goes back to stuff that you guys know

629
00:31:27.690 --> 00:31:30.690
<v Speaker 4>me from, XML. What did I do with XML? I

630
00:31:30.710 --> 00:31:34.329
<v Speaker 4>created domain-specific languages. What did you do with JSON? Create

631
00:31:34.369 --> 00:31:38.279
<v Speaker 4>domain-specific languages. What do we do with Fluent APIs and LINQ?

632
00:31:38.799 --> 00:31:43.720
<v Speaker 4>We created the Fluent APIs and other languages within code. Well,

633
00:31:44.279 --> 00:31:50.519
<v Speaker 4>with all the stuff that's been going on with chat

634
00:31:50.539 --> 00:31:55.940
<v Speaker 4>GPT and natural language processing and stuff that we were

635
00:31:55.980 --> 00:32:00.160
<v Speaker 4>doing with, with link back in the day. What if

636
00:32:00.299 --> 00:32:05.369
<v Speaker 4>I could put a intent compiler in front of the

637
00:32:05.410 --> 00:32:12.069
<v Speaker 4>tool that then parses that text because it's a constrained

638
00:32:12.109 --> 00:32:16.880
<v Speaker 4>natural language. And instead of feeding everything to the model,

639
00:32:17.980 --> 00:32:23.450
<v Speaker 4>what if I if I knew what words mapped to

640
00:32:23.509 --> 00:32:28.450
<v Speaker 4>specific functions, I could actually call those functions instead of

641
00:32:28.490 --> 00:32:31.890
<v Speaker 4>having to pass it through to the agent who would

642
00:32:31.990 --> 00:32:36.250
<v Speaker 4>eventually pass it through to an MCP server somewhere to

643
00:32:36.569 --> 00:32:40.799
<v Speaker 4>actually call the tool. So now I've actually reduced, dramatically

644
00:32:40.859 --> 00:32:44.000
<v Speaker 4>reduced how much is actually going to the models because

645
00:32:44.019 --> 00:32:45.799
<v Speaker 4>I'm pulling some pieces of that.

646
00:32:46.279 --> 00:32:49.599
<v Speaker 1>From this static glossary kind of thing. But, And I

647
00:32:49.660 --> 00:32:52.000
<v Speaker 1>imagine that the best of both worlds would be if

648
00:32:52.119 --> 00:32:54.859
<v Speaker 1>the word doesn't exist in the glossary and it can't

649
00:32:54.920 --> 00:32:57.619
<v Speaker 1>express it in a more concise way, then it would

650
00:32:57.680 --> 00:33:00.740
<v Speaker 1>go out and get definitions for those words and add

651
00:33:00.759 --> 00:33:01.559
<v Speaker 1>them to the domain.

652
00:33:02.309 --> 00:33:05.950
<v Speaker 4>So you, you, you really want to control that language

653
00:33:06.049 --> 00:33:08.190
<v Speaker 4>so that you're controlling what it can do.

654
00:33:08.210 --> 00:33:09.109
<v Speaker 1>Right.

655
00:33:09.130 --> 00:33:15.720
<v Speaker 4>So you would prefer, uh, to keep to, uh, to

656
00:33:15.940 --> 00:33:19.700
<v Speaker 4>programmatically add the new languages. Don't let it do it

657
00:33:19.880 --> 00:33:20.529
<v Speaker 4>on its own.

658
00:33:20.549 --> 00:33:22.410
<v Speaker 1>Well, at least it could make you a list.

659
00:33:22.650 --> 00:33:23.309
<v Speaker 4>A list of it.

660
00:33:24.529 --> 00:33:26.869
<v Speaker 1>Yeah, a list of things that it didn't understand or whatever.

661
00:33:26.990 --> 00:33:31.410
<v Speaker 4>Correct. And you can publish that language. And that's one

662
00:33:31.450 --> 00:33:35.920
<v Speaker 4>of the things that models are great at, converting from

663
00:33:36.059 --> 00:33:37.400
<v Speaker 4>one language to another language.

664
00:33:37.420 --> 00:33:37.640
<v Speaker 2>Right.

665
00:33:38.079 --> 00:33:41.460
<v Speaker 4>So if you have a way to declare that controlled

666
00:33:41.519 --> 00:33:44.059
<v Speaker 4>natural language, it can convert it automatically.

667
00:33:44.519 --> 00:33:47.680
<v Speaker 1>Yeah, that's right. I could see repos for all sorts

668
00:33:47.720 --> 00:33:53.440
<v Speaker 1>of vertical industries, uh, DSLs in used in that way to,

669
00:33:53.640 --> 00:33:57.880
<v Speaker 1>to rein in your LLMs and your tokenomics.

670
00:33:58.700 --> 00:34:01.299
<v Speaker 4>I make it a heck of a lot easier for that.

671
00:34:01.420 --> 00:34:06.799
<v Speaker 4>And so, um, so I actually built, uh, uh, uh,

672
00:34:07.240 --> 00:34:08.900
<v Speaker 4>I built a couple of different things based on that,

673
00:34:08.920 --> 00:34:14.119
<v Speaker 4>but I actually have a, uh, MVP that you can

674
00:34:14.159 --> 00:34:17.570
<v Speaker 4>go pull down from GitHub. It's called Limelight X. Well,

675
00:34:17.730 --> 00:34:19.250
<v Speaker 4>Rush is out this year, right?

676
00:34:19.469 --> 00:34:20.250
<v Speaker 2>Doing the tour.

677
00:34:20.349 --> 00:34:24.409
<v Speaker 4>So Rush fan had to pull that in. So Limelight X.

678
00:34:26.690 --> 00:34:29.840
<v Speaker 4>And so you go there, you can actually go see

679
00:34:29.989 --> 00:34:37.659
<v Speaker 4>how to do this. So you can give it the

680
00:34:37.739 --> 00:34:43.980
<v Speaker 4>natural language, the constrained natural language. give it a text

681
00:34:44.860 --> 00:34:50.469
<v Speaker 4>and it will actually give you the intermediate steps so

682
00:34:50.489 --> 00:34:53.230
<v Speaker 4>you can visualize it. So how do you parse that

683
00:34:53.269 --> 00:34:57.409
<v Speaker 4>apart to an AST? How do you take that AST

684
00:34:58.050 --> 00:35:01.070
<v Speaker 4>and optimize it? Then you take that AST and turn

685
00:35:01.110 --> 00:35:04.650
<v Speaker 4>it into intermediate result, which then gets put into an

686
00:35:04.710 --> 00:35:08.710
<v Speaker 4>expression tree a la link. How do you do that?

687
00:35:08.909 --> 00:35:16.769
<v Speaker 4>Because what I've found is, Most people doing AI engineering,

688
00:35:17.369 --> 00:35:24.210
<v Speaker 4>AI agents, they don't come from our comp sci background. Right.

689
00:35:24.570 --> 00:35:26.989
<v Speaker 4>They come from the dynamic language.

690
00:35:26.809 --> 00:35:27.550
<v Speaker 2>Side of the house.

691
00:35:27.690 --> 00:35:34.500
<v Speaker 4>They're Python and JavaScript type script. So parsing and compiler

692
00:35:34.719 --> 00:35:38.139
<v Speaker 4>theory type stuff is not something that sits in their domain.

693
00:35:38.969 --> 00:35:42.380
<v Speaker 4>While you can do some of that stuff with those languages,

694
00:35:42.420 --> 00:35:45.420
<v Speaker 4>you don't typically do it. So they're not thinking that way.

695
00:35:46.960 --> 00:35:49.619
<v Speaker 4>So how do I get best of both worlds? That's

696
00:35:49.699 --> 00:35:50.599
<v Speaker 4>part of the challenge.

697
00:35:51.059 --> 00:35:52.739
<v Speaker 1>Before we go any further, I think we should take

698
00:35:52.760 --> 00:35:54.880
<v Speaker 1>a little break. You think so, Richard?

699
00:35:55.260 --> 00:35:55.760
<v Speaker 2>Sure, let's do it.

700
00:35:55.760 --> 00:36:00.719
<v Speaker 1>All right, we'll be right back after these very important messages. Hey,

701
00:36:00.780 --> 00:36:04.340
<v Speaker 1>Carl here. You probably know text control is a powerful

702
00:36:04.400 --> 00:36:08.519
<v Speaker 1>library for document editing and PDF generation. But did you

703
00:36:08.559 --> 00:36:11.539
<v Speaker 1>know they're also a strong supporter of the developer community?

704
00:36:12.099 --> 00:36:14.460
<v Speaker 1>It's part of their mission to build and support a

705
00:36:14.519 --> 00:36:18.949
<v Speaker 1>strong developer community by being present, listening to users, and

706
00:36:19.050 --> 00:36:22.670
<v Speaker 1>sharing knowledge at conferences across Europe and the United States.

707
00:36:23.170 --> 00:36:26.269
<v Speaker 1>So if you're heading to a conference soon, check if

708
00:36:26.309 --> 00:36:29.340
<v Speaker 1>Text Control will be there and stop by to say hi.

709
00:36:29.699 --> 00:36:35.920
<v Speaker 1>You can find their full conference calendar at www.textcontrol.com. And

710
00:36:35.960 --> 00:36:38.489
<v Speaker 1>make sure you thank them for supporting. NET Rocks.

711
00:36:42.570 --> 00:36:43.429
<v Speaker 2>And we're back. It's.

712
00:36:43.389 --> 00:36:43.750
<v Speaker 3>NET Rocks.

713
00:36:43.789 --> 00:36:45.210
<v Speaker 2>I'm Richard Campbell. That's Carl Franklin.

714
00:36:45.389 --> 00:36:45.730
<v Speaker 4>Hey.

715
00:36:45.949 --> 00:36:48.590
<v Speaker 2>Talking to our friend Don Demsack a bit about, well,

716
00:36:48.760 --> 00:36:51.460
<v Speaker 2>you just brought up Limelight X as a way to

717
00:36:51.480 --> 00:36:56.920
<v Speaker 2>sort of create a natural language-like set of instructions, which,

718
00:36:56.940 --> 00:36:59.000
<v Speaker 2>I mean, in some ways reminds me of the way

719
00:36:59.039 --> 00:37:03.670
<v Speaker 2>we write specs anyway. Software development is somewhat language. I mean,

720
00:37:03.690 --> 00:37:05.880
<v Speaker 2>you have the programming language is a constraint. But if

721
00:37:05.920 --> 00:37:09.960
<v Speaker 2>you also notice, the average product manager speaks in a

722
00:37:10.099 --> 00:37:14.070
<v Speaker 2>somewhat constrained language. They're trying to communicate with developers, and

723
00:37:14.110 --> 00:37:16.570
<v Speaker 2>developers speak a weird form of English.

724
00:37:18.090 --> 00:37:19.130
<v Speaker 1>Dilbert proved that.

725
00:37:20.289 --> 00:37:23.989
<v Speaker 2>They're really trying to just be very clear on what

726
00:37:24.070 --> 00:37:27.239
<v Speaker 2>the intent is, and I think it serves the LLMs

727
00:37:27.320 --> 00:37:29.900
<v Speaker 2>pretty well to stick with that same kind of language barrier.

728
00:37:29.900 --> 00:37:30.960
<v Speaker 1>100%.

729
00:37:30.960 --> 00:37:35.320
<v Speaker 4>And then domain-driven design never took off.

730
00:37:35.809 --> 00:37:36.030
<v Speaker 2>Yeah.

731
00:37:36.289 --> 00:37:39.110
<v Speaker 4>We all know it works, but one of the side

732
00:37:39.170 --> 00:37:42.949
<v Speaker 4>effects of implementing it is you needed to have a

733
00:37:43.030 --> 00:37:47.780
<v Speaker 4>subject matter expert who can pull that the main logic

734
00:37:48.070 --> 00:37:52.420
<v Speaker 4>out of that, those communications that was very specialized.

735
00:37:52.940 --> 00:37:53.179
<v Speaker 2>Yeah.

736
00:37:53.619 --> 00:38:02.039
<v Speaker 4>Well, nowadays with coding assistance and the spec driven development world,

737
00:38:03.619 --> 00:38:07.760
<v Speaker 4>we are starting to put that context into text documents

738
00:38:07.840 --> 00:38:11.639
<v Speaker 4>that obviously we could use models to start pulling out

739
00:38:11.900 --> 00:38:15.320
<v Speaker 4>that domain-specific language from the specifications.

740
00:38:15.679 --> 00:38:17.909
<v Speaker 1>I would even go one step further and say we're

741
00:38:17.949 --> 00:38:20.550
<v Speaker 1>heading towards, if we're not there already, just not thinking

742
00:38:20.590 --> 00:38:25.369
<v Speaker 1>of it, conversation-based development. In this last episode that I

743
00:38:25.389 --> 00:38:28.710
<v Speaker 1>did with Rocky Latka, he talked about how he and

744
00:38:28.829 --> 00:38:32.250
<v Speaker 1>three other guys sat down to design a system He

745
00:38:32.289 --> 00:38:36.250
<v Speaker 1>whipped out his Android phone, started recording. It made a transcript.

746
00:38:36.690 --> 00:38:39.769
<v Speaker 1>He uploaded that transcript to Claude and said, build me

747
00:38:39.809 --> 00:38:43.920
<v Speaker 1>a spec based on this conversation. Whoa. I mean, talk

748
00:38:43.960 --> 00:38:46.739
<v Speaker 1>about layers, right?

749
00:38:46.860 --> 00:38:48.760
<v Speaker 2>Using the tool as the preprocessor.

750
00:38:49.000 --> 00:38:49.400
<v Speaker 1>Yeah.

751
00:38:50.820 --> 00:38:56.940
<v Speaker 4>It's an interesting space that we're in because that's been

752
00:38:57.000 --> 00:39:00.909
<v Speaker 4>the art of being a developer is has been really

753
00:39:00.989 --> 00:39:06.880
<v Speaker 4>taking these vague requirements and then converting it into code.

754
00:39:07.340 --> 00:39:10.820
<v Speaker 4>What was my favorite, what's the number one thing whenever

755
00:39:10.920 --> 00:39:14.940
<v Speaker 4>I would build something, the business person would typically turn

756
00:39:14.960 --> 00:39:16.760
<v Speaker 4>around and say, I know that's what I asked for,

757
00:39:16.800 --> 00:39:17.920
<v Speaker 4>but that's not what I wanted.

758
00:39:18.340 --> 00:39:18.840
<v Speaker 2>Yeah, right.

759
00:39:20.110 --> 00:39:24.289
<v Speaker 4>Because humans are really, really, really bad at giving requirements. Weird.

760
00:39:24.329 --> 00:39:26.789
<v Speaker 2>Yeah. And in some ways, like you want the domain

761
00:39:26.849 --> 00:39:29.949
<v Speaker 2>expert because they know the space, but they often skip over.

762
00:39:30.179 --> 00:39:32.699
<v Speaker 2>essential parts because they're so knowledgeable in the space. They

763
00:39:32.719 --> 00:39:35.059
<v Speaker 2>don't even realize what they know.

764
00:39:35.280 --> 00:39:35.519
<v Speaker 4>Yeah.

765
00:39:35.659 --> 00:39:35.820
<v Speaker 2>Yeah.

766
00:39:35.980 --> 00:39:39.380
<v Speaker 4>And that's, I mean, because Rocky's been around, he knows

767
00:39:40.000 --> 00:39:43.440
<v Speaker 4>what he needs to put into that. And so how

768
00:39:43.460 --> 00:39:48.570
<v Speaker 4>do you teach that to these new wave of, uh,

769
00:39:50.329 --> 00:39:55.829
<v Speaker 4>coding engineers that are using coding assistants to do that. Well,

770
00:39:57.170 --> 00:40:01.949
<v Speaker 4>we could teach them better requirement skills. And that's one

771
00:40:01.989 --> 00:40:03.989
<v Speaker 4>of the things I started doing a couple of years

772
00:40:04.050 --> 00:40:09.909
<v Speaker 4>ago in prompt engineering was a big rage two years ago.

773
00:40:09.929 --> 00:40:13.289
<v Speaker 4>And now it's context engineering. But when I explain it

774
00:40:14.190 --> 00:40:16.610
<v Speaker 4>to the average person, what a prompt is, I tell

775
00:40:16.630 --> 00:40:21.110
<v Speaker 4>them it's a requirement. Think of it as giving it

776
00:40:21.150 --> 00:40:22.570
<v Speaker 4>a requirement to another human.

777
00:40:22.710 --> 00:40:22.909
<v Speaker 5>Right.

778
00:40:22.969 --> 00:40:26.050
<v Speaker 4>Got to put in all that extra context. And then

779
00:40:26.150 --> 00:40:30.409
<v Speaker 4>because of my agile background, I like to use given

780
00:40:30.449 --> 00:40:34.880
<v Speaker 4>when then, so that as measured by. And then I

781
00:40:34.920 --> 00:40:38.739
<v Speaker 4>would teach people to write their prompts in that structured

782
00:40:38.820 --> 00:40:42.559
<v Speaker 4>form and they get better results out of the engine

783
00:40:42.719 --> 00:40:45.579
<v Speaker 4>because you're giving it all the context that you would need.

784
00:40:45.840 --> 00:40:47.420
<v Speaker 1>Yeah. That's brilliant.

785
00:40:47.559 --> 00:40:50.949
<v Speaker 4>And so that's, And so that's the same problem that

786
00:40:51.250 --> 00:40:58.000
<v Speaker 4>I'm running into with the spec-driven development is while they

787
00:40:58.039 --> 00:41:03.079
<v Speaker 4>have great structure for the documents, how do you build

788
00:41:03.119 --> 00:41:05.559
<v Speaker 4>the tests? Right. What you really kind of need to

789
00:41:05.619 --> 00:41:10.510
<v Speaker 4>be able to do is create, given when then type scenarios,

790
00:41:11.030 --> 00:41:17.409
<v Speaker 4>do more behavior-driven development. So testing for behavior that's expected

791
00:41:17.510 --> 00:41:20.889
<v Speaker 4>or not expected. rather than writing generic tests.

792
00:41:20.949 --> 00:41:24.329
<v Speaker 2>You're right. Domain-driven development is great at defining what we'd

793
00:41:24.449 --> 00:41:28.539
<v Speaker 2>like it to do, but behavior-driven development is much better

794
00:41:28.659 --> 00:41:31.219
<v Speaker 2>at defining what it actually does and if that's what

795
00:41:31.260 --> 00:41:32.059
<v Speaker 2>we really wanted to do.

796
00:41:32.199 --> 00:41:37.199
<v Speaker 4>And then if you could take that, those behavior-driven tests,

797
00:41:37.880 --> 00:41:43.250
<v Speaker 4>now you can also use that to drive the controlled

798
00:41:43.289 --> 00:41:46.769
<v Speaker 4>natural language because you're expressing the behaviors that you're looking for.

799
00:41:47.329 --> 00:41:47.650
<v Speaker 2>And so.

800
00:41:48.800 --> 00:41:54.360
<v Speaker 4>Besides Limelight X, I have a project called VectorRen, V-E-C-T-O-R,

801
00:41:55.400 --> 00:42:01.460
<v Speaker 4>my SVG days, Ren, R-E-N, so two R's. And it

802
00:42:01.590 --> 00:42:06.929
<v Speaker 4>was built with that in mind to show developers how

803
00:42:06.989 --> 00:42:12.250
<v Speaker 4>to build an SVG game, a web-based with JavaScript, with

804
00:42:12.449 --> 00:42:16.469
<v Speaker 4>generic JavaScript, no framework. And so what was the, you

805
00:42:16.489 --> 00:42:19.440
<v Speaker 4>guys remember, what the big game was when we were

806
00:42:19.460 --> 00:42:22.099
<v Speaker 4>trying to do demo SVG back in the day, it

807
00:42:22.119 --> 00:42:23.599
<v Speaker 4>was asteroids. Right.

808
00:42:24.119 --> 00:42:25.590
<v Speaker 1>Oh yeah. So that's right.

809
00:42:25.829 --> 00:42:31.050
<v Speaker 4>There is in half an hour using this methodology, I

810
00:42:31.090 --> 00:42:34.130
<v Speaker 4>describe what the game should do and given one then,

811
00:42:34.150 --> 00:42:40.000
<v Speaker 4>and it generated a simple implementation of asteroids. And you

812
00:42:40.039 --> 00:42:44.239
<v Speaker 4>can go to vector ren.org or go to vector ren, uh,

813
00:42:44.500 --> 00:42:46.989
<v Speaker 4>the GitHub page, uh, out there and you can pull

814
00:42:47.030 --> 00:42:49.949
<v Speaker 4>it down. And it's a very simple way to learn

815
00:42:49.989 --> 00:42:53.909
<v Speaker 4>JavaScript from this point of view, without any of the frameworks,

816
00:42:55.030 --> 00:42:58.800
<v Speaker 4>something simple that, that, that people can actually leverage, uh,

817
00:42:58.940 --> 00:43:03.880
<v Speaker 4>because we have this generation of developers who don't have

818
00:43:03.920 --> 00:43:05.599
<v Speaker 4>the traditional comp side background.

819
00:43:05.619 --> 00:43:05.780
<v Speaker 2>Right.

820
00:43:05.960 --> 00:43:06.179
<v Speaker 5>Yeah.

821
00:43:06.460 --> 00:43:10.159
<v Speaker 2>I'm just thinking about, we're revising this. We've been playing

822
00:43:10.179 --> 00:43:12.510
<v Speaker 2>with what the software development life cycle with these tools

823
00:43:12.570 --> 00:43:16.550
<v Speaker 2>is supposed to look like. And, and I'll, I think

824
00:43:16.570 --> 00:43:19.269
<v Speaker 2>there's a lot more energy put into the context up

825
00:43:19.349 --> 00:43:22.929
<v Speaker 2>front just because the tools will generate lots and lots

826
00:43:22.969 --> 00:43:24.809
<v Speaker 2>of code. It's just most of it is not that

827
00:43:24.849 --> 00:43:27.380
<v Speaker 2>good if you haven't really done a good job of

828
00:43:27.510 --> 00:43:28.820
<v Speaker 2>setting up these constraints.

829
00:43:30.019 --> 00:43:33.500
<v Speaker 4>I've been doing a lot of stuff with AI here

830
00:43:33.519 --> 00:43:37.280
<v Speaker 4>in Central Pennsylvania. One of the interesting feedback I'm getting

831
00:43:37.340 --> 00:43:41.539
<v Speaker 4>from non-traditional developers is we don't care.

832
00:43:42.539 --> 00:43:43.619
<v Speaker 2>Yeah.

833
00:43:44.139 --> 00:43:45.920
<v Speaker 4>It gets the job done, and that's all.

834
00:43:45.840 --> 00:43:46.219
<v Speaker 5>I care about.

835
00:43:46.239 --> 00:43:47.699
<v Speaker 2>You're going to care.

836
00:43:50.960 --> 00:43:54.239
<v Speaker 4>I hit up one of the folks I was talking about.

837
00:43:54.280 --> 00:43:59.690
<v Speaker 4>I was talking about, hey, you're just creating dynamic scripts.

838
00:43:59.710 --> 00:44:06.670
<v Speaker 4>This feels a lot like what JavaScript felt like before jQuery,

839
00:44:06.730 --> 00:44:10.949
<v Speaker 4>before we got V8, before we got TypeScript. We're sending around.

840
00:44:10.969 --> 00:44:13.900
<v Speaker 2>Yeah, before we put constraints around for reliability.

841
00:44:14.400 --> 00:44:20.179
<v Speaker 4>And consistency. So, and I was like, you know, from

842
00:44:20.219 --> 00:44:25.570
<v Speaker 4>a tokenomics point of view, every time you send that text,

843
00:44:26.250 --> 00:44:28.550
<v Speaker 4>you're getting charged for it. Yeah. And so there's a

844
00:44:28.610 --> 00:44:31.860
<v Speaker 4>cost because I don't care. It's cheaper for me to

845
00:44:31.929 --> 00:44:34.409
<v Speaker 4>do that than to spend the time to actually write

846
00:44:35.429 --> 00:44:36.250
<v Speaker 4>the compiled code.

847
00:44:36.269 --> 00:44:39.550
<v Speaker 2>For now, anyway, the costs are going up. But often

848
00:44:39.630 --> 00:44:42.050
<v Speaker 2>the folks don't care because they don't know the consequences.

849
00:44:42.329 --> 00:44:44.030
<v Speaker 4>They don't know good engineering principles.

850
00:44:44.469 --> 00:44:47.090
<v Speaker 2>Yeah, they don't know how the software will bite them later.

851
00:44:47.369 --> 00:44:48.670
<v Speaker 2>It's generally what works right now.

852
00:44:48.769 --> 00:44:50.809
<v Speaker 4>And what I'm seeing is a lot of the vibe

853
00:44:50.869 --> 00:44:54.070
<v Speaker 4>coders realizing that they can only go so far of

854
00:44:54.130 --> 00:44:56.730
<v Speaker 4>vibe coding, and then they start going to coding assistants,

855
00:44:57.670 --> 00:45:00.570
<v Speaker 4>but then they don't know how to create these good

856
00:45:00.639 --> 00:45:03.719
<v Speaker 4>engineering principles. And so I think there's a big market

857
00:45:03.860 --> 00:45:04.460
<v Speaker 4>for that.

858
00:45:04.860 --> 00:45:07.219
<v Speaker 2>So the AKA they're starting to care.

859
00:45:07.760 --> 00:45:11.670
<v Speaker 4>And it makes me sad because as a VB guy,

860
00:45:12.190 --> 00:45:14.670
<v Speaker 4>old school VB guy, isn't that what the C plus

861
00:45:14.710 --> 00:45:16.469
<v Speaker 4>plus people complained about us about?

862
00:45:17.150 --> 00:45:17.409
<v Speaker 2>Yep.

863
00:45:17.449 --> 00:45:18.800
<v Speaker 4>Yeah, we weren't real developers.

864
00:45:19.400 --> 00:45:22.480
<v Speaker 2>Well, Yeah, and again, the argument was, is the software

865
00:45:22.530 --> 00:45:24.989
<v Speaker 2>quality sufficient? And let's face it, we built a lot

866
00:45:25.010 --> 00:45:27.469
<v Speaker 2>of bad quality software, and then we learned, hey, software

867
00:45:27.510 --> 00:45:30.429
<v Speaker 2>quality matters. And you could do it with VB, you

868
00:45:30.449 --> 00:45:32.210
<v Speaker 2>just had to follow some good practices.

869
00:45:32.349 --> 00:45:35.969
<v Speaker 1>I think a lot of that nose turning down at

870
00:45:36.409 --> 00:45:40.599
<v Speaker 1>VB developers was a byproduct of what happened between C

871
00:45:41.440 --> 00:45:46.800
<v Speaker 1>developers and basic developers in the very early days of programming.

872
00:45:48.179 --> 00:45:52.500
<v Speaker 1>Basic with go-tos was looked at as horrible. I was

873
00:45:52.599 --> 00:45:57.380
<v Speaker 1>using Visual Basic and then attending a community college and

874
00:45:57.420 --> 00:46:00.920
<v Speaker 1>the computer science lady, I told her that I was

875
00:46:01.239 --> 00:46:03.480
<v Speaker 1>using Visual Basic. She goes, oh, basic. Oh, you can't

876
00:46:03.519 --> 00:46:04.119
<v Speaker 1>say basic.

877
00:46:04.530 --> 00:46:05.849
<v Speaker 4>No go-tos, no go-tos.

878
00:46:05.909 --> 00:46:09.030
<v Speaker 1>I'm like, no, it's completely changed now. You know, it's

879
00:46:09.110 --> 00:46:11.590
<v Speaker 1>come into its own and they still just, you know,

880
00:46:12.210 --> 00:46:14.929
<v Speaker 1>you get an idea in your mind and it's hard

881
00:46:14.969 --> 00:46:15.349
<v Speaker 1>to shake.

882
00:46:15.630 --> 00:46:18.519
<v Speaker 4>And I don't want to be that Get off my

883
00:46:18.579 --> 00:46:20.659
<v Speaker 4>lawn guy. Yeah, right. And I don't want to be

884
00:46:21.300 --> 00:46:21.900
<v Speaker 4>that old guy.

885
00:46:21.920 --> 00:46:22.300
<v Speaker 1>Nobody does.

886
00:46:22.320 --> 00:46:26.920
<v Speaker 4>I've got the gray hair, fine. But I don't want

887
00:46:26.940 --> 00:46:31.920
<v Speaker 4>to be that guy. Same thing with coding assistants. What

888
00:46:31.940 --> 00:46:34.489
<v Speaker 4>I've been talking about to a lot of folks is

889
00:46:34.860 --> 00:46:39.909
<v Speaker 4>coding assistants is the new IDE. I remember back when

890
00:46:40.030 --> 00:46:43.170
<v Speaker 4>we were talking, you know, Vim was it. You didn't

891
00:46:43.329 --> 00:46:44.030
<v Speaker 4>use Studio.

892
00:46:44.489 --> 00:46:44.730
<v Speaker 3>Right.

893
00:46:44.929 --> 00:46:48.489
<v Speaker 4>IntelliSense. Coding is novel. You had to know it and

894
00:46:48.530 --> 00:46:51.530
<v Speaker 4>remember it in your head and use a text editor.

895
00:46:51.989 --> 00:46:53.769
<v Speaker 4>Real developers use text editors.

896
00:46:54.090 --> 00:46:56.010
<v Speaker 1>I think it took Don Box a long time to

897
00:46:56.050 --> 00:46:58.030
<v Speaker 1>come to grips with the fact that people are going

898
00:46:58.050 --> 00:47:00.500
<v Speaker 1>to use IDEs, not them.

899
00:47:01.599 --> 00:47:03.920
<v Speaker 4>It would be interesting to get his opinion on coding.

900
00:47:03.940 --> 00:47:09.820
<v Speaker 2>You see those positions all over the place. I think

901
00:47:09.840 --> 00:47:11.400
<v Speaker 2>you're making a mistake as soon as you're bound to

902
00:47:11.440 --> 00:47:14.159
<v Speaker 2>a tool. In the end, the goal was to deliver

903
00:47:14.199 --> 00:47:15.059
<v Speaker 2>value to customers.

904
00:47:15.869 --> 00:47:19.469
<v Speaker 4>And then there's this whole, and this ties into Run

905
00:47:19.510 --> 00:47:23.769
<v Speaker 4>As Radio, then there's this whole angle from the IT

906
00:47:23.829 --> 00:47:28.909
<v Speaker 4>admin side of the house where IT admins were doing automation,

907
00:47:28.969 --> 00:47:32.510
<v Speaker 4>but they were doing it via a GUI tool because

908
00:47:33.230 --> 00:47:34.909
<v Speaker 4>IT admins didn't write code.

909
00:47:35.409 --> 00:47:35.610
<v Speaker 3>Right.

910
00:47:35.750 --> 00:47:37.369
<v Speaker 4>That was for the developer world.

911
00:47:37.610 --> 00:47:38.190
<v Speaker 1>Right.

912
00:47:38.710 --> 00:47:40.969
<v Speaker 4>In my day job, what I'm starting to see is

913
00:47:41.190 --> 00:47:46.230
<v Speaker 4>more and more IT admins admins leveraging coding assistance to

914
00:47:46.409 --> 00:47:51.170
<v Speaker 4>actually create better code than they could ever written because

915
00:47:51.449 --> 00:47:54.409
<v Speaker 4>all they ever wrote scripts. This is much better code

916
00:47:55.739 --> 00:47:58.400
<v Speaker 4>and it's making their lives a heck of a lot easier.

917
00:47:58.679 --> 00:48:02.519
<v Speaker 4>So that's just, I mean, that's an unintended consequence, but

918
00:48:02.760 --> 00:48:06.260
<v Speaker 4>it's helping, especially in these days when so many companies,

919
00:48:06.380 --> 00:48:10.760
<v Speaker 4>so many on-prem companies who are using VMware and now

920
00:48:11.010 --> 00:48:13.230
<v Speaker 4>they're kind of A little bit of a backlash. They're

921
00:48:13.269 --> 00:48:16.449
<v Speaker 4>all trying to move off, and now they're more open

922
00:48:16.510 --> 00:48:19.269
<v Speaker 4>to how do I do this automation rather than using

923
00:48:19.329 --> 00:48:19.690
<v Speaker 4>a tool.

924
00:48:20.269 --> 00:48:22.909
<v Speaker 1>One quick correction. I think I misspoke. When I was

925
00:48:23.090 --> 00:48:26.670
<v Speaker 1>in a community college, it wasn't VB. It was Quick Basic.

926
00:48:27.150 --> 00:48:31.570
<v Speaker 1>Quick Basic. Quick Basic was compiled, and it was structured,

927
00:48:31.659 --> 00:48:35.480
<v Speaker 1>and it was great back then. And this computer science

928
00:48:35.539 --> 00:48:36.780
<v Speaker 1>person was like, no go-tos.

929
00:48:37.699 --> 00:48:38.019
<v Speaker 5>Don't say it.

930
00:48:39.579 --> 00:48:41.460
<v Speaker 2>Well, and it's the thing, there's nothing wrong with the language.

931
00:48:41.519 --> 00:48:43.320
<v Speaker 2>It just had a construct that was a problem. Hey,

932
00:48:43.360 --> 00:48:46.369
<v Speaker 2>remember option explicit? Like we did learn.

933
00:48:46.989 --> 00:48:47.349
<v Speaker 3>Sure.

934
00:48:48.849 --> 00:48:50.050
<v Speaker 1>On error, resume next.

935
00:48:50.510 --> 00:48:51.809
<v Speaker 2>Yeah.

936
00:48:53.190 --> 00:48:54.190
<v Speaker 1>I don't have any bugs.

937
00:48:55.030 --> 00:48:55.449
<v Speaker 2>What?

938
00:48:55.969 --> 00:48:56.250
<v Speaker 5>Yeah.

939
00:48:56.269 --> 00:48:58.429
<v Speaker 4>So one of the things that I've been starting to

940
00:48:58.550 --> 00:49:02.579
<v Speaker 4>work with is how do I start creating skills to

941
00:49:02.619 --> 00:49:07.420
<v Speaker 4>be able to help teach these non-developers these good habits?

942
00:49:07.460 --> 00:49:10.219
<v Speaker 4>So like one of the things, That's in a beta

943
00:49:10.260 --> 00:49:15.869
<v Speaker 4>right now is a requirements interrogator skill. So help the

944
00:49:15.969 --> 00:49:20.099
<v Speaker 4>average person create that given when then brief so that

945
00:49:20.139 --> 00:49:24.500
<v Speaker 4>they get better requirements when they're trying to build something.

946
00:49:24.760 --> 00:49:25.960
<v Speaker 2>Yeah, you have to wonder if we're not going to

947
00:49:26.039 --> 00:49:28.570
<v Speaker 2>end up with more opinionated agents that are like, I

948
00:49:29.010 --> 00:49:32.389
<v Speaker 2>can't start building this until I have these broader requirements

949
00:49:32.429 --> 00:49:35.389
<v Speaker 2>settled around those kinds of constraints that are going to

950
00:49:35.409 --> 00:49:39.280
<v Speaker 2>matter for security and architecture and reliability and scalability. all

951
00:49:39.300 --> 00:49:42.099
<v Speaker 2>of the abilities that everyone doesn't care about until they

952
00:49:42.139 --> 00:49:42.860
<v Speaker 2>care about them.

953
00:49:43.260 --> 00:49:43.440
<v Speaker 3>Yeah.

954
00:49:44.139 --> 00:49:46.300
<v Speaker 4>One of them I'm playing with right now is, is

955
00:49:46.440 --> 00:49:49.679
<v Speaker 4>creating a skill to create architectural decision records.

956
00:49:50.199 --> 00:49:50.400
<v Speaker 5>Right.

957
00:49:50.699 --> 00:49:54.519
<v Speaker 4>We've never, I mean, we all always wanted to have them,

958
00:49:55.159 --> 00:49:58.739
<v Speaker 4>but now if I'm using a coding assistant, that helps

959
00:49:58.820 --> 00:50:02.019
<v Speaker 4>make my coding system better. It tells the architecture and

960
00:50:02.059 --> 00:50:04.579
<v Speaker 4>the reasons why we picked certain things.

961
00:50:05.909 --> 00:50:06.110
<v Speaker 2>Yeah.

962
00:50:07.409 --> 00:50:07.550
<v Speaker 3>Yeah.

963
00:50:07.949 --> 00:50:10.730
<v Speaker 2>There's lots to all of that. I mean, again, I

964
00:50:10.750 --> 00:50:12.889
<v Speaker 2>feel like we're just groping around right now trying to

965
00:50:12.929 --> 00:50:13.429
<v Speaker 2>figure out.

966
00:50:13.650 --> 00:50:14.909
<v Speaker 4>It's early days.

967
00:50:15.590 --> 00:50:19.010
<v Speaker 2>What are the, yeah, the tools are shifting. Just remember,

968
00:50:19.030 --> 00:50:21.210
<v Speaker 2>we were trying to develop on. NET in the early

969
00:50:21.250 --> 00:50:24.889
<v Speaker 2>days where every time they got a build out, the

970
00:50:25.110 --> 00:50:28.300
<v Speaker 2>editor changed, the framework had changed, and the language had changed.

971
00:50:28.960 --> 00:50:32.500
<v Speaker 2>Everything you're doing, incorrect. Yeah.

972
00:50:32.579 --> 00:50:34.519
<v Speaker 4>I was part of that early days. I don't even

973
00:50:34.579 --> 00:50:36.780
<v Speaker 4>remember if I ever mentioned it to you guys, but

974
00:50:36.940 --> 00:50:44.500
<v Speaker 4>the framework The client that I had back in 99, 2000,

975
00:50:44.500 --> 00:50:51.429
<v Speaker 4>their president was on the board for Microsoft, and I

976
00:50:51.469 --> 00:50:54.670
<v Speaker 4>was building dashboards for him, and I got introduced to

977
00:50:54.710 --> 00:50:55.809
<v Speaker 4>Project Cool.

978
00:50:55.530 --> 00:50:57.969
<v Speaker 2>Before it was announced. Before it became C Sharp?

979
00:50:57.989 --> 00:50:59.269
<v Speaker 4>Yeah, before 2000, the announcement at PDC 2000.

980
00:50:59.250 --> 00:50:59.369
<v Speaker 3>Yeah.

981
00:51:04.820 --> 00:51:06.179
<v Speaker 2>I think it was actually TechEd, but yeah.

982
00:51:06.219 --> 00:51:06.539
<v Speaker 5>TechEd.

983
00:51:06.719 --> 00:51:08.519
<v Speaker 4>Yeah, it was TechEd. That's where I'm at.

984
00:51:08.739 --> 00:51:12.219
<v Speaker 2>But yeah, but I'm also thinking about the craziness that was.

985
00:51:12.420 --> 00:51:18.179
<v Speaker 2>NET Core in, you know, 2018 or 2016. Because it

986
00:51:18.199 --> 00:51:20.010
<v Speaker 2>took them 18 months to get that first version built

987
00:51:20.050 --> 00:51:22.530
<v Speaker 2>and there were so many previews. And every time you

988
00:51:22.550 --> 00:51:25.010
<v Speaker 2>got a preview, everything shuffled on you. And it just

989
00:51:25.030 --> 00:51:28.590
<v Speaker 2>seems an awful lot like trying to work with Anthropica

990
00:51:28.610 --> 00:51:30.730
<v Speaker 2>or OpenAI or any of these tools right now, where

991
00:51:30.829 --> 00:51:33.500
<v Speaker 2>every time you get A new build, new harness, like

992
00:51:33.559 --> 00:51:37.739
<v Speaker 2>there's so many different components that presuming it works the

993
00:51:37.780 --> 00:51:40.690
<v Speaker 2>same way is crazy. It changes. It changes a lot.

994
00:51:40.869 --> 00:51:43.570
<v Speaker 1>And just like with. NET Core, Richard, I think that

995
00:51:43.590 --> 00:51:47.170
<v Speaker 1>there's still a lot of people not dipping their toes

996
00:51:47.250 --> 00:51:51.170
<v Speaker 1>into AI developer-wise for the very same reason.

997
00:51:52.050 --> 00:51:56.110
<v Speaker 4>So have you guys had anybody on for Microsoft Foundry Local?

998
00:51:56.469 --> 00:51:56.840
<v Speaker 4>Not yet.

999
00:51:57.050 --> 00:51:58.519
<v Speaker 2>Not yet. No, it's on my radar.

1000
00:51:59.199 --> 00:52:02.519
<v Speaker 4>I've been intimate with that. So that's part of what

1001
00:52:02.820 --> 00:52:07.639
<v Speaker 4>the bounded context. Part of what I realized is to

1002
00:52:07.960 --> 00:52:12.010
<v Speaker 4>use these smaller models, you had to be very prescriptive

1003
00:52:12.050 --> 00:52:13.329
<v Speaker 4>in the prompts that you were giving.

1004
00:52:13.530 --> 00:52:13.989
<v Speaker 2>Right, right.

1005
00:52:14.030 --> 00:52:16.349
<v Speaker 4>And when I started writing the code, I didn't want

1006
00:52:16.369 --> 00:52:22.070
<v Speaker 4>to put that code as text into my program. I

1007
00:52:22.110 --> 00:52:24.829
<v Speaker 4>wanted to pull it out. And so I created a

1008
00:52:25.880 --> 00:52:30.719
<v Speaker 4>YAML language that did essentially prompt as a function so

1009
00:52:30.760 --> 00:52:33.199
<v Speaker 4>that you could import it in and create it. And

1010
00:52:33.219 --> 00:52:37.619
<v Speaker 4>there's a couple different prompt as a function frameworks out there.

1011
00:52:39.239 --> 00:52:50.130
<v Speaker 4>BAML is one and DPSY, another where it makes it

1012
00:52:50.269 --> 00:52:54.360
<v Speaker 4>easy to put prompts into your programming languages. The Dipsy

1013
00:52:54.400 --> 00:53:01.969
<v Speaker 4>is Python only. BAML is TypeScript and Python. And so

1014
00:53:02.710 --> 00:53:05.289
<v Speaker 4>I built a framework to be able to do that

1015
00:53:05.849 --> 00:53:07.969
<v Speaker 4>because I was trying to run local models. I was

1016
00:53:08.070 --> 00:53:11.780
<v Speaker 4>running local models on what I'm using now, Copilot Plus PC.

1017
00:53:13.699 --> 00:53:17.159
<v Speaker 4>The Copilot Plus PCs were supposed to be the place

1018
00:53:17.199 --> 00:53:19.400
<v Speaker 4>to be able to run these models. It's just not.

1019
00:53:20.010 --> 00:53:21.829
<v Speaker 4>Not as good as it could have been.

1020
00:53:21.849 --> 00:53:26.030
<v Speaker 2>At 40 tops, that's not a lot. Meantime, I'm looking

1021
00:53:26.070 --> 00:53:29.940
<v Speaker 2>at my RTX 5080 at 1,500 tops and saying, why

1022
00:53:30.000 --> 00:53:32.239
<v Speaker 2>aren't I a co-pilot PC?

1023
00:53:32.420 --> 00:53:36.019
<v Speaker 4>So I am super excited for the new RTX Spark laptops.

1024
00:53:36.519 --> 00:53:38.480
<v Speaker 4>I'll be the first to go buy one of them

1025
00:53:38.980 --> 00:53:39.760
<v Speaker 4>when they come out.

1026
00:53:40.360 --> 00:53:42.760
<v Speaker 2>They're actually going to be a laptop, because right now

1027
00:53:42.800 --> 00:53:44.050
<v Speaker 2>it's a NUC.

1028
00:53:44.679 --> 00:53:48.219
<v Speaker 4>Well, the big difference is the DGX Spark, Right. That's

1029
00:53:48.239 --> 00:53:51.820
<v Speaker 4>the one you're thinking is the RTX Spark. Two separate things.

1030
00:53:52.239 --> 00:53:54.840
<v Speaker 4>The DGX is Linux.

1031
00:53:55.219 --> 00:53:55.440
<v Speaker 3>Right.

1032
00:53:55.480 --> 00:53:59.210
<v Speaker 4>The RTX laptop, which is, that was, it was a nook.

1033
00:53:59.969 --> 00:54:03.650
<v Speaker 4>The RTX is a laptop. It is going to run

1034
00:54:03.690 --> 00:54:04.989
<v Speaker 4>Windows on ARM.

1035
00:54:05.329 --> 00:54:05.530
<v Speaker 2>Right.

1036
00:54:05.590 --> 00:54:07.570
<v Speaker 4>So it's, you could think of it as the Uber

1037
00:54:07.989 --> 00:54:09.090
<v Speaker 4>Co-Pilot Plus piece.

1038
00:54:09.429 --> 00:54:12.150
<v Speaker 2>Possibly, yeah. It'll be interesting. It's one of the things

1039
00:54:12.210 --> 00:54:14.230
<v Speaker 2>I've seen over and over again with the DGX Spark,

1040
00:54:14.250 --> 00:54:17.269
<v Speaker 2>but folks are actually using it is, You end up

1041
00:54:17.309 --> 00:54:22.750
<v Speaker 2>running NVIDIA's models because they're so much better optimized for

1042
00:54:22.849 --> 00:54:27.219
<v Speaker 2>their hardware that you just get vastly better responses or results.

1043
00:54:28.099 --> 00:54:32.559
<v Speaker 2>So it's not a universal anything. Where is our ODBC

1044
00:54:34.360 --> 00:54:37.260
<v Speaker 2>so that you really have some equanimity across all of

1045
00:54:37.340 --> 00:54:40.269
<v Speaker 2>these different products? and can really see what all the

1046
00:54:40.389 --> 00:54:42.690
<v Speaker 2>different hardware solutions can be there. I hate that we're

1047
00:54:42.710 --> 00:54:45.519
<v Speaker 2>building dedicated to hardware solutions, but I get it.

1048
00:54:45.699 --> 00:54:49.679
<v Speaker 4>Part of why I created that prompt as a function

1049
00:54:50.059 --> 00:54:53.440
<v Speaker 4>to make it portable, to describe what's the model, what's the,

1050
00:54:54.380 --> 00:54:58.559
<v Speaker 4>am I using VLR? Am I using Foundry Local? What's

1051
00:54:58.599 --> 00:55:01.820
<v Speaker 4>the model? So I can abstract that away so you

1052
00:55:01.840 --> 00:55:03.619
<v Speaker 4>don't have to worry about it and be able to

1053
00:55:03.989 --> 00:55:05.949
<v Speaker 4>switch it in and out. And so I've got a

1054
00:55:06.170 --> 00:55:10.679
<v Speaker 4>framework for that and I'm, I hit my limit with

1055
00:55:10.699 --> 00:55:13.579
<v Speaker 4>the Copilot Plus PC and I'm waiting for these new

1056
00:55:13.679 --> 00:55:17.099
<v Speaker 4>ones to come out. But that's a whole different conversation

1057
00:55:17.119 --> 00:55:20.139
<v Speaker 4>because there's so many people, so many clients and customers

1058
00:55:20.179 --> 00:55:22.610
<v Speaker 4>I talk to that can't use public models.

1059
00:55:22.690 --> 00:55:23.190
<v Speaker 5>Right, right.

1060
00:55:23.389 --> 00:55:25.250
<v Speaker 2>There's whole classes of work that are just not an

1061
00:55:25.349 --> 00:55:27.570
<v Speaker 2>option to be going, leaving your machine in any way.

1062
00:55:28.110 --> 00:55:31.969
<v Speaker 2>Combined with tokens are only getting more expensive and all

1063
00:55:31.989 --> 00:55:36.230
<v Speaker 2>you can eat is disappearing and The methodologies we've been

1064
00:55:36.369 --> 00:55:39.269
<v Speaker 2>using with the sort of adversarial agent model are just

1065
00:55:39.489 --> 00:55:40.389
<v Speaker 2>mo tokens.

1066
00:55:40.809 --> 00:55:45.869
<v Speaker 4>And smaller models hallucinate less. Right.

1067
00:55:45.989 --> 00:55:47.809
<v Speaker 2>They are more bound.

1068
00:55:47.989 --> 00:55:51.469
<v Speaker 4>And then you bound it by a language, a constrained language,

1069
00:55:51.530 --> 00:55:54.909
<v Speaker 4>a controlled language, and you can reduce it even worse.

1070
00:55:55.090 --> 00:55:59.860
<v Speaker 4>That's kind of where I'm going with this. Still early days.

1071
00:56:00.809 --> 00:56:03.789
<v Speaker 4>I do a lot of Foundry local type stuff, running

1072
00:56:03.929 --> 00:56:09.489
<v Speaker 4>to issues, report bugs. There's a whole Viber community. Folks

1073
00:56:09.510 --> 00:56:12.909
<v Speaker 4>who are interested in getting into dipping their toe in

1074
00:56:12.989 --> 00:56:17.469
<v Speaker 4>how do I inject AI LLMs, highly recommend checking it out.

1075
00:56:17.840 --> 00:56:21.079
<v Speaker 4>It's an easy install. And there's a command line tool

1076
00:56:21.119 --> 00:56:23.000
<v Speaker 4>that you can use just to get started to have

1077
00:56:23.019 --> 00:56:25.989
<v Speaker 4>a chat. Have some fun. And then they've got some

1078
00:56:26.030 --> 00:56:28.860
<v Speaker 4>great SDKs, whatever language you want to use from.

1079
00:56:29.030 --> 00:56:29.840
<v Speaker 2>NET to Rust.

1080
00:56:30.719 --> 00:56:31.340
<v Speaker 1>It's out there.

1081
00:56:31.590 --> 00:56:32.690
<v Speaker 4>I highly recommend it.

1082
00:56:32.920 --> 00:56:34.179
<v Speaker 1>This is good stuff, Don.

1083
00:56:34.679 --> 00:56:35.059
<v Speaker 5>Excellent.

1084
00:56:35.139 --> 00:56:36.460
<v Speaker 2>And it got me thinking.

1085
00:56:36.519 --> 00:56:40.599
<v Speaker 1>Yeah, definitely got us thinking. Where can we find you

1086
00:56:40.719 --> 00:56:42.059
<v Speaker 1>online besides your Substack?

1087
00:56:42.860 --> 00:56:49.719
<v Speaker 4>My Substack and LinkedIn. I do both. LinkedIn, it's marketing

1088
00:56:50.059 --> 00:56:54.949
<v Speaker 4>hell right now. People are all complaining. Um, it's not

1089
00:56:54.989 --> 00:56:59.230
<v Speaker 4>where the developers are. Right. And Substack, I tried Reddit.

1090
00:56:59.769 --> 00:57:06.510
<v Speaker 4>I tried, uh, various Discord servers. Um, my local Lancaster

1091
00:57:06.550 --> 00:57:09.670
<v Speaker 4>folks have a great Slack team. So I'm there, Tech Lancaster.

1092
00:57:10.369 --> 00:57:15.360
<v Speaker 4>Those folks are awesome. But Substack feels like the blogging

1093
00:57:15.420 --> 00:57:18.880
<v Speaker 4>from the old days. It's, it's, it's a good community there.

1094
00:57:18.940 --> 00:57:21.199
<v Speaker 1>So in the Lancaster area, do you find that there

1095
00:57:21.239 --> 00:57:22.559
<v Speaker 1>are many Amish developers there?

1096
00:57:23.539 --> 00:57:26.260
<v Speaker 4>There are some that you'd be surprised.

1097
00:57:26.480 --> 00:57:26.820
<v Speaker 3>Wow.

1098
00:57:26.840 --> 00:57:30.739
<v Speaker 4>You'd be surprised. And I wrote up a whole article on,

1099
00:57:31.219 --> 00:57:34.760
<v Speaker 4>because I'm new to the area, Lancaster feels to me

1100
00:57:34.960 --> 00:57:40.889
<v Speaker 4>like Portland, Oregon 20 years ago. They like that weird,

1101
00:57:41.389 --> 00:57:42.829
<v Speaker 4>let's be weird attitude.

1102
00:57:42.849 --> 00:57:43.389
<v Speaker 2>Right.

1103
00:57:43.489 --> 00:57:47.170
<v Speaker 4>They like the back to nature, had the farming, all

1104
00:57:47.210 --> 00:57:48.130
<v Speaker 4>that sort of stuff.

1105
00:57:48.530 --> 00:57:48.710
<v Speaker 2>Yeah.

1106
00:57:48.730 --> 00:57:49.030
<v Speaker 3>But.

1107
00:57:49.360 --> 00:57:52.679
<v Speaker 4>They also like the tech side and there's two massive

1108
00:57:52.719 --> 00:57:56.179
<v Speaker 4>data centers coming in. Coral Reeve is the big AI

1109
00:57:56.920 --> 00:57:59.519
<v Speaker 4>company is putting a big data center and Google's putting

1110
00:57:59.579 --> 00:58:01.739
<v Speaker 4>a big data center in there. So there's a lot

1111
00:58:01.820 --> 00:58:07.239
<v Speaker 4>of innovation going on in that Amish community. It's an

1112
00:58:07.300 --> 00:58:08.510
<v Speaker 4>interesting time.

1113
00:58:08.889 --> 00:58:09.250
<v Speaker 1>Yeah.

1114
00:58:09.349 --> 00:58:12.070
<v Speaker 4>Most people don't think of it that way, but land

1115
00:58:12.130 --> 00:58:14.269
<v Speaker 4>is a heck of a lot cheaper. They can't build

1116
00:58:14.329 --> 00:58:18.159
<v Speaker 4>any more data centers in, um, Northern Virginia. So they're

1117
00:58:18.199 --> 00:58:21.460
<v Speaker 4>moving north into central PA and south into Richmond.

1118
00:58:21.679 --> 00:58:22.099
<v Speaker 5>Okay.

1119
00:58:23.039 --> 00:58:25.590
<v Speaker 1>Well, you have to keep us apprised. And when you

1120
00:58:25.909 --> 00:58:31.449
<v Speaker 1>trade your first AI training for a shoe fly pie,

1121
00:58:31.510 --> 00:58:38.349
<v Speaker 1>let me know. All right, Don, thanks very much.

1122
00:58:38.409 --> 00:58:39.650
<v Speaker 2>Good to catch up with you again.

1123
00:58:39.949 --> 00:58:41.530
<v Speaker 4>Good to catch up. And let's not make it in

1124
00:58:41.550 --> 00:58:42.309
<v Speaker 4>another 20 years.

1125
00:58:42.530 --> 00:58:46.750
<v Speaker 1>Definitely. And we'll talk to you, dear listener, next time on.

1126
00:58:46.679 --> 00:58:47.420
<v Speaker 1>NET Rocks.

1127
00:59:08.389 --> 00:59:09.969
<v Speaker 5>NET Rocks is brought to you by Frankenstein.

1128
00:59:10.409 --> 00:59:14.920
<v Speaker 3>Net and produced by Plop Studios, a full-service audio, video,

1129
00:59:14.960 --> 00:59:18.280
<v Speaker 3>and post-production facility located physically.

1130
00:59:17.820 --> 00:59:20.559
<v Speaker 5>In New London, Connecticut, and, of course, in the cloud.

1131
00:59:21.260 --> 00:59:23.559
<v Speaker 5>Online at pwop.com.

1132
00:59:24.280 --> 00:59:32.179
<v Speaker 3>Visit our website at dotnetrocks.com for RSS feeds, downloads, mobile apps, comments,

1133
00:59:32.619 --> 00:59:35.079
<v Speaker 3>and access to the full archives going back to show

1134
00:59:35.119 --> 00:59:39.440
<v Speaker 3>number one, recorded in September 2002. And make sure you

1135
00:59:39.480 --> 00:59:42.659
<v Speaker 3>check out our sponsors. They keep us in business. Now

1136
00:59:42.679 --> 00:59:43.519
<v Speaker 3>go write some code.

1137
00:59:44.219 --> 00:59:44.860
<v Speaker 1>See you next time.
