WEBVTT

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

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

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

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

5
00:00:14.039 --> 00:00:16.559
<v Speaker 1>month will get you that and a special dot net

6
00:00:16.640 --> 00:00:20.399
<v Speaker 1>Rocks patron mug. Sign up now at Patreon dot dot

7
00:00:20.440 --> 00:00:36.479
<v Speaker 1>NetRocks dot com. Hey, welcome back to dot net rocks.

8
00:00:36.520 --> 00:00:39.320
<v Speaker 1>I'm Carl Franklin and A'mirchrid Campbell, and we're recording this

9
00:00:39.439 --> 00:00:42.920
<v Speaker 1>right before we leave for dev Intersection in Orlando. But

10
00:00:43.439 --> 00:00:44.479
<v Speaker 1>you are not home, sir.

11
00:00:44.759 --> 00:00:47.439
<v Speaker 2>No, No, It'll all have been over by then. It'll

12
00:00:47.439 --> 00:00:51.439
<v Speaker 2>almost be, you know, Halloween, so right, I'll be in

13
00:00:51.439 --> 00:00:53.520
<v Speaker 2>the Netherlands when this publishes, so something.

14
00:00:53.600 --> 00:00:55.039
<v Speaker 1>But right now, you're not at home, are you?

15
00:00:55.240 --> 00:00:57.560
<v Speaker 2>I am, Yeah, I'm leaving. Oh you are. Literally we're

16
00:00:57.560 --> 00:00:59.159
<v Speaker 2>recording a show and then I'm packing up to head

17
00:00:59.200 --> 00:01:03.039
<v Speaker 2>to the mainland tomorrow. Okay, see you in Orlando, dude.

18
00:01:02.880 --> 00:01:05.439
<v Speaker 1>All right, Okay, I thought you were on a trip before.

19
00:01:06.159 --> 00:01:06.680
<v Speaker 2>Maybe you were.

20
00:01:06.719 --> 00:01:08.239
<v Speaker 1>I don't know. I can't keep track of you. I

21
00:01:08.280 --> 00:01:09.000
<v Speaker 1>don't even want to.

22
00:01:09.079 --> 00:01:11.040
<v Speaker 2>Yeah, me neither. I don't even know where I am,

23
00:01:11.640 --> 00:01:12.359
<v Speaker 2>Wait a minute, are you?

24
00:01:13.040 --> 00:01:14.519
<v Speaker 1>Who are you? What'd you do with Richard Mind?

25
00:01:15.040 --> 00:01:16.000
<v Speaker 2>I'm just another AI.

26
00:01:16.480 --> 00:01:20.200
<v Speaker 1>Yeah right, uh well, let's you know, since this is

27
00:01:20.359 --> 00:01:24.040
<v Speaker 1>episode nineteen seventy four, let's talk about what happened that year,

28
00:01:24.200 --> 00:01:25.799
<v Speaker 1>shall we before we do anything else.

29
00:01:25.959 --> 00:01:29.040
<v Speaker 2>Oh, it's an exciting year. It's an exciting year. Nixon.

30
00:01:29.120 --> 00:01:30.560
<v Speaker 2>Bye bye, Where do you want to start?

31
00:01:30.599 --> 00:01:33.159
<v Speaker 1>Bye bye Nixon. Yeah, he's not a crook, but he

32
00:01:33.239 --> 00:01:33.799
<v Speaker 1>is resigning.

33
00:01:33.879 --> 00:01:35.760
<v Speaker 2>Are you sure? I don't know, I sound so sure?

34
00:01:35.760 --> 00:01:39.560
<v Speaker 1>Well he said so, yeah, okay, And you know, after

35
00:01:39.680 --> 00:01:42.280
<v Speaker 1>that day, we didn't have Dick Nixon to kick around anymore.

36
00:01:42.480 --> 00:01:46.040
<v Speaker 1>So I think he did for a while longer, but yeah,

37
00:01:46.400 --> 00:01:48.760
<v Speaker 1>oh yeah, yeah, as long as I miss was alive,

38
00:01:48.799 --> 00:01:50.439
<v Speaker 1>he was getting kicked on a daily basis.

39
00:01:50.480 --> 00:01:51.719
<v Speaker 2>Yeah.

40
00:01:51.760 --> 00:01:55.280
<v Speaker 1>The Turkish military invaded Cyprus following a coup, leading to

41
00:01:55.319 --> 00:02:00.359
<v Speaker 1>a division of the island and increased international tensions.

42
00:02:00.040 --> 00:02:03.000
<v Speaker 2>Which still persists this day. That division in Cyprus.

43
00:02:03.280 --> 00:02:07.840
<v Speaker 1>The Carnation Revolution occurred in Portugal. That's a coup resulting

44
00:02:07.840 --> 00:02:12.759
<v Speaker 1>in the overthrow of the authoritarian regime. So the FIFA

45
00:02:12.879 --> 00:02:15.879
<v Speaker 1>World Cup took place in West Germany, where the host

46
00:02:15.960 --> 00:02:18.919
<v Speaker 1>nation defeated the Netherlands two to one to win the championship.

47
00:02:19.439 --> 00:02:23.240
<v Speaker 1>Just in case you were wondering, the boxing match known

48
00:02:23.280 --> 00:02:26.759
<v Speaker 1>as the Rumble in the Jungle featured Muhammad Ali defeating

49
00:02:26.879 --> 00:02:33.199
<v Speaker 1>George Foreman in Zaire. Ali would go forward to have

50
00:02:33.280 --> 00:02:36.240
<v Speaker 1>a great after career life in George Foreman sold grills.

51
00:02:37.280 --> 00:02:39.280
<v Speaker 1>He did a lot more than that. He had seven kids,

52
00:02:39.319 --> 00:02:46.039
<v Speaker 1>all named George. The Swedish pop group Abba won the

53
00:02:46.080 --> 00:02:49.560
<v Speaker 1>Eurovision Song Contest with their song Waterloo, making the start

54
00:02:49.599 --> 00:02:53.280
<v Speaker 1>of their successful career. Have you seen the Eurovision Song

55
00:02:53.360 --> 00:02:54.639
<v Speaker 1>Contest recently, Richard?

56
00:02:54.800 --> 00:02:57.360
<v Speaker 2>Not recently, No, but I'm aware of it. You don't

57
00:02:57.360 --> 00:02:58.919
<v Speaker 2>want to, okay.

58
00:02:59.280 --> 00:03:03.080
<v Speaker 1>Some significant the film's release include The Godfather Part two, Chinatown,

59
00:03:03.120 --> 00:03:06.639
<v Speaker 1>and Blazing Saddles, all movies that probably couldn't be made

60
00:03:06.639 --> 00:03:12.400
<v Speaker 1>today in my opinion. I'm going to talk about the

61
00:03:12.520 --> 00:03:17.599
<v Speaker 1>Terracotta Warriors. The first of those were discovering Jiang, China, unbelievable,

62
00:03:17.680 --> 00:03:20.919
<v Speaker 1>leading to significant archaeological finds. What do you know about

63
00:03:20.960 --> 00:03:22.520
<v Speaker 1>the terracotta warriors, Richard.

64
00:03:22.400 --> 00:03:25.360
<v Speaker 2>I've been there, but just you know, I know that

65
00:03:25.360 --> 00:03:27.039
<v Speaker 2>once they were exposed, they started to decay, like a

66
00:03:27.039 --> 00:03:28.319
<v Speaker 2>lot of the paint was still on them. When they

67
00:03:28.319 --> 00:03:30.280
<v Speaker 2>first were found, but.

68
00:03:30.280 --> 00:03:33.599
<v Speaker 1>They were made to with the with the emperor, I

69
00:03:33.599 --> 00:03:37.639
<v Speaker 1>suppose in the grave to protect him, right.

70
00:03:37.520 --> 00:03:40.360
<v Speaker 2>Yeah, that's the that's the idea. Like nobody really knows

71
00:03:40.400 --> 00:03:43.960
<v Speaker 2>for sure, but the Yeah, you'd have to see this thing.

72
00:03:43.960 --> 00:03:47.000
<v Speaker 2>It's unbelievably vast. Yeah, and the crazy part is, like

73
00:03:47.120 --> 00:03:49.639
<v Speaker 2>archaeology is not a huge thing in China, They've only

74
00:03:49.639 --> 00:03:52.479
<v Speaker 2>done a little. There's so much more to be found there.

75
00:03:53.080 --> 00:03:56.680
<v Speaker 2>And this is a culture that's been around literally for millennia. Yeah,

76
00:03:56.719 --> 00:03:58.919
<v Speaker 2>you're talking these things are what two thousand or so

77
00:03:59.039 --> 00:04:00.800
<v Speaker 2>years old, but there's so much more.

78
00:04:01.240 --> 00:04:03.599
<v Speaker 1>I think the crazy part is that people actually built

79
00:04:03.639 --> 00:04:06.560
<v Speaker 1>thousands of terracotta warriors and stuffed them in a grave. Yeah,

80
00:04:06.680 --> 00:04:07.560
<v Speaker 1>that's kind of crazy.

81
00:04:07.680 --> 00:04:11.080
<v Speaker 2>It speaks to the wealth of that country at that time,

82
00:04:11.199 --> 00:04:12.960
<v Speaker 2>right that they could afford to do such just like

83
00:04:13.000 --> 00:04:16.160
<v Speaker 2>building pyramids. Like, clearly you have too much money, right

84
00:04:16.319 --> 00:04:19.360
<v Speaker 2>if you can build these things. But that, yeah, it's

85
00:04:19.439 --> 00:04:20.560
<v Speaker 2>another example of that.

86
00:04:20.800 --> 00:04:23.600
<v Speaker 1>So what happened in science and Tech and seventy four Richard.

87
00:04:24.240 --> 00:04:27.879
<v Speaker 2>Not a big space year. Mariner ten made it to Mercury,

88
00:04:27.920 --> 00:04:29.879
<v Speaker 2>the first probe to ever do that, actually do two

89
00:04:29.879 --> 00:04:33.600
<v Speaker 2>flybys of Mercury, and that would be the only visit

90
00:04:33.720 --> 00:04:35.839
<v Speaker 2>to Mercury in the twentieth century. That would be the

91
00:04:35.879 --> 00:04:40.040
<v Speaker 2>Messenger spacecraft in the twenty first century. And that's about it.

92
00:04:40.079 --> 00:04:42.120
<v Speaker 2>There's a couple of soused flights to sal you there's

93
00:04:42.120 --> 00:04:44.279
<v Speaker 2>the plans for the Apollo Soy use missions, but they

94
00:04:44.279 --> 00:04:47.360
<v Speaker 2>won't happen until the next year, so not a big

95
00:04:47.439 --> 00:04:48.240
<v Speaker 2>year in space.

96
00:04:48.519 --> 00:04:51.759
<v Speaker 1>And like Venus, Mercury is not a very hospitable planet.

97
00:04:51.839 --> 00:04:54.759
<v Speaker 2>Well, it's awfully close to the Sun. It's very very hot,

98
00:04:54.839 --> 00:04:58.240
<v Speaker 2>no atmosphere at all. Yeah, but still interesting, you know,

99
00:04:58.600 --> 00:05:02.720
<v Speaker 2>and certainly something so we're studying further tricky to get

100
00:05:02.759 --> 00:05:04.519
<v Speaker 2>to takes a lot of energy to get there.

101
00:05:04.560 --> 00:05:06.920
<v Speaker 1>Do we actually get data from it before it burned up?

102
00:05:07.000 --> 00:05:09.600
<v Speaker 1>Oh yeah, No, it's not that close. Was able to

103
00:05:09.720 --> 00:05:13.319
<v Speaker 1>orbit around fly bys Mercury. You know, going into orbit

104
00:05:13.360 --> 00:05:15.120
<v Speaker 1>around Mercury is very challenging. We won't do that for

105
00:05:15.160 --> 00:05:15.720
<v Speaker 1>quite some time.

106
00:05:16.839 --> 00:05:19.920
<v Speaker 2>The first reporting on the destruction of the ozone layer

107
00:05:20.680 --> 00:05:24.279
<v Speaker 2>nineteen seventy four and will lead in a few years

108
00:05:24.279 --> 00:05:26.639
<v Speaker 2>to the thing called the Montreal Accords. Well, we'll band

109
00:05:26.680 --> 00:05:29.920
<v Speaker 2>CFC's and ultimate allow the ozone layer to repair itself

110
00:05:29.920 --> 00:05:32.319
<v Speaker 2>a successful story and turns out it worked. It worked.

111
00:05:32.519 --> 00:05:35.839
<v Speaker 1>Yeah, I'm giving away the ending. We can do those

112
00:05:35.920 --> 00:05:38.639
<v Speaker 1>kinds of things, people, We can. We absolutely can. And

113
00:05:39.000 --> 00:05:40.720
<v Speaker 1>I use that as an example when we talk about the

114
00:05:40.800 --> 00:05:45.600
<v Speaker 1>current crisses. The first edition of Dungeons and Dragons is published.

115
00:05:45.680 --> 00:05:50.360
<v Speaker 1>Gary Gygax and Dave Arnison from TSR derived from an

116
00:05:50.399 --> 00:05:53.680
<v Speaker 1>earlier game played with miniatures and went.

117
00:05:53.560 --> 00:05:56.759
<v Speaker 2>On to make geeks even geek here for many, many years.

118
00:05:56.800 --> 00:05:59.160
<v Speaker 2>Oh yeah, but and I would say this is by

119
00:05:59.199 --> 00:06:01.199
<v Speaker 2>far from in our part of the world. The most

120
00:06:01.199 --> 00:06:03.959
<v Speaker 2>important thing happened in seventy four. Right at the end

121
00:06:03.959 --> 00:06:07.600
<v Speaker 2>of nineteen seventy four, the mits altear eighty eight hundred.

122
00:06:08.639 --> 00:06:11.639
<v Speaker 2>So this was not the only personal computer at the time.

123
00:06:11.680 --> 00:06:14.000
<v Speaker 2>There were kits you could buy that would just be

124
00:06:14.120 --> 00:06:15.639
<v Speaker 2>give you and you'd have to put together the parts

125
00:06:15.680 --> 00:06:19.120
<v Speaker 2>and so forth. This was the first assembled machine based

126
00:06:19.120 --> 00:06:21.800
<v Speaker 2>on the Intel eighty eighty. The design would largely lead

127
00:06:21.800 --> 00:06:24.720
<v Speaker 2>to the S one hundred bus machine. In general, you

128
00:06:24.759 --> 00:06:26.720
<v Speaker 2>could only had to set at LEDs on the front end.

129
00:06:26.759 --> 00:06:28.959
<v Speaker 2>You would program it with switches, or you could add

130
00:06:28.959 --> 00:06:31.079
<v Speaker 2>a serial card to it to have a teletype interface.

131
00:06:31.079 --> 00:06:34.199
<v Speaker 2>Otherwise just not display no keyboard under that stuff. Yeah,

132
00:06:34.240 --> 00:06:38.879
<v Speaker 2>and it was popular electronics. Is this magazine that was

133
00:06:38.920 --> 00:06:43.439
<v Speaker 2>actually driving One of their rival magazines had published this

134
00:06:43.639 --> 00:06:45.759
<v Speaker 2>kit on their cover, and they wanted to make sure

135
00:06:45.800 --> 00:06:47.560
<v Speaker 2>they had something as well. So they were pushing and

136
00:06:47.680 --> 00:06:50.279
<v Speaker 2>my admits to get this thing done in time. And

137
00:06:50.360 --> 00:06:52.399
<v Speaker 2>so nominally it was on the cover of the January

138
00:06:52.480 --> 00:06:56.279
<v Speaker 2>nineteen seventy five edition, but it was actually put on

139
00:06:56.319 --> 00:06:58.199
<v Speaker 2>new stands in December seventy four, so I included the

140
00:06:58.240 --> 00:07:02.560
<v Speaker 2>seventy four And why is it important? This is Microsoft's

141
00:07:02.600 --> 00:07:06.720
<v Speaker 2>founding product. That cover is the thing that got Gates

142
00:07:06.720 --> 00:07:11.800
<v Speaker 2>to drop out of Harvard and moved to Albuquerque and

143
00:07:12.000 --> 00:07:14.000
<v Speaker 2>write a version of Basic would later be known as

144
00:07:14.040 --> 00:07:16.720
<v Speaker 2>the Altar Basic, which was Microsoft's very first.

145
00:07:16.480 --> 00:07:18.160
<v Speaker 1>Product, and he wrote it with the Altair.

146
00:07:18.639 --> 00:07:20.279
<v Speaker 2>He used the alt He actually wrote it on a

147
00:07:20.319 --> 00:07:23.160
<v Speaker 2>different machine because he didn't have one. He wrote it

148
00:07:22.439 --> 00:07:26.199
<v Speaker 2>on a machine at Harvard, a lot of it by

149
00:07:26.279 --> 00:07:28.600
<v Speaker 2>hand and by hand figured it all out because they

150
00:07:28.600 --> 00:07:31.600
<v Speaker 2>had to run in four K, and then brought it

151
00:07:31.639 --> 00:07:34.279
<v Speaker 2>down there and coated it in to test it. But

152
00:07:34.360 --> 00:07:36.079
<v Speaker 2>the first time he already had it written before the

153
00:07:36.120 --> 00:07:37.920
<v Speaker 2>first time he actually laid hand on an altar because

154
00:07:37.920 --> 00:07:39.839
<v Speaker 2>there wasn't any of them, and the name Altar actually

155
00:07:39.879 --> 00:07:43.759
<v Speaker 2>comes from the star Alta, although there's an apocryphal or

156
00:07:43.800 --> 00:07:47.079
<v Speaker 2>adjacent story of the fact that around that same time,

157
00:07:47.120 --> 00:07:50.439
<v Speaker 2>in the late seventies, the television show Star Trek had

158
00:07:50.439 --> 00:07:52.560
<v Speaker 2>an episode on a mock time where they go to

159
00:07:52.600 --> 00:07:56.519
<v Speaker 2>Altair six, and since it was a star of a technology,

160
00:07:56.560 --> 00:07:58.560
<v Speaker 2>they ought to have a cool name, not just a number,

161
00:07:58.560 --> 00:07:59.079
<v Speaker 2>so they called it.

162
00:07:59.199 --> 00:08:01.680
<v Speaker 1>So I've seen pick of the Altear and you're right.

163
00:08:01.720 --> 00:08:04.439
<v Speaker 1>It has like switches where you can turns the zeros

164
00:08:04.480 --> 00:08:07.920
<v Speaker 1>into the ones on and then press the button to

165
00:08:08.079 --> 00:08:10.040
<v Speaker 1>write it into memory. It kind of reminds me of

166
00:08:10.040 --> 00:08:13.279
<v Speaker 1>a pressure cooker, you know, like, well, it's just a box, right,

167
00:08:13.319 --> 00:08:16.399
<v Speaker 1>it's a issue here is it's turning over. It's before

168
00:08:16.519 --> 00:08:21.079
<v Speaker 1>RAM exists. Yeah, so you had to hand key the bootloader. Wow,

169
00:08:21.199 --> 00:08:23.720
<v Speaker 1>it was like one hundred and seventeen bytes something like that.

170
00:08:23.800 --> 00:08:27.439
<v Speaker 1>So you literally so booed up was a process. Was

171
00:08:27.480 --> 00:08:29.519
<v Speaker 1>literally once you got that thing running, you didn't want

172
00:08:29.519 --> 00:08:31.000
<v Speaker 1>to turn it off. Power goes out.

173
00:08:31.079 --> 00:08:34.240
<v Speaker 2>No, Yeah, and this is they weren't even using cassette

174
00:08:34.240 --> 00:08:36.639
<v Speaker 2>tapes at this point. The first versions of Basic were

175
00:08:36.679 --> 00:08:41.360
<v Speaker 2>on this paper tape with holes punched in it that

176
00:08:41.399 --> 00:08:43.759
<v Speaker 2>they that the thing could read in to load up

177
00:08:43.759 --> 00:08:45.480
<v Speaker 2>the version of Basic. It was a very small version

178
00:08:45.480 --> 00:08:47.039
<v Speaker 2>of Basic because there's only four k RAM and you

179
00:08:47.039 --> 00:08:50.600
<v Speaker 2>still have to run your program too, right, So.

180
00:08:50.200 --> 00:08:53.320
<v Speaker 1>They really only had mainframes before that, right, main four

181
00:08:53.399 --> 00:08:53.679
<v Speaker 1>or less.

182
00:08:53.679 --> 00:08:56.440
<v Speaker 2>And many the PDPs are around, right, the mini computers,

183
00:08:57.080 --> 00:08:57.720
<v Speaker 2>but they're all.

184
00:08:57.639 --> 00:09:00.080
<v Speaker 1>Using cards, so it makes sense that they would be

185
00:09:00.240 --> 00:09:01.679
<v Speaker 1>using that technology.

186
00:09:02.000 --> 00:09:05.519
<v Speaker 2>He uses paper tape. And there's no copy of the

187
00:09:05.559 --> 00:09:09.159
<v Speaker 2>original ALTA Basic. I think it exists anywhere. There is

188
00:09:09.200 --> 00:09:12.960
<v Speaker 2>a version of the advanced version of that Basic in

189
00:09:13.039 --> 00:09:17.320
<v Speaker 2>the Computer History Museum in the Silicon Valley, signed by Gates,

190
00:09:17.360 --> 00:09:20.200
<v Speaker 2>and I think it was Gates's actual copy of it.

191
00:09:20.320 --> 00:09:20.720
<v Speaker 1>Wow.

192
00:09:20.840 --> 00:09:24.039
<v Speaker 2>And so yeah, yeah, the original original it starts the

193
00:09:24.039 --> 00:09:24.720
<v Speaker 2>whole company.

194
00:09:25.000 --> 00:09:27.679
<v Speaker 1>I think it's gone. That's pretty crazy. Yeah, so the

195
00:09:27.759 --> 00:09:30.519
<v Speaker 1>history of dot net starts in nineteen seventy four, doesn't.

196
00:09:30.399 --> 00:09:34.039
<v Speaker 2>Theoretically, I mean it's beginning of Microsoft. But yeah, yeah,

197
00:09:34.159 --> 00:09:36.919
<v Speaker 2>all right in Albuquerque. Wow, good one.

198
00:09:38.039 --> 00:09:41.200
<v Speaker 1>So let's start then next with better no framework?

199
00:09:41.240 --> 00:09:41.600
<v Speaker 2>Awesome?

200
00:09:49.240 --> 00:09:51.960
<v Speaker 1>Al what you got? Do you use bitwarden? So do?

201
00:09:52.039 --> 00:09:54.440
<v Speaker 1>I I love Bitwarden? Did you know that you can

202
00:09:54.519 --> 00:09:55.919
<v Speaker 1>run it on prem Yeah.

203
00:09:56.039 --> 00:09:58.519
<v Speaker 2>Yeah, the open source product, right as it should be.

204
00:09:58.600 --> 00:10:01.399
<v Speaker 1>Yeah, I didn't know this, and then I found the

205
00:10:01.399 --> 00:10:07.759
<v Speaker 1>Bitwarden server get repository and apparently you know, so, like

206
00:10:07.799 --> 00:10:09.039
<v Speaker 1>I said, I didn't know it. I thought it was

207
00:10:09.039 --> 00:10:11.559
<v Speaker 1>a product that you subscribe to, and it is. But

208
00:10:11.600 --> 00:10:12.879
<v Speaker 1>if you want to run it yourself in.

209
00:10:12.840 --> 00:10:14.799
<v Speaker 2>There, you can use it for free or you can

210
00:10:14.799 --> 00:10:15.399
<v Speaker 2>pay them like.

211
00:10:15.360 --> 00:10:18.159
<v Speaker 1>You and so what's really cool about this is that

212
00:10:18.399 --> 00:10:22.039
<v Speaker 1>you know, hey, maybe we don't even want to trust

213
00:10:22.080 --> 00:10:25.440
<v Speaker 1>bitwarden dot com with our passwords. Maybe we want to

214
00:10:25.720 --> 00:10:28.519
<v Speaker 1>you know, keep all our data behind the firewall and

215
00:10:28.840 --> 00:10:32.320
<v Speaker 1>wherever we want to put it, and you know, to

216
00:10:32.399 --> 00:10:35.320
<v Speaker 1>be more secure. I mean, whether it is or not,

217
00:10:35.440 --> 00:10:37.559
<v Speaker 1>I don't know, but at least that's an option. So

218
00:10:37.679 --> 00:10:41.600
<v Speaker 1>you can download the server. It has all the APIs

219
00:10:41.679 --> 00:10:44.440
<v Speaker 1>and everything that you need to run it. You can

220
00:10:44.480 --> 00:10:46.759
<v Speaker 1>even run it on a Windows machine. You can run

221
00:10:46.799 --> 00:10:50.200
<v Speaker 1>it in Docker containers on a Windows machine if you

222
00:10:50.240 --> 00:10:53.000
<v Speaker 1>want to. Of course, Linux and Mac it's all there.

223
00:10:53.279 --> 00:10:54.799
<v Speaker 1>It's really really cool and.

224
00:10:54.759 --> 00:10:57.279
<v Speaker 2>If we have made it clear, it's a password manager. Yes,

225
00:10:58.039 --> 00:11:02.000
<v Speaker 2>you know, you can buy commercial products like one passes

226
00:11:02.039 --> 00:11:06.080
<v Speaker 2>and so forth. But This is also one I've fallen

227
00:11:06.120 --> 00:11:07.960
<v Speaker 2>on too. I had to leave last pass when last

228
00:11:07.960 --> 00:11:10.279
<v Speaker 2>pass went insane. Me too, Yeah, which, by the way,

229
00:11:10.360 --> 00:11:12.960
<v Speaker 2>I found migrating off the last pass less painful than

230
00:11:13.000 --> 00:11:15.919
<v Speaker 2>I thought. Yep, I was dreading it. But the only

231
00:11:16.000 --> 00:11:18.559
<v Speaker 2>real problem with a migrating from between password managers is

232
00:11:18.559 --> 00:11:20.440
<v Speaker 2>at some point you're going to generate a CSV file

233
00:11:20.480 --> 00:11:23.240
<v Speaker 2>of every single password in your life, and that will

234
00:11:23.240 --> 00:11:25.320
<v Speaker 2>be upsetting. Well, the real way to do it is

235
00:11:25.399 --> 00:11:29.759
<v Speaker 2>to just find the list of domains that you have

236
00:11:29.840 --> 00:11:32.440
<v Speaker 2>passwords for in last past and go to each one

237
00:11:32.480 --> 00:11:34.679
<v Speaker 2>of them and say, hey, I forgot my password, and

238
00:11:34.759 --> 00:11:37.440
<v Speaker 2>go through the whole process of generation. Yeah. I mean,

239
00:11:38.120 --> 00:11:39.879
<v Speaker 2>it's a terrible thing to do if you've got hundreds

240
00:11:39.879 --> 00:11:41.919
<v Speaker 2>of them, but you know, in the reality is you

241
00:11:42.000 --> 00:11:44.000
<v Speaker 2>can migrate your passwords over the other one, but you

242
00:11:44.039 --> 00:11:45.919
<v Speaker 2>should probably change me after that and do yourself a

243
00:11:45.960 --> 00:11:48.919
<v Speaker 2>favor delete that file when you're done. Absolutely, that file

244
00:11:48.960 --> 00:11:53.279
<v Speaker 2>shouldn't exist. That files bad. What file? Yeah, and I'm

245
00:11:53.399 --> 00:11:55.799
<v Speaker 2>super keen to get to pass keys. I just think

246
00:11:55.799 --> 00:11:58.000
<v Speaker 2>passkey's still a half baked so.

247
00:11:58.039 --> 00:12:02.080
<v Speaker 1>Yeah, they're not quite there yet. I like one global

248
00:12:02.120 --> 00:12:03.639
<v Speaker 1>authenticator app would be really good.

249
00:12:03.679 --> 00:12:04.679
<v Speaker 2>For me. Yeah, I don't know.

250
00:12:04.919 --> 00:12:06.960
<v Speaker 1>Not nine authenticator apps, not ten?

251
00:12:07.120 --> 00:12:07.799
<v Speaker 2>Good luck with that.

252
00:12:08.240 --> 00:12:09.399
<v Speaker 1>Just one is all I want.

253
00:12:09.480 --> 00:12:11.600
<v Speaker 2>I think there's a I's pretty sure there's an SKCD

254
00:12:12.360 --> 00:12:15.120
<v Speaker 2>cartoon about this. It's like, we need a standard for everything.

255
00:12:15.200 --> 00:12:21.919
<v Speaker 2>Now there's ten. Yay, Yeah, that's right. Remember scuzzy SCSI. Yeah,

256
00:12:22.159 --> 00:12:26.240
<v Speaker 2>wasn't one of the SA's standing for standard. Yes, that's yeah.

257
00:12:26.279 --> 00:12:28.519
<v Speaker 2>You know, how would that work out? No, there are

258
00:12:28.679 --> 00:12:30.679
<v Speaker 2>no standards. Everybody fights against them.

259
00:12:30.879 --> 00:12:32.840
<v Speaker 1>All right, Well that's what I got. Richard, who's talking to.

260
00:12:32.840 --> 00:12:35.000
<v Speaker 2>Us today, jumped into the wayback machine because we haven't

261
00:12:35.000 --> 00:12:38.279
<v Speaker 2>talked about stuff like specification driven development in a long time,

262
00:12:38.320 --> 00:12:40.519
<v Speaker 2>but we have talked about it. And I grabbed a

263
00:12:40.559 --> 00:12:43.480
<v Speaker 2>comment off a show nine to twenty one. Wow, this

264
00:12:43.559 --> 00:12:48.919
<v Speaker 2>is when we talked about the product Cucumber working with

265
00:12:49.360 --> 00:12:52.799
<v Speaker 2>behavior driven development Matt Wins show back in twenty thirteen.

266
00:12:52.919 --> 00:12:55.240
<v Speaker 2>We've got a ton of comments on that show. Not surprising. Yeah,

267
00:12:55.279 --> 00:12:58.279
<v Speaker 2>and gap has a Utz had this commed. He said, well,

268
00:12:58.279 --> 00:13:01.120
<v Speaker 2>I had no real world experience with to driven development

269
00:13:01.159 --> 00:13:03.279
<v Speaker 2>until now I've to use it on a new, relatively

270
00:13:03.320 --> 00:13:09.360
<v Speaker 2>small project and we're now working on I'm really I'm

271
00:13:09.360 --> 00:13:11.759
<v Speaker 2>trying to get to the place is what he's talking about,

272
00:13:11.840 --> 00:13:15.600
<v Speaker 2>where you have an executical specification. And I just thought

273
00:13:15.600 --> 00:13:17.759
<v Speaker 2>this comment was really relevant because we think about what

274
00:13:17.799 --> 00:13:22.360
<v Speaker 2>we're doing with prompting with lllms these days, as could

275
00:13:22.360 --> 00:13:26.279
<v Speaker 2>almost be an executable specification rather than having a separate document.

276
00:13:26.320 --> 00:13:28.159
<v Speaker 2>It's supposed to document what the system does, but it's

277
00:13:28.279 --> 00:13:31.279
<v Speaker 2>always out of sync, like what's the what do we

278
00:13:31.320 --> 00:13:34.159
<v Speaker 2>make rules around all of this? But it would be

279
00:13:34.840 --> 00:13:37.279
<v Speaker 2>cool to actually get on these large projects that we

280
00:13:37.320 --> 00:13:40.720
<v Speaker 2>have a set of documentation that in this game were

281
00:13:40.720 --> 00:13:43.559
<v Speaker 2>talking about. Cucumber generated the test to say does the

282
00:13:43.600 --> 00:13:47.919
<v Speaker 2>software does what it's supposed to do? But I, you know, now,

283
00:13:47.960 --> 00:13:51.159
<v Speaker 2>thinking ten years on looking at gatus as common, I'm like, wow,

284
00:13:51.440 --> 00:13:54.240
<v Speaker 2>look where we are right now with the next generation

285
00:13:54.320 --> 00:13:58.600
<v Speaker 2>of tools and another way of thinking about how we

286
00:13:58.639 --> 00:14:02.360
<v Speaker 2>write a specification about an application and then how that

287
00:14:02.440 --> 00:14:04.559
<v Speaker 2>specification turns into executable code.

288
00:14:04.600 --> 00:14:08.879
<v Speaker 1>Cucumber was like all use cases, right, yeah, Like as

289
00:14:08.919 --> 00:14:11.320
<v Speaker 1>a user, I want to be able to blay blah

290
00:14:11.360 --> 00:14:14.279
<v Speaker 1>blah blah, and yeah, yeah, very cool.

291
00:14:14.399 --> 00:14:18.039
<v Speaker 2>Yeah, it was acceptance testing, right, You're supposed to be

292
00:14:18.080 --> 00:14:19.559
<v Speaker 2>able to write it in English, Like I don't know.

293
00:14:19.799 --> 00:14:21.679
<v Speaker 2>I'll include a link to cucumber. Folks want to take

294
00:14:21.679 --> 00:14:23.519
<v Speaker 2>a look at it. It would take a minute for

295
00:14:23.559 --> 00:14:24.919
<v Speaker 2>me to go back and look at this now, just

296
00:14:24.919 --> 00:14:30.080
<v Speaker 2>thinking about what lms have done to this whole space. Sure, anyway, Gattis,

297
00:14:30.080 --> 00:14:31.679
<v Speaker 2>thank you so much for your comment, and a copy

298
00:14:31.679 --> 00:14:33.039
<v Speaker 2>of music code By is on its way to you.

299
00:14:33.039 --> 00:14:34.399
<v Speaker 2>And if you'd like a copy of music cobe I,

300
00:14:34.440 --> 00:14:36.480
<v Speaker 2>write a comment on the website at dot NetRocks dot

301
00:14:36.519 --> 00:14:38.720
<v Speaker 2>com or on the Facebook. We publish every show there,

302
00:14:38.720 --> 00:14:40.080
<v Speaker 2>and if you comment there and I read in the show,

303
00:14:40.120 --> 00:14:41.320
<v Speaker 2>I'll send you copy of music cobe.

304
00:14:41.360 --> 00:14:43.360
<v Speaker 1>I was just using music to code By to prepare

305
00:14:43.399 --> 00:14:47.600
<v Speaker 1>for my talks nice next week, and it's still going strong.

306
00:14:47.679 --> 00:14:52.919
<v Speaker 1>Twenty two tracks, twenty five minutes long, designed for the

307
00:14:53.559 --> 00:14:56.240
<v Speaker 1>Pomodoro technique, but not necessarily. You don't have to have

308
00:14:56.279 --> 00:14:56.679
<v Speaker 1>a clock.

309
00:14:58.360 --> 00:14:58.559
<v Speaker 2>You know.

310
00:14:58.720 --> 00:15:02.559
<v Speaker 1>They're neither boring or too exciting. They're just in that

311
00:15:02.679 --> 00:15:06.679
<v Speaker 1>middle space. They're just too right. Get you into a

312
00:15:06.720 --> 00:15:11.080
<v Speaker 1>state of flow and keep you there, okay. Den de

313
00:15:11.240 --> 00:15:14.519
<v Speaker 1>la Marski is our guest. He is a principal product

314
00:15:14.559 --> 00:15:18.159
<v Speaker 1>engineer currently working at Microsoft, where he helps build developer

315
00:15:18.200 --> 00:15:21.840
<v Speaker 1>tools in AI powered experiences that make engineers more productive.

316
00:15:22.519 --> 00:15:25.440
<v Speaker 1>Den started his engineering journey all the way back in

317
00:15:25.440 --> 00:15:26.080
<v Speaker 1>the nineties.

318
00:15:26.399 --> 00:15:29.799
<v Speaker 2>Oh god, all the way back, all the way back,

319
00:15:29.919 --> 00:15:30.759
<v Speaker 2>a long time ago.

320
00:15:30.799 --> 00:15:32.960
<v Speaker 1>All the way back in the nineties.

321
00:15:33.799 --> 00:15:36.720
<v Speaker 3>I did I tell you that I listened to your

322
00:15:36.759 --> 00:15:38.399
<v Speaker 3>podcast when I was in middle school?

323
00:15:38.679 --> 00:15:39.679
<v Speaker 2>Oh my god.

324
00:15:39.960 --> 00:15:45.039
<v Speaker 1>Yeah, excuse me, take some geritol right now, Hang on

325
00:15:45.080 --> 00:15:45.480
<v Speaker 1>a second.

326
00:15:45.559 --> 00:15:46.720
<v Speaker 2>Yeah, yeah, all right.

327
00:15:46.759 --> 00:15:48.759
<v Speaker 1>So in the nineties with the three eighty six box

328
00:15:48.799 --> 00:15:52.320
<v Speaker 1>that was verily enough to run Doss games. He's upgraded

329
00:15:52.360 --> 00:15:56.159
<v Speaker 1>since then. He has spent plenty of time writing code

330
00:15:56.159 --> 00:15:59.000
<v Speaker 1>and visual basics six oh, but for more than two

331
00:15:59.000 --> 00:16:03.720
<v Speaker 1>decades now he's writing see sharp and Python and there's more. Dan, welcome,

332
00:16:04.080 --> 00:16:06.960
<v Speaker 1>thank you, so happy to be here. I'm such a

333
00:16:06.960 --> 00:16:08.000
<v Speaker 1>fan of Dunn at Rocks.

334
00:16:08.399 --> 00:16:09.240
<v Speaker 2>That's great. Wow.

335
00:16:09.279 --> 00:16:11.120
<v Speaker 1>Well, after reading your bio, I'm a fan of yours

336
00:16:13.399 --> 00:16:15.480
<v Speaker 1>TB six. I mean, I was there, we were there.

337
00:16:15.559 --> 00:16:16.519
<v Speaker 1>I missed those days.

338
00:16:16.720 --> 00:16:19.000
<v Speaker 3>I missed the days of just me like popping an ID,

339
00:16:19.960 --> 00:16:23.480
<v Speaker 3>using the forum, designers, dropping some progress bars on clicking

340
00:16:23.480 --> 00:16:24.879
<v Speaker 3>the buttons and things are.

341
00:16:24.799 --> 00:16:28.399
<v Speaker 1>Just working well and not having to sign into an app.

342
00:16:28.600 --> 00:16:32.399
<v Speaker 2>Nice and not having to sign in Ye, that was

343
00:16:32.440 --> 00:16:34.559
<v Speaker 2>a product that was made fun of. You know, it

344
00:16:34.600 --> 00:16:38.240
<v Speaker 2>wasn't real programming back in the day, and we were

345
00:16:38.279 --> 00:16:41.519
<v Speaker 2>crying all the way to the bank as we knocked

346
00:16:41.519 --> 00:16:44.440
<v Speaker 2>out the things that our customers actually needed in less time.

347
00:16:45.720 --> 00:16:48.919
<v Speaker 1>I was there at BB one. Oh, I was there

348
00:16:49.279 --> 00:16:51.440
<v Speaker 1>and quick Basic com pts Before.

349
00:16:51.200 --> 00:16:53.840
<v Speaker 2>That, Yeah, yeah, no, I spent I did my time

350
00:16:53.879 --> 00:16:58.440
<v Speaker 2>in the in MFC crashing windows repeatedly and wondering what

351
00:16:58.480 --> 00:17:02.240
<v Speaker 2>I was doing wrong. VB showed out like this is better.

352
00:17:03.919 --> 00:17:06.440
<v Speaker 1>What you do is you find yourself an MFCC plus

353
00:17:06.480 --> 00:17:09.039
<v Speaker 1>plus programmer and then you just partner with them to

354
00:17:09.079 --> 00:17:10.480
<v Speaker 1>do the hard stuff.

355
00:17:10.799 --> 00:17:11.319
<v Speaker 2>Yeah.

356
00:17:11.400 --> 00:17:12.960
<v Speaker 3>I gotta say, I just don't know that there was

357
00:17:13.000 --> 00:17:14.920
<v Speaker 3>not that much stuff that was that hard. Like I

358
00:17:15.279 --> 00:17:17.160
<v Speaker 3>love VB six, but you know, the one thing that

359
00:17:17.279 --> 00:17:19.359
<v Speaker 3>just kind of annoyed me about it is when Windows

360
00:17:19.440 --> 00:17:22.519
<v Speaker 3>XP came out and it had all these super nice

361
00:17:22.559 --> 00:17:25.039
<v Speaker 3>styles and everything, and just VV six was constantly stuck

362
00:17:25.079 --> 00:17:26.680
<v Speaker 3>in the Windows ninety five and I was like, oh,

363
00:17:26.799 --> 00:17:29.119
<v Speaker 3>come on, man, Like, can I just get the nice

364
00:17:29.119 --> 00:17:31.759
<v Speaker 3>progress bar, the nice button with the shadow.

365
00:17:31.640 --> 00:17:33.359
<v Speaker 1>And you could if you went third party. They all

366
00:17:33.400 --> 00:17:36.359
<v Speaker 1>adapted their stuff. Yeah, they had read through everything, but.

367
00:17:36.960 --> 00:17:38.960
<v Speaker 2>I was broke and I had no money, I couldn't

368
00:17:38.960 --> 00:17:42.680
<v Speaker 2>get that party. Well, and we didn't know that Microsoft

369
00:17:42.720 --> 00:17:45.319
<v Speaker 2>was changing gears, right, like, yeah, that there wasn't going

370
00:17:45.400 --> 00:17:47.400
<v Speaker 2>to be a VB seven right, Yeah.

371
00:17:47.200 --> 00:17:49.319
<v Speaker 1>Those were the days days of drama.

372
00:17:49.599 --> 00:17:52.960
<v Speaker 2>Yeah. So but that's talk to me about spec driven development,

373
00:17:53.039 --> 00:17:54.960
<v Speaker 2>den What have you been up to here? What is

374
00:17:55.000 --> 00:17:56.039
<v Speaker 2>this all? Right?

375
00:17:56.119 --> 00:17:58.920
<v Speaker 3>So folks might have seen that about a month ago,

376
00:17:59.240 --> 00:18:01.680
<v Speaker 3>we work with our friends at get hub to release

377
00:18:01.720 --> 00:18:04.400
<v Speaker 3>this thing called spec Kit. So if you go to

378
00:18:04.519 --> 00:18:07.720
<v Speaker 3>get up dot com slash, get up slash spec dash Kit.

379
00:18:08.359 --> 00:18:12.799
<v Speaker 3>Spec Kit is nothing super magical. It's basically a set

380
00:18:12.839 --> 00:18:16.279
<v Speaker 3>of templates, prompts, and scripts. And the whole purpose for

381
00:18:16.400 --> 00:18:19.160
<v Speaker 3>that is that when we talk to folks that try

382
00:18:19.160 --> 00:18:22.400
<v Speaker 3>to build software llms, like, there's a large swath of

383
00:18:22.400 --> 00:18:25.319
<v Speaker 3>folks that are just very excited about the fact that, oh,

384
00:18:25.359 --> 00:18:28.119
<v Speaker 3>I don't have to write boilerplate code, I don't have

385
00:18:28.200 --> 00:18:31.680
<v Speaker 3>to write my tests from scratch because I can just

386
00:18:31.839 --> 00:18:34.359
<v Speaker 3>you know, use quad code to do that stuff. So

387
00:18:35.519 --> 00:18:38.440
<v Speaker 3>as we talk to more of these customers, especially customers

388
00:18:38.440 --> 00:18:41.039
<v Speaker 3>and like bigger companies, customers that want to build something

389
00:18:41.079 --> 00:18:45.359
<v Speaker 3>that is going beyond what we refer to as vibe coding. Oh,

390
00:18:45.359 --> 00:18:47.880
<v Speaker 3>I'm building a podcast landing page, like, oh, yeah, you

391
00:18:47.920 --> 00:18:50.440
<v Speaker 3>can vibe code that in the day. If you're building

392
00:18:50.519 --> 00:18:53.400
<v Speaker 3>a i don't know, like a CRM or like a

393
00:18:53.400 --> 00:18:55.599
<v Speaker 3>plugin for a CRM, all of a sudden you're in

394
00:18:55.599 --> 00:18:58.319
<v Speaker 3>the world of hurt because you're getting into this state

395
00:18:58.440 --> 00:19:02.000
<v Speaker 3>of now I need to go and just constantly prompt

396
00:19:02.000 --> 00:19:04.920
<v Speaker 3>for changes, and then things went off the rails and

397
00:19:04.960 --> 00:19:07.480
<v Speaker 3>I need to go back somehow and then redo it.

398
00:19:07.519 --> 00:19:11.319
<v Speaker 3>But now I don't have any history. So for that

399
00:19:11.559 --> 00:19:14.400
<v Speaker 3>we thought, okay, we have an idea for an experiment.

400
00:19:14.839 --> 00:19:20.160
<v Speaker 3>What if all of this stuff can be encoded into specs?

401
00:19:21.000 --> 00:19:23.880
<v Speaker 3>And this is idea as old as time, as kind

402
00:19:23.880 --> 00:19:25.960
<v Speaker 3>of Richard called out like spectrum development and the idea

403
00:19:26.000 --> 00:19:29.079
<v Speaker 3>of writing specs as the underlying kind of the layer

404
00:19:29.119 --> 00:19:31.480
<v Speaker 3>of software is not exactly new like it existed for

405
00:19:31.559 --> 00:19:34.559
<v Speaker 3>some time. This is more of a it's a new

406
00:19:34.599 --> 00:19:38.799
<v Speaker 3>incarnation of it and in this context, and by the way,

407
00:19:38.880 --> 00:19:41.640
<v Speaker 3>a lot of this was also driven by one of

408
00:19:41.640 --> 00:19:44.720
<v Speaker 3>my colleagues, John Lamb, who was inspired.

409
00:19:44.920 --> 00:19:45.200
<v Speaker 1>Yeah.

410
00:19:45.279 --> 00:19:49.359
<v Speaker 3>John Lamb is great from the Iron Python days. For

411
00:19:49.359 --> 00:19:52.319
<v Speaker 3>folks that don't know, Yeah.

412
00:19:51.599 --> 00:19:54.039
<v Speaker 1>From a developmentor before that, I think yes.

413
00:19:54.359 --> 00:19:55.200
<v Speaker 2>Yeah.

414
00:19:55.400 --> 00:19:59.799
<v Speaker 3>So John was somewhat frustrated by the fact that Claude's Sonnet,

415
00:20:00.599 --> 00:20:04.240
<v Speaker 3>the model from Anthropic, was very over eager.

416
00:20:04.319 --> 00:20:05.400
<v Speaker 2>When you'd give it coding test.

417
00:20:05.640 --> 00:20:08.119
<v Speaker 3>You'd be like, oh, can you like I'm building this

418
00:20:08.559 --> 00:20:10.480
<v Speaker 3>new components, like oh, let me write this component, let

419
00:20:10.519 --> 00:20:12.200
<v Speaker 3>me write all to the framework for this component and

420
00:20:12.279 --> 00:20:12.960
<v Speaker 3>everything around it.

421
00:20:13.119 --> 00:20:13.319
<v Speaker 1>Yeah.

422
00:20:13.880 --> 00:20:16.839
<v Speaker 3>So the idea was like, well, can we put guardrails

423
00:20:16.839 --> 00:20:18.440
<v Speaker 3>around it? So make sure that, like if I ask

424
00:20:18.519 --> 00:20:21.599
<v Speaker 3>you to do this, you do just that. So this

425
00:20:22.039 --> 00:20:25.920
<v Speaker 3>is what essentially bootstrapped spec Kit. This was the foundational pieces.

426
00:20:25.920 --> 00:20:27.799
<v Speaker 3>It's like, how do we make the model a little

427
00:20:27.839 --> 00:20:31.480
<v Speaker 3>bit more contained if you will to do the things

428
00:20:31.480 --> 00:20:34.160
<v Speaker 3>that we want. And as we started kind of exploring this.

429
00:20:34.079 --> 00:20:36.759
<v Speaker 1>Couldn't you write a system prompt for Claude just to say, hey,

430
00:20:36.799 --> 00:20:38.799
<v Speaker 1>state your lane and don't do anything I don't tell

431
00:20:38.799 --> 00:20:39.160
<v Speaker 1>you to do.

432
00:20:39.599 --> 00:20:42.240
<v Speaker 3>You could, but then you're just always in this like

433
00:20:42.319 --> 00:20:45.640
<v Speaker 3>cat and mouse game, right, and you're writing system prompts.

434
00:20:46.200 --> 00:20:47.839
<v Speaker 3>So and by the way, it's also like if you

435
00:20:47.880 --> 00:20:49.440
<v Speaker 3>switch models all of a sudden.

436
00:20:49.160 --> 00:20:52.160
<v Speaker 2>Like what what then? Like do I write a system prompt? So?

437
00:20:52.400 --> 00:20:52.680
<v Speaker 1>Okay?

438
00:20:53.279 --> 00:20:54.920
<v Speaker 3>Yeah, And also we live in a world where developer

439
00:20:54.960 --> 00:20:57.160
<v Speaker 3>switch models, like every week there is I'm sure there's

440
00:20:57.160 --> 00:20:58.839
<v Speaker 3>a model came out. Well, we're recording this that we

441
00:20:58.880 --> 00:21:02.759
<v Speaker 3>did not know about this, this is somehow better or different

442
00:21:02.799 --> 00:21:06.960
<v Speaker 3>models for different applications exactly. So Speckett was born out

443
00:21:07.000 --> 00:21:09.960
<v Speaker 3>of that entire need, and as we started kind of

444
00:21:09.960 --> 00:21:14.720
<v Speaker 3>evolving it, things pop top from customer conversations like, oh, well,

445
00:21:15.359 --> 00:21:18.000
<v Speaker 3>if I starting coding requirements, how do I make sure

446
00:21:18.039 --> 00:21:22.720
<v Speaker 3>that my technical requirements are correctly updated if I decided

447
00:21:22.759 --> 00:21:26.119
<v Speaker 3>to change my tech stack. And that actually is one

448
00:21:26.160 --> 00:21:28.799
<v Speaker 3>of the core value props of Speckett and the spectrum

449
00:21:28.839 --> 00:21:32.839
<v Speaker 3>development here is that we're detaching the spect the requirements

450
00:21:32.839 --> 00:21:36.119
<v Speaker 3>from code and from the tech stack, so that if

451
00:21:36.160 --> 00:21:38.640
<v Speaker 3>you're a developer and previously you're like, Okay, I want

452
00:21:38.640 --> 00:21:40.880
<v Speaker 3>to build a web app for my enterprise that does

453
00:21:41.759 --> 00:21:45.839
<v Speaker 3>something like accounting, and I'm not entirely sure which framework

454
00:21:45.920 --> 00:21:48.599
<v Speaker 3>is the most performed, is it next JS? Should I

455
00:21:48.680 --> 00:21:51.279
<v Speaker 3>use Astro? Should I be framework less entirely? Should I

456
00:21:51.279 --> 00:21:56.200
<v Speaker 3>write this in just tailwin CSS for UI, shad CN.

457
00:21:56.559 --> 00:21:59.359
<v Speaker 2>And like, what would you have to do?

458
00:21:59.519 --> 00:22:02.200
<v Speaker 3>You'd have to go and write this in whatever stack

459
00:22:02.319 --> 00:22:04.680
<v Speaker 3>and then maybe do some benchmarks and figure out like

460
00:22:04.720 --> 00:22:09.119
<v Speaker 3>what's the performance. Now, because you have a spec you

461
00:22:09.160 --> 00:22:11.240
<v Speaker 3>can just go and ask it to write you like

462
00:22:11.359 --> 00:22:15.279
<v Speaker 3>three versions out of the same requirements. So you basically

463
00:22:15.319 --> 00:22:18.720
<v Speaker 3>you start speed running the iteration process and saying, oh,

464
00:22:18.799 --> 00:22:22.200
<v Speaker 3>create me like three options that I can choose from.

465
00:22:22.359 --> 00:22:24.559
<v Speaker 3>And that's kind of nice because now you have the requirements,

466
00:22:24.839 --> 00:22:28.200
<v Speaker 3>they're separate from your technical requirements, and the LM can

467
00:22:28.279 --> 00:22:30.000
<v Speaker 3>just build it for you and then you can assess it.

468
00:22:30.319 --> 00:22:30.599
<v Speaker 2>Cool.

469
00:22:31.160 --> 00:22:35.000
<v Speaker 1>So Cucumber plus AI, you could probably think.

470
00:22:34.920 --> 00:22:38.640
<v Speaker 3>It's basically simplify yes, instead of as a user I

471
00:22:38.720 --> 00:22:41.599
<v Speaker 3>can is like as a large language model, I can.

472
00:22:44.039 --> 00:22:44.359
<v Speaker 1>Wow.

473
00:22:44.440 --> 00:22:46.880
<v Speaker 2>But I think you're also skipping over some hard bits here,

474
00:22:46.880 --> 00:22:49.920
<v Speaker 2>which is you really have to granulize the specification. Yes,

475
00:22:50.200 --> 00:22:52.119
<v Speaker 2>you want to take small enough bites at the LM

476
00:22:52.119 --> 00:22:53.519
<v Speaker 2>has a shot at building this thing.

477
00:22:53.359 --> 00:22:56.000
<v Speaker 3>Success absolutely, And I think one of the biggest problems

478
00:22:56.000 --> 00:22:58.119
<v Speaker 3>that we see with people trying to approach spectro of

479
00:22:58.160 --> 00:23:01.079
<v Speaker 3>development is actually, like, first of all, the problem is

480
00:23:01.160 --> 00:23:05.640
<v Speaker 3>under specification because if you are not yet comfortable writing

481
00:23:05.640 --> 00:23:07.720
<v Speaker 3>specs or understanding.

482
00:23:07.319 --> 00:23:09.599
<v Speaker 2>What you're building and why, you're.

483
00:23:09.440 --> 00:23:12.440
<v Speaker 3>Gonna fall into the pit of under specification and what

484
00:23:12.519 --> 00:23:16.359
<v Speaker 3>happens when you underspecify things. The AI starts guessing and

485
00:23:16.400 --> 00:23:18.920
<v Speaker 3>it's like, oh, sure, like you did not tell me

486
00:23:19.039 --> 00:23:21.160
<v Speaker 3>that you do not want the header to be green.

487
00:23:21.839 --> 00:23:24.559
<v Speaker 3>I'll make it like whatever color I choose, right, And

488
00:23:24.599 --> 00:23:26.920
<v Speaker 3>I think this is like it's a it's a mental shift, right.

489
00:23:27.119 --> 00:23:31.000
<v Speaker 3>You previously have to get into the mode of like, oh,

490
00:23:31.039 --> 00:23:33.119
<v Speaker 3>I'll just go and start writing things and see how

491
00:23:33.160 --> 00:23:34.720
<v Speaker 3>it happens. Now you're like, no, no, no, I need to

492
00:23:34.720 --> 00:23:39.400
<v Speaker 3>spend upfront time thinking about this, outlining this. And by

493
00:23:39.440 --> 00:23:41.920
<v Speaker 3>the way, we also support this capability. We added this

494
00:23:42.880 --> 00:23:46.000
<v Speaker 3>prompt inside spec kid that is called clarified and that

495
00:23:46.119 --> 00:23:50.240
<v Speaker 3>is essentially you're using the language model to question your

496
00:23:50.279 --> 00:23:52.680
<v Speaker 3>spec right, So if you're not if you have writer's block,

497
00:23:52.759 --> 00:23:55.839
<v Speaker 3>you're you're not inspired, Uh, you can just ask the

498
00:23:55.920 --> 00:23:57.640
<v Speaker 3>LM to say can you can you ask me quite,

499
00:23:57.680 --> 00:23:59.599
<v Speaker 3>are there any blind spots that I might have? Are

500
00:23:59.640 --> 00:24:02.599
<v Speaker 3>there the things that I don't know?

501
00:24:02.960 --> 00:24:03.960
<v Speaker 2>I don't know? Right?

502
00:24:04.160 --> 00:24:07.119
<v Speaker 3>Right, just keep keep prodding at this and so and

503
00:24:07.119 --> 00:24:11.400
<v Speaker 3>absolutely you're right Richard, like there is a degreeable. So great, Well,

504
00:24:11.240 --> 00:24:13.960
<v Speaker 3>we're going to have this massive specification. It's going to

505
00:24:14.000 --> 00:24:17.480
<v Speaker 3>be massive, like it's going to be massive context windows

506
00:24:17.480 --> 00:24:20.079
<v Speaker 3>for folks that know, like any large language model has

507
00:24:20.119 --> 00:24:24.559
<v Speaker 3>basically a limited set of tokens again process at any

508
00:24:24.599 --> 00:24:26.839
<v Speaker 3>given time before it starts losing track of what you

509
00:24:26.920 --> 00:24:29.640
<v Speaker 3>asked it to do. So the context windows are relatively limited.

510
00:24:29.680 --> 00:24:32.519
<v Speaker 3>So if you start with a giant, massive spec you

511
00:24:32.519 --> 00:24:34.079
<v Speaker 3>can call it a context window. I'm going to call

512
00:24:34.119 --> 00:24:37.480
<v Speaker 3>it a buffer overflush. Sure that's really what's happening. Absolutely, yes,

513
00:24:37.599 --> 00:24:39.039
<v Speaker 3>that that's a very good way of putting it. Like

514
00:24:39.079 --> 00:24:40.279
<v Speaker 3>you're going to get into the world of the buffer

515
00:24:40.319 --> 00:24:43.440
<v Speaker 3>overflow where a lot of your instructions and guardrails are

516
00:24:43.480 --> 00:24:44.920
<v Speaker 3>just going to be tossed out the windows. Like it's

517
00:24:44.920 --> 00:24:45.599
<v Speaker 3>not going to be a plot.

518
00:24:45.640 --> 00:24:48.599
<v Speaker 1>Yeah I heard Sun at four point five has more space.

519
00:24:48.880 --> 00:24:52.680
<v Speaker 3>Yes, yes, modern models have like generally are improving in

520
00:24:52.720 --> 00:24:55.279
<v Speaker 3>terms of like the the buffer overflail problem.

521
00:24:55.400 --> 00:24:56.400
<v Speaker 2>Yeah.

522
00:24:56.519 --> 00:24:59.680
<v Speaker 3>So what we also do here is not only do

523
00:24:59.720 --> 00:25:01.920
<v Speaker 3>we ask you to create the specification, but we'll also

524
00:25:02.000 --> 00:25:04.960
<v Speaker 3>break this down into chunks. So once SUSPEC is ready,

525
00:25:05.119 --> 00:25:09.079
<v Speaker 3>once the technical plan is outlined, we have the capability

526
00:25:09.079 --> 00:25:13.039
<v Speaker 3>to basically split this into consumable tasks. And then this

527
00:25:13.079 --> 00:25:15.160
<v Speaker 3>is where I showed in my videos. I showed in

528
00:25:15.160 --> 00:25:17.960
<v Speaker 3>a blog where it's like you can use slash tasks

529
00:25:17.960 --> 00:25:20.519
<v Speaker 3>to then create a list of tasks that are based

530
00:25:20.519 --> 00:25:23.640
<v Speaker 3>on the spec based on the technical plan, and the

531
00:25:23.759 --> 00:25:25.559
<v Speaker 3>LM can do them in chunks. It's like, Okay, first

532
00:25:25.599 --> 00:25:27.759
<v Speaker 3>of all, you need to bootstrap this project next to yes, okay,

533
00:25:27.839 --> 00:25:29.680
<v Speaker 3>let me go do that. Now you need to create

534
00:25:29.680 --> 00:25:31.839
<v Speaker 3>the CSS, Okay, let me go do that. So you're

535
00:25:31.880 --> 00:25:37.319
<v Speaker 3>going through these controlled stages of creating things and get

536
00:25:37.720 --> 00:25:40.200
<v Speaker 3>to an end result. Now, some of these tasks also

537
00:25:40.240 --> 00:25:42.000
<v Speaker 3>going to be parallelized, and this is something that we

538
00:25:42.039 --> 00:25:46.039
<v Speaker 3>see with coding agents like claud code that support sub agents,

539
00:25:46.119 --> 00:25:48.680
<v Speaker 3>where the agent itself can spin up sub agents with

540
00:25:48.720 --> 00:25:51.839
<v Speaker 3>their own context windows, and you can say, oh, this

541
00:25:51.880 --> 00:25:53.680
<v Speaker 3>agent's going to be writing tests for this component, this

542
00:25:53.720 --> 00:25:55.680
<v Speaker 3>agent's going to be running tests for this other component.

543
00:25:55.720 --> 00:25:58.279
<v Speaker 3>And then you get into this world of kind of

544
00:25:58.559 --> 00:26:01.640
<v Speaker 3>things are happening in parallel but also manageable chunks.

545
00:26:01.799 --> 00:26:04.519
<v Speaker 2>Yeah no, and you sort of see your role as

546
00:26:04.519 --> 00:26:08.319
<v Speaker 2>a shepherd there to push down the specifications in enough

547
00:26:08.400 --> 00:26:12.400
<v Speaker 2>detail that the tools have a chance segregating into portions

548
00:26:12.440 --> 00:26:15.920
<v Speaker 2>with headers that describe this is the context you're going

549
00:26:15.960 --> 00:26:18.480
<v Speaker 2>to be living in. But it's shorter than the overall context.

550
00:26:18.480 --> 00:26:21.319
<v Speaker 2>Now I need you to do this party, and I

551
00:26:21.880 --> 00:26:25.079
<v Speaker 2>everywhere I see this being this approach be successful with

552
00:26:25.720 --> 00:26:29.920
<v Speaker 2>unbelievable levels of testing too, right, I'm always a stun

553
00:26:30.000 --> 00:26:32.519
<v Speaker 2>to llms. Often when given an instruction for a set

554
00:26:32.519 --> 00:26:35.240
<v Speaker 2>of code to generate, get about halfway through and just

555
00:26:35.359 --> 00:26:38.480
<v Speaker 2>kind of stop. It's like, you can finish this. It's

556
00:26:38.480 --> 00:26:40.799
<v Speaker 2>your buffer overflow. I think it's a buffer overflow. And

557
00:26:40.839 --> 00:26:43.839
<v Speaker 2>so so that test approach where I want you to

558
00:26:43.839 --> 00:26:45.720
<v Speaker 2>generate the set of tests and then I want you

559
00:26:45.839 --> 00:26:48.759
<v Speaker 2>to pass all the tests before you stop. It's kind

560
00:26:48.759 --> 00:26:51.880
<v Speaker 2>of a way to again compress that context further right

561
00:26:51.920 --> 00:26:54.799
<v Speaker 2>into these test loops to try and actually get complete

562
00:26:54.839 --> 00:26:57.759
<v Speaker 2>sets of code from it, like the tools take the wrestling.

563
00:26:57.799 --> 00:27:01.200
<v Speaker 1>When that happens. When that happens, though, it's it's really

564
00:27:01.279 --> 00:27:05.079
<v Speaker 1>unnerving because it's in a state where you can't really

565
00:27:05.119 --> 00:27:07.119
<v Speaker 1>debug it because not all the code is there that

566
00:27:07.160 --> 00:27:11.319
<v Speaker 1>it was, yes, you know, spitting out and you ultimately

567
00:27:11.400 --> 00:27:14.559
<v Speaker 1>have to roll stuff back and try again. And I

568
00:27:15.160 --> 00:27:18.279
<v Speaker 1>hate that about code generation in general, is that you know,

569
00:27:18.359 --> 00:27:20.920
<v Speaker 1>now this is intelligent code generation. By the way, John

570
00:27:20.960 --> 00:27:23.799
<v Speaker 1>Lamb's been into code generation since like ninety one.

571
00:27:23.880 --> 00:27:24.799
<v Speaker 2>Before it was cool.

572
00:27:25.039 --> 00:27:28.960
<v Speaker 1>Yeah, but you know the problem of course is that

573
00:27:29.400 --> 00:27:33.559
<v Speaker 1>if it creates something that you don't understand and can't

574
00:27:33.759 --> 00:27:38.720
<v Speaker 1>explain in a meeting, for example, you're you're done for

575
00:27:39.200 --> 00:27:40.200
<v Speaker 1>in my opinion.

576
00:27:39.920 --> 00:27:41.599
<v Speaker 2>Oh absolutely absolutely.

577
00:27:41.799 --> 00:27:43.680
<v Speaker 3>And I think this is an interesting tangent here to

578
00:27:43.880 --> 00:27:49.400
<v Speaker 3>the role of expertise, Like I've heard somebody talk about

579
00:27:49.519 --> 00:27:52.039
<v Speaker 3>kind of the role of the developer moving forward. If

580
00:27:52.559 --> 00:27:56.559
<v Speaker 3>if LM has become really good at cogeneration and producing

581
00:27:56.720 --> 00:28:00.160
<v Speaker 3>just just boatloads of code, what is your role as

582
00:28:00.160 --> 00:28:03.799
<v Speaker 3>a developer on IT team? And I think there's a

583
00:28:03.960 --> 00:28:05.920
<v Speaker 3>hypoth this is that that role is going to shift

584
00:28:05.960 --> 00:28:08.920
<v Speaker 3>more to almost like a Richards. You go out like

585
00:28:08.960 --> 00:28:12.000
<v Speaker 3>the Shepherd reviewer, right, it was like okay, but like

586
00:28:12.880 --> 00:28:15.119
<v Speaker 3>even for you to be able to review things, you

587
00:28:15.240 --> 00:28:19.039
<v Speaker 3>have to have expertise to know what you're looking at, right,

588
00:28:19.119 --> 00:28:21.039
<v Speaker 3>because I've seen this happen. But like Carl, you're talking

589
00:28:21.079 --> 00:28:23.200
<v Speaker 3>about like test or and development, Like to me, this

590
00:28:23.240 --> 00:28:25.319
<v Speaker 3>aspect of like, okay, well, there's a bunch of tests,

591
00:28:25.960 --> 00:28:27.559
<v Speaker 3>and I looked at some of the tests that some

592
00:28:27.599 --> 00:28:30.000
<v Speaker 3>of the models generate, and sometimes like for me to

593
00:28:30.079 --> 00:28:31.440
<v Speaker 3>test for the test to pass.

594
00:28:31.519 --> 00:28:34.319
<v Speaker 2>Oh, let me make a change and just return true. Yeah, right,

595
00:28:34.359 --> 00:28:36.240
<v Speaker 2>and test is passing now, Hey solved it.

596
00:28:36.240 --> 00:28:36.599
<v Speaker 1>Look at it.

597
00:28:36.599 --> 00:28:37.160
<v Speaker 2>It's all green.

598
00:28:37.200 --> 00:28:37.359
<v Speaker 1>Now.

599
00:28:37.519 --> 00:28:41.000
<v Speaker 3>Nice, But you need to have the expertise to actually

600
00:28:41.039 --> 00:28:43.319
<v Speaker 3>look at it and be like, yeah, this ain't it?

601
00:28:43.480 --> 00:28:44.680
<v Speaker 2>No, like I need like I.

602
00:28:44.680 --> 00:28:46.559
<v Speaker 1>Kind of I kind of think of a roll moving

603
00:28:46.599 --> 00:28:50.039
<v Speaker 1>forward as sort of like a general contractor building a house. Right,

604
00:28:50.160 --> 00:28:52.920
<v Speaker 1>the general contractors in charge of all the subcontractors that

605
00:28:53.000 --> 00:28:56.279
<v Speaker 1>have their sub specialties. But any general contractor worth their

606
00:28:56.319 --> 00:28:59.680
<v Speaker 1>weight knows enough about those things to be able to

607
00:28:59.720 --> 00:29:02.759
<v Speaker 1>take over if the electrician is out sick, or to uh,

608
00:29:03.160 --> 00:29:06.960
<v Speaker 1>you know, remove the termite damage from these boards, if

609
00:29:07.359 --> 00:29:10.359
<v Speaker 1>the carpenter doesn't you know, isn't there that day? That

610
00:29:10.440 --> 00:29:13.119
<v Speaker 1>kind of stuff. So so you need to be able

611
00:29:13.160 --> 00:29:15.839
<v Speaker 1>to understand everything that your subs are doing and be

612
00:29:15.920 --> 00:29:18.480
<v Speaker 1>able to jump in when you can, but not necessarily

613
00:29:18.480 --> 00:29:19.960
<v Speaker 1>build the house by yourself.

614
00:29:19.640 --> 00:29:23.400
<v Speaker 3>Right, right, And we see this especially critical with things

615
00:29:23.480 --> 00:29:27.440
<v Speaker 3>like security and awe, oh my goodness, Like I see

616
00:29:27.519 --> 00:29:30.559
<v Speaker 3>so much stuff that is just tossing to get our

617
00:29:30.559 --> 00:29:33.480
<v Speaker 3>bripo that clearly has been just like the AI told

618
00:29:33.519 --> 00:29:36.119
<v Speaker 3>me that this is secure, Like oh no, you're returning

619
00:29:36.119 --> 00:29:38.240
<v Speaker 3>to the two FA code and the adjacent response is

620
00:29:38.279 --> 00:29:41.400
<v Speaker 3>you're expecting it like that's that's that's not going to

621
00:29:41.440 --> 00:29:43.720
<v Speaker 3>be good. So yeah, so the these changes right, like

622
00:29:43.880 --> 00:29:45.880
<v Speaker 3>there's a good degree of that expertise that needs to

623
00:29:45.920 --> 00:29:49.079
<v Speaker 3>be embedded into the process and see that the the

624
00:29:49.200 --> 00:29:52.680
<v Speaker 3>what the LM is generating, whether it's tests, the components,

625
00:29:52.759 --> 00:29:57.799
<v Speaker 3>the structure is actually right and scope through the project

626
00:29:57.799 --> 00:30:01.599
<v Speaker 3>you're building them because LM's go thrills all the time,

627
00:30:01.720 --> 00:30:04.240
<v Speaker 3>right all the time, and they do wild things that

628
00:30:04.319 --> 00:30:07.039
<v Speaker 3>if you don't know, like on a surface, it might

629
00:30:07.079 --> 00:30:09.880
<v Speaker 3>seem like, oh it works. I was recently like rebuilding

630
00:30:09.920 --> 00:30:11.880
<v Speaker 3>some of the stuff would alsope with the help of

631
00:30:11.920 --> 00:30:14.279
<v Speaker 3>spec get on my blog and it's like, oh, I

632
00:30:14.319 --> 00:30:16.759
<v Speaker 3>couldn't understand where your CSS is. I'm just going to

633
00:30:16.839 --> 00:30:19.119
<v Speaker 3>recreate a bunch of CSS files and so I'd have

634
00:30:19.200 --> 00:30:22.200
<v Speaker 3>like a bunch of duplication all of a sudden. Yeah

635
00:30:22.279 --> 00:30:25.359
<v Speaker 3>it works though, but if I didn't know, if I'm

636
00:30:25.359 --> 00:30:27.839
<v Speaker 3>somebody that has to maintain, they'll be like, wait, why

637
00:30:28.240 --> 00:30:32.200
<v Speaker 3>just recreate these two folders for this exact same content.

638
00:30:32.240 --> 00:30:34.599
<v Speaker 1>We're coming up with more and more of these examples

639
00:30:34.640 --> 00:30:39.640
<v Speaker 1>where having the expertise would prevent working code. That's dumb.

640
00:30:39.799 --> 00:30:42.799
<v Speaker 2>Yeah, yeah, yeah. The concept is what's worked, what's actually

641
00:30:42.839 --> 00:30:45.559
<v Speaker 2>working right, and the software clearly has a different perception

642
00:30:45.640 --> 00:30:49.759
<v Speaker 2>of working than you. Yeah right, get good enough guidelines. Hey,

643
00:30:49.759 --> 00:30:53.000
<v Speaker 2>we got to take a break for these very important messages.

644
00:30:55.119 --> 00:30:57.359
<v Speaker 1>Do you have a complex dot net monolith you'd like

645
00:30:57.400 --> 00:31:01.359
<v Speaker 1>to refactor to a micro services architecture? The micro Service

646
00:31:01.480 --> 00:31:05.200
<v Speaker 1>Extractor for dot Net tool visualizes your app and helps

647
00:31:05.240 --> 00:31:09.599
<v Speaker 1>progressively extract code into micro services. Learn more at aws

648
00:31:09.720 --> 00:31:13.319
<v Speaker 1>dot Amazon dot com, slash modernize.

649
00:31:16.680 --> 00:31:18.799
<v Speaker 2>And we're back. It's don A. Rock's Emirateard Campbell. Let's

650
00:31:18.799 --> 00:31:22.559
<v Speaker 2>Carl Franklin. You talking to our friend dem about the

651
00:31:22.680 --> 00:31:26.839
<v Speaker 2>spec kit and this idea of I think essentially formalizing

652
00:31:26.960 --> 00:31:31.359
<v Speaker 2>some practices around harnessing LMS for co generation. You're talking

653
00:31:31.400 --> 00:31:36.920
<v Speaker 2>about uml right, yeah, yeah, that's what I want in

654
00:31:36.920 --> 00:31:37.359
<v Speaker 2>my life.

655
00:31:37.400 --> 00:31:39.200
<v Speaker 1>You're still way back in the nineties.

656
00:31:39.720 --> 00:31:47.240
<v Speaker 2>Yeah, well, you know, it's linguist. It'd be interesting to

657
00:31:47.240 --> 00:31:49.759
<v Speaker 2>get to a point where it was rendering, taking images

658
00:31:49.799 --> 00:31:53.640
<v Speaker 2>and breaking them down into specifications as well. But I

659
00:31:53.640 --> 00:31:55.799
<v Speaker 2>I do you know, now we've got the I'm starting

660
00:31:55.799 --> 00:31:58.480
<v Speaker 2>to see the term work slop, just like AI slop,

661
00:31:58.559 --> 00:32:03.440
<v Speaker 2>but it's hey, you you responded to a mediocre corporate

662
00:32:03.480 --> 00:32:07.160
<v Speaker 2>email with even with generated results of even more mediocre.

663
00:32:07.440 --> 00:32:10.319
<v Speaker 2>And the evil part about this is it takes time

664
00:32:10.400 --> 00:32:13.319
<v Speaker 2>to read that and realize it's garbage, and so you're

665
00:32:13.319 --> 00:32:16.599
<v Speaker 2>literally propagating garbage downward and making everything slower. Like there's

666
00:32:16.599 --> 00:32:22.160
<v Speaker 2>a real risk here about not creating quality, but there

667
00:32:22.200 --> 00:32:24.359
<v Speaker 2>is a way to create quality, like I have seen

668
00:32:24.400 --> 00:32:27.680
<v Speaker 2>these things be successful. So part of this is really

669
00:32:27.880 --> 00:32:30.240
<v Speaker 2>building you know, we talked about what's our job as

670
00:32:30.279 --> 00:32:33.240
<v Speaker 2>the human in the loop here, it's actually having an

671
00:32:33.279 --> 00:32:36.480
<v Speaker 2>eye to quality results that just setting it to true

672
00:32:36.519 --> 00:32:40.640
<v Speaker 2>is non as acceptable that these tests are comprehensive. You know,

673
00:32:40.759 --> 00:32:43.119
<v Speaker 2>you've got it, and but I also think you're going

674
00:32:43.200 --> 00:32:45.680
<v Speaker 2>to be used the tool a lot for this. I

675
00:32:45.880 --> 00:32:49.279
<v Speaker 2>like the idea of co generated from Claude being evaluated,

676
00:32:50.200 --> 00:32:53.640
<v Speaker 2>you know, by open AI and how does it what

677
00:32:53.759 --> 00:32:56.200
<v Speaker 2>its assessment looks like, and going passing back and forth

678
00:32:56.240 --> 00:33:00.160
<v Speaker 2>between them so that you do have other assessments of

679
00:33:00.200 --> 00:33:01.160
<v Speaker 2>everything being made.

680
00:33:01.400 --> 00:33:04.799
<v Speaker 1>Have you guys ever hired somebody who talked to good

681
00:33:04.839 --> 00:33:07.200
<v Speaker 1>talk and then when they sent their code in you

682
00:33:07.200 --> 00:33:08.839
<v Speaker 1>could tell they had no idea what they were doing

683
00:33:08.880 --> 00:33:12.440
<v Speaker 1>and you're just frustrated. You could lose your mind like that,

684
00:33:12.599 --> 00:33:17.240
<v Speaker 1>Like if you're constantly retelling an LLM, No don't you

685
00:33:17.480 --> 00:33:21.559
<v Speaker 1>don't downgrade to dot eight? Was dot nine? Did I

686
00:33:21.599 --> 00:33:22.920
<v Speaker 1>tell you the down grade?

687
00:33:23.000 --> 00:33:23.079
<v Speaker 3>No?

688
00:33:23.200 --> 00:33:25.039
<v Speaker 1>I did not, So why are you doing? You could

689
00:33:25.079 --> 00:33:28.400
<v Speaker 1>actually lose your mind if you know, after a while,

690
00:33:28.400 --> 00:33:31.599
<v Speaker 1>if that's your job and no wonder people want to

691
00:33:31.599 --> 00:33:34.319
<v Speaker 1>write code because at least they're in control of it

692
00:33:34.400 --> 00:33:36.000
<v Speaker 1>and they got no one to blame but themselves.

693
00:33:37.359 --> 00:33:40.319
<v Speaker 3>Yeah, so for that, by the way, like you call

694
00:33:40.359 --> 00:33:42.240
<v Speaker 3>out of a very important point, which is, how do

695
00:33:42.279 --> 00:33:44.119
<v Speaker 3>you set up these kind of requirements that the LM

696
00:33:44.119 --> 00:33:45.759
<v Speaker 3>does not go off the rails in terms of your

697
00:33:45.759 --> 00:33:49.559
<v Speaker 3>technical requirements and would spec it introduced this concept of

698
00:33:50.200 --> 00:33:54.079
<v Speaker 3>the constitution. It sounds very fancy or like the you know,

699
00:33:54.160 --> 00:33:56.279
<v Speaker 3>call it the charter if you will, or the Karda

700
00:33:56.359 --> 00:34:00.799
<v Speaker 3>if you're British. You know, basically outline, it's the fundamental

701
00:34:00.799 --> 00:34:05.359
<v Speaker 3>guys exactly, like the non negotiable things that will absolutely

702
00:34:05.319 --> 00:34:07.039
<v Speaker 3>apply to your project. And this is where we've seen

703
00:34:07.079 --> 00:34:09.639
<v Speaker 3>a lot of successful people coming in and saying I

704
00:34:09.719 --> 00:34:12.079
<v Speaker 3>will write my constitution and say you always use.

705
00:34:11.960 --> 00:34:12.719
<v Speaker 2>Dot net nine.

706
00:34:13.239 --> 00:34:16.079
<v Speaker 3>You never downgrade anything else like, And the Constitution is

707
00:34:16.119 --> 00:34:18.679
<v Speaker 3>grounded in every part of the spec process so that

708
00:34:18.760 --> 00:34:21.360
<v Speaker 3>when it goes through like the technical plan and task breakdown,

709
00:34:21.400 --> 00:34:23.480
<v Speaker 3>it always has to go and check like, what does

710
00:34:23.480 --> 00:34:24.559
<v Speaker 3>the Constitution say about us?

711
00:34:24.559 --> 00:34:24.719
<v Speaker 1>Oh?

712
00:34:24.760 --> 00:34:27.320
<v Speaker 3>Dot net nine? Oops, I put dot net eight. Okay,

713
00:34:27.400 --> 00:34:29.719
<v Speaker 3>can't do that. That's a constitutional violation. I'm gonna go

714
00:34:29.719 --> 00:34:30.519
<v Speaker 3>ahead and redo this.

715
00:34:30.639 --> 00:34:35.639
<v Speaker 1>Get up copilot agent. I think the engine was or

716
00:34:35.719 --> 00:34:38.559
<v Speaker 1>still is in written in dot net eight, and so

717
00:34:38.599 --> 00:34:41.719
<v Speaker 1>it didn't have a dot net nine compiling environment, and

718
00:34:41.800 --> 00:34:45.840
<v Speaker 1>so it would always go downgrade and think it was

719
00:34:45.880 --> 00:34:46.599
<v Speaker 1>doing you a favor.

720
00:34:46.880 --> 00:34:49.599
<v Speaker 2>Right, So theory that's a long training thatta has a

721
00:34:49.639 --> 00:34:52.400
<v Speaker 2>lot of impact on this. That's the long term support version, right,

722
00:34:52.480 --> 00:34:57.559
<v Speaker 2>So there's a case but still but still, but you know,

723
00:34:57.840 --> 00:34:59.920
<v Speaker 2>the only have this great race of context, which is

724
00:35:00.199 --> 00:35:04.920
<v Speaker 2>you know you're describing the Constitution is a prefix prompt, right,

725
00:35:05.039 --> 00:35:07.480
<v Speaker 2>It's like before you do anything, these are the rules.

726
00:35:07.480 --> 00:35:09.960
<v Speaker 2>So a bunch of our context is now consumed by

727
00:35:10.000 --> 00:35:12.599
<v Speaker 2>the prefix yes and no. Then we have the sort

728
00:35:12.639 --> 00:35:15.559
<v Speaker 2>of state of being of the project, and then the

729
00:35:15.800 --> 00:35:18.960
<v Speaker 2>request for what to create I'll say, we do it

730
00:35:19.000 --> 00:35:22.639
<v Speaker 2>a little bit even trickier than that. So the Constitution

731
00:35:22.760 --> 00:35:25.440
<v Speaker 2>is embedded in other prompts where you can essentially say,

732
00:35:25.880 --> 00:35:28.880
<v Speaker 2>if you're building a technical plan, consult the Constitution, and

733
00:35:28.920 --> 00:35:33.039
<v Speaker 2>within the technical plan, create a checklist of constitutional checks

734
00:35:33.079 --> 00:35:34.880
<v Speaker 2>you have to go through before you move forward.

735
00:35:35.280 --> 00:35:37.599
<v Speaker 3>So instead of us embedding the Constitution, the Constitution itself

736
00:35:37.599 --> 00:35:41.239
<v Speaker 3>can say like, oh, okay, this has to be a Net

737
00:35:41.320 --> 00:35:44.360
<v Speaker 3>nine application, this has to be using this library to

738
00:35:44.360 --> 00:35:48.239
<v Speaker 3>connect to Microsoft SQL server. And then when you get

739
00:35:48.239 --> 00:35:51.320
<v Speaker 3>to the implementation stage, before you do an implementation, we

740
00:35:51.360 --> 00:35:54.079
<v Speaker 3>also do a checklist of essentially saying can you cross

741
00:35:54.199 --> 00:35:58.000
<v Speaker 3>check once more the Constitution against the plan, against the task,

742
00:35:58.039 --> 00:36:01.079
<v Speaker 3>against the spec and see if there's any violations. So

743
00:36:01.119 --> 00:36:03.840
<v Speaker 3>you're essentially creating almost unit tests for.

744
00:36:03.840 --> 00:36:05.440
<v Speaker 2>English like that.

745
00:36:05.440 --> 00:36:07.639
<v Speaker 3>That's kind of the framing seris Okay, let me, let

746
00:36:07.679 --> 00:36:09.280
<v Speaker 3>me go and just cross check to make sure that

747
00:36:09.400 --> 00:36:13.039
<v Speaker 3>nothing went off the rails, because too often people fall

748
00:36:13.079 --> 00:36:15.840
<v Speaker 3>into this kind of habit of oh, I've done the spec,

749
00:36:15.880 --> 00:36:18.199
<v Speaker 3>I've done the planet done and task great, go build

750
00:36:18.199 --> 00:36:21.519
<v Speaker 3>this now. But that's like hold on, you still need

751
00:36:21.559 --> 00:36:24.599
<v Speaker 3>to check that what it created actually matches the expectation requirements.

752
00:36:24.599 --> 00:36:26.280
<v Speaker 3>So there's a bit of a process, right, And I

753
00:36:26.320 --> 00:36:27.760
<v Speaker 3>think this is where I was talking about, Like this

754
00:36:27.840 --> 00:36:30.800
<v Speaker 3>is the mental shift that you now have to think

755
00:36:30.840 --> 00:36:33.639
<v Speaker 3>about those things that you did not before, because before

756
00:36:33.639 --> 00:36:35.480
<v Speaker 3>you would just start writing code and be like, oh sure, yeah,

757
00:36:35.559 --> 00:36:37.360
<v Speaker 3>let me bootstrap a dot A nine project and visual

758
00:36:37.400 --> 00:36:40.519
<v Speaker 3>studio at my NuGet packages and be on my merryway.

759
00:36:41.079 --> 00:36:43.559
<v Speaker 3>Here it's like now I need to basically like spell

760
00:36:43.599 --> 00:36:46.199
<v Speaker 3>it out for it. For like, you have an over

761
00:36:46.280 --> 00:36:49.440
<v Speaker 3>eager intern that is very very happy to help you

762
00:36:49.960 --> 00:36:51.639
<v Speaker 3>but has no knowledge of what you're trying to do

763
00:36:51.679 --> 00:36:53.159
<v Speaker 3>and just go like if you don't tell me, I'll

764
00:36:53.199 --> 00:36:55.719
<v Speaker 3>just guess. And this is where you're trying to kind

765
00:36:55.719 --> 00:36:58.119
<v Speaker 3>of like put guardrails and say like can I guide

766
00:36:58.159 --> 00:37:00.199
<v Speaker 3>you to the right thing, to the exactly what I want?

767
00:37:00.280 --> 00:37:03.880
<v Speaker 1>Reminds me of Scooter from Mondays. Mister Miller, shop it

768
00:37:03.960 --> 00:37:08.800
<v Speaker 1>on your pencils, I'll shove you beginning. I didn't find

769
00:37:08.840 --> 00:37:11.079
<v Speaker 1>him with pencils up with cranons in shopping to miss

770
00:37:11.119 --> 00:37:11.480
<v Speaker 1>the Miller.

771
00:37:11.599 --> 00:37:18.079
<v Speaker 2>It's exactly that. It's exactly that. Uh, Now, I gotta

772
00:37:18.119 --> 00:37:20.320
<v Speaker 2>think there's some people listening. Is this even worth it? Then?

773
00:37:20.519 --> 00:37:23.039
<v Speaker 2>Like all of this work to try and get this

774
00:37:23.119 --> 00:37:25.079
<v Speaker 2>code generation to behave properly.

775
00:37:25.679 --> 00:37:28.000
<v Speaker 3>I think it depends. I think I'll say like it

776
00:37:28.039 --> 00:37:30.800
<v Speaker 3>depends right, like it's it's a I I. I'd like

777
00:37:30.880 --> 00:37:32.519
<v Speaker 3>to think the analogy like if you know, if you

778
00:37:32.519 --> 00:37:34.639
<v Speaker 3>have a hammer, everything looks like a nail. So it's

779
00:37:34.679 --> 00:37:35.800
<v Speaker 3>like I don't want to say like you have to

780
00:37:35.880 --> 00:37:40.760
<v Speaker 3>use this for everything, but there's certainly value in getting

781
00:37:40.880 --> 00:37:45.400
<v Speaker 3>from zero to a new feature, to a new component,

782
00:37:45.679 --> 00:37:50.440
<v Speaker 3>to a new entirely new product with this. Even if

783
00:37:50.559 --> 00:37:54.239
<v Speaker 3>you use this essentially scaffold this, just just get the

784
00:37:54.280 --> 00:37:59.960
<v Speaker 3>bulk of the things, get the four pieces of vail,

785
00:38:00.840 --> 00:38:03.119
<v Speaker 3>and then you with your expertise can come in. It's

786
00:38:03.159 --> 00:38:05.000
<v Speaker 3>like you want to go and rewrite this component, go

787
00:38:05.039 --> 00:38:06.440
<v Speaker 3>ahead and do this, you want to add like a

788
00:38:06.480 --> 00:38:08.239
<v Speaker 3>moon and go ahead to do this. But it saves

789
00:38:08.239 --> 00:38:12.519
<v Speaker 3>like a lot of this tediousness. So also a lot

790
00:38:12.519 --> 00:38:15.000
<v Speaker 3>of these models are getting better, Like Sonnet four to

791
00:38:15.039 --> 00:38:17.559
<v Speaker 3>five got released last week, Like GPT five got released

792
00:38:17.599 --> 00:38:20.760
<v Speaker 3>like it was like last month, and like GPT five

793
00:38:20.800 --> 00:38:24.360
<v Speaker 3>compared to GPT four was like night and day when

794
00:38:24.360 --> 00:38:28.519
<v Speaker 3>it comes to coding, right, which like who saw that coming?

795
00:38:28.800 --> 00:38:30.320
<v Speaker 2>Right? But like they're getting better and better.

796
00:38:30.360 --> 00:38:32.840
<v Speaker 3>And I totally see a world where a lot of

797
00:38:32.840 --> 00:38:36.599
<v Speaker 3>these guardrails were just kind of become leaner and it's

798
00:38:36.639 --> 00:38:38.400
<v Speaker 3>not going to be as heavyweight because.

799
00:38:38.199 --> 00:38:39.960
<v Speaker 2>You're not going to bang into them as often.

800
00:38:39.960 --> 00:38:42.480
<v Speaker 3>And yeah, exactly because a lot of the constraints that

801
00:38:42.480 --> 00:38:45.400
<v Speaker 3>we talked about like they wear. The reason they're there

802
00:38:45.480 --> 00:38:48.480
<v Speaker 3>is that they were inspired by Sonnet four being over eager.

803
00:38:48.639 --> 00:38:51.039
<v Speaker 2>Right, Yeah, I know every law is written in blood, right,

804
00:38:51.119 --> 00:38:53.280
<v Speaker 2>like right right, what we're seeing.

805
00:38:53.639 --> 00:38:56.440
<v Speaker 3>But as they become better, a lot of these constraints

806
00:38:56.440 --> 00:38:58.119
<v Speaker 3>will become more lax because like you can just tell

807
00:38:58.159 --> 00:39:00.280
<v Speaker 3>it like it's always dotten at nine is like cool,

808
00:39:00.320 --> 00:39:02.519
<v Speaker 3>I remember it's always done at nine, I'm never touching

809
00:39:02.559 --> 00:39:03.039
<v Speaker 3>anything else.

810
00:39:03.119 --> 00:39:05.760
<v Speaker 2>Yeah, it's just you don't bang against it as much. Yeah,

811
00:39:05.880 --> 00:39:10.119
<v Speaker 2>I just think there's an interesting balancing act for you know,

812
00:39:10.159 --> 00:39:12.519
<v Speaker 2>what really you're saying them is there's a case for waiting.

813
00:39:12.679 --> 00:39:14.559
<v Speaker 3>There's a case for waiting and experimenting.

814
00:39:14.639 --> 00:39:16.440
<v Speaker 2>If I wait, the tools will get better.

815
00:39:16.280 --> 00:39:18.480
<v Speaker 3>And experimenting and seeing what works in a wood doesn't

816
00:39:18.480 --> 00:39:21.320
<v Speaker 3>then because Spekeett itself is an experiment, right, like we are.

817
00:39:21.840 --> 00:39:25.119
<v Speaker 3>We got into the world with the intent of can

818
00:39:25.199 --> 00:39:28.480
<v Speaker 3>you help us verify where this works and where it doesn't. Yeah,

819
00:39:28.519 --> 00:39:31.280
<v Speaker 3>and like we're not making any statements of saying like, oh, yeah,

820
00:39:31.320 --> 00:39:34.320
<v Speaker 3>this is going to absolutely destroy the software engineering career

821
00:39:34.360 --> 00:39:35.760
<v Speaker 3>track is the yeah I got to write the code

822
00:39:35.760 --> 00:39:38.440
<v Speaker 3>for It's like, no, like I want you to test

823
00:39:38.480 --> 00:39:41.719
<v Speaker 3>this and tell me. Yeah, I've tried adding a feature

824
00:39:41.760 --> 00:39:44.360
<v Speaker 3>to my enterprise app and it just completely went off

825
00:39:44.360 --> 00:39:45.920
<v Speaker 3>the rails and it was completely useless.

826
00:39:46.039 --> 00:39:47.559
<v Speaker 2>Like that to me is like super helpful. You back,

827
00:39:47.599 --> 00:39:49.760
<v Speaker 2>I'd love to know that. No. And I saw this

828
00:39:49.840 --> 00:39:54.719
<v Speaker 2>in the early GitHub copilot days where people's behavior changed

829
00:39:54.800 --> 00:39:59.760
<v Speaker 2>in the repository, where there was far more reverts yep. Yeah,

830
00:40:00.119 --> 00:40:01.760
<v Speaker 2>like they would use the tool to generate some core,

831
00:40:01.920 --> 00:40:05.119
<v Speaker 2>they push it up, it would blow up, they would revert. Yeah,

832
00:40:05.360 --> 00:40:07.320
<v Speaker 2>And so you know, we I could definitely tell you

833
00:40:07.320 --> 00:40:09.360
<v Speaker 2>were using the tool because you were using the toolimate

834
00:40:09.400 --> 00:40:11.639
<v Speaker 2>the code and then you weren't really editing much, or

835
00:40:11.760 --> 00:40:13.159
<v Speaker 2>you weren't doing a whole lot. You were just trying.

836
00:40:13.199 --> 00:40:15.679
<v Speaker 2>You were stuffing into the test suite. See what happened,

837
00:40:15.719 --> 00:40:18.159
<v Speaker 2>and what happened was bl you know what, I'm going.

838
00:40:18.079 --> 00:40:21.159
<v Speaker 1>To close this issue and open it again.

839
00:40:22.280 --> 00:40:24.480
<v Speaker 2>Yeah, you know we we can just make that branch

840
00:40:24.559 --> 00:40:26.559
<v Speaker 2>go away again.

841
00:40:27.880 --> 00:40:29.760
<v Speaker 1>And everybody else how we screwed this up.

842
00:40:30.239 --> 00:40:32.239
<v Speaker 3>This was a forcing function for me to actually get

843
00:40:32.320 --> 00:40:36.559
<v Speaker 3>much closer to get interesting, because once I started going

844
00:40:36.559 --> 00:40:38.599
<v Speaker 3>through like the spectrum processes like okay, let me go

845
00:40:39.119 --> 00:40:40.840
<v Speaker 3>create the spec, let me create the plan, let me

846
00:40:40.840 --> 00:40:43.920
<v Speaker 3>break it down and task. Okay, this looks reasonable. Let

847
00:40:43.960 --> 00:40:46.400
<v Speaker 3>me check the SIN. Okay, so now I have the check.

848
00:40:46.480 --> 00:40:48.880
<v Speaker 3>Now let's start generating the code. It's like, okay, I

849
00:40:49.039 --> 00:40:51.199
<v Speaker 3>don't even push. The code I just generated was like, okay,

850
00:40:51.239 --> 00:40:54.800
<v Speaker 3>this component, Okay, now it looks right. Checkpoint check the SIN.

851
00:40:55.400 --> 00:40:58.239
<v Speaker 3>Now continue generating. Oh now it's screwed up. Just blow

852
00:40:58.239 --> 00:40:59.719
<v Speaker 3>it all away. Let's do it again.

853
00:41:00.199 --> 00:41:03.199
<v Speaker 2>The code that worked in the previous build does work

854
00:41:03.280 --> 00:41:06.159
<v Speaker 2>this next build. Yeah, exactly.

855
00:41:06.239 --> 00:41:10.360
<v Speaker 3>But the geit process is super helpful in this context

856
00:41:10.400 --> 00:41:13.039
<v Speaker 3>because it allows me to checkpoint things, and it's like,

857
00:41:13.719 --> 00:41:16.119
<v Speaker 3>all of a sudden, get went from this like, oh yeah,

858
00:41:16.119 --> 00:41:18.519
<v Speaker 3>I just use this toss things into gethub into an

859
00:41:18.559 --> 00:41:21.159
<v Speaker 3>actual like oh, I can checkpoint things, and I can

860
00:41:21.199 --> 00:41:25.079
<v Speaker 3>create multiple branches and multiple implementations across different branches and

861
00:41:25.159 --> 00:41:28.079
<v Speaker 3>then test them separately. Oh I'm curious, what if this

862
00:41:28.199 --> 00:41:30.920
<v Speaker 3>button would instead be this kind of component. Let me

863
00:41:30.920 --> 00:41:33.400
<v Speaker 3>create a new branch and do this and test this right, So,

864
00:41:33.440 --> 00:41:37.440
<v Speaker 3>like you, you go through the process of using get

865
00:41:37.519 --> 00:41:37.800
<v Speaker 3>as an.

866
00:41:37.760 --> 00:41:40.840
<v Speaker 2>Actual helper here, Yeah, no kidding, surprised. Can I go

867
00:41:40.920 --> 00:41:43.360
<v Speaker 2>to the checkpoint code and point the LM at dot

868
00:41:43.440 --> 00:41:46.840
<v Speaker 2>and said, this code works? Why is this changed? Or

869
00:41:47.039 --> 00:41:48.920
<v Speaker 2>you're going to make changes? Make sure it passes the

870
00:41:48.920 --> 00:41:54.719
<v Speaker 2>same test, so you can use your validation skills against

871
00:41:54.760 --> 00:41:57.920
<v Speaker 2>the various pieces of code with these checkpoints and force

872
00:41:58.039 --> 00:42:00.840
<v Speaker 2>the tool down about right, let.

873
00:42:00.760 --> 00:42:02.920
<v Speaker 1>Me change GET testing tests?

874
00:42:03.079 --> 00:42:04.400
<v Speaker 2>Do I just change the tests?

875
00:42:06.000 --> 00:42:08.599
<v Speaker 3>This is like see the lesson for future software engineers

876
00:42:08.599 --> 00:42:10.239
<v Speaker 3>listening to this learn GET.

877
00:42:10.880 --> 00:42:13.480
<v Speaker 2>Yeah, that's like that's gonna be your your your savior.

878
00:42:13.719 --> 00:42:13.960
<v Speaker 1>GET.

879
00:42:14.039 --> 00:42:15.760
<v Speaker 2>This is a tool that will help you. Yeah, but

880
00:42:16.000 --> 00:42:18.360
<v Speaker 2>you know and now you're you're helping me shape my

881
00:42:18.440 --> 00:42:21.800
<v Speaker 2>mind on the how different our work looks like and

882
00:42:21.880 --> 00:42:23.639
<v Speaker 2>the tools that are actually going to help us to

883
00:42:24.079 --> 00:42:27.000
<v Speaker 2>get there. And again with always designed to am I

884
00:42:27.079 --> 00:42:30.679
<v Speaker 2>better off? Is as better results? I've definitely talked to

885
00:42:30.719 --> 00:42:33.039
<v Speaker 2>folks here, So I'm being successful as a tool, but

886
00:42:33.079 --> 00:42:36.239
<v Speaker 2>I'm not having as much fun, right, Yeah, yeah, I can.

887
00:42:36.360 --> 00:42:38.599
<v Speaker 3>I can see this and I think there's a something

888
00:42:38.599 --> 00:42:41.400
<v Speaker 3>to be said about the fact that coding and self

889
00:42:41.519 --> 00:42:44.159
<v Speaker 3>engineering in and of itself is a creative process, right,

890
00:42:44.719 --> 00:42:46.960
<v Speaker 3>Like you're you're sitting down, like, let me think through

891
00:42:47.000 --> 00:42:49.199
<v Speaker 3>this problem, let me figure out how to this. But

892
00:42:49.239 --> 00:42:51.800
<v Speaker 3>also there's no denying that there's like, at least for me,

893
00:42:51.880 --> 00:42:53.400
<v Speaker 3>I know for a fact, that there's a lot of

894
00:42:53.800 --> 00:42:56.480
<v Speaker 3>tedious tasks like oh my goodness, like I just do

895
00:42:56.559 --> 00:42:59.639
<v Speaker 3>not want to deal with this, like writing us like okay,

896
00:42:59.679 --> 00:43:01.159
<v Speaker 3>you need to write one hundred unit test for all

897
00:43:01.199 --> 00:43:04.159
<v Speaker 3>these components, Like oh, like, can I can just somebody

898
00:43:04.159 --> 00:43:05.960
<v Speaker 3>write these for me so I can actually focus on

899
00:43:06.000 --> 00:43:06.679
<v Speaker 3>the components.

900
00:43:07.079 --> 00:43:09.559
<v Speaker 2>One hundred percent coverage is so much more approachable when

901
00:43:09.559 --> 00:43:12.920
<v Speaker 2>you got a tool generating the test solely. Man, Yeah,

902
00:43:13.000 --> 00:43:16.440
<v Speaker 2>what'd you call me? So?

903
00:43:17.199 --> 00:43:21.599
<v Speaker 1>Yeah, it's almost like you know these people who get

904
00:43:21.599 --> 00:43:24.639
<v Speaker 1>their dopamine rush from just a clean compile, right, you know,

905
00:43:25.320 --> 00:43:27.320
<v Speaker 1>you know, I just want to write this feature compiles.

906
00:43:27.320 --> 00:43:29.360
<v Speaker 1>All right, it's good, but I get my dopamine rush

907
00:43:29.440 --> 00:43:32.280
<v Speaker 1>on those weekly meetings where I show the boss what

908
00:43:32.320 --> 00:43:35.519
<v Speaker 1>I've done and it works and everything's good. Yes, that's

909
00:43:35.800 --> 00:43:38.960
<v Speaker 1>I'm holding off for the for my endorphins. To kick

910
00:43:39.000 --> 00:43:41.719
<v Speaker 1>in at that moment. It's delayed gratification.

911
00:43:41.800 --> 00:43:42.679
<v Speaker 2>I think that's that's there.

912
00:43:42.800 --> 00:43:45.840
<v Speaker 3>There's value in that in the sense that we often

913
00:43:45.880 --> 00:43:51.280
<v Speaker 3>can forget what this is in service of, right, Like

914
00:43:51.599 --> 00:43:54.280
<v Speaker 3>you're like looking at me, like the stuff that the

915
00:43:54.320 --> 00:43:55.639
<v Speaker 3>code that I write is in service I.

916
00:43:55.599 --> 00:43:58.360
<v Speaker 2>Want to solve a specific customer problem. Yeah, this is

917
00:43:58.400 --> 00:44:00.960
<v Speaker 2>our whole VB conversation at the of it. Yeah, no,

918
00:44:01.039 --> 00:44:03.840
<v Speaker 2>it wasn't as cool as C plus plus, but boy

919
00:44:03.880 --> 00:44:07.360
<v Speaker 2>is sure did bring solutions to customers faster. Exactly if

920
00:44:07.400 --> 00:44:10.880
<v Speaker 2>this can bring solutions to customers faster, Okay, and how

921
00:44:10.880 --> 00:44:12.840
<v Speaker 2>many of your customers did care that, Like, oh you

922
00:44:12.840 --> 00:44:16.519
<v Speaker 2>didn't write this in C plus plus ooh, well, as

923
00:44:16.519 --> 00:44:19.320
<v Speaker 2>long as it doesn't look like AI slop, right, this

924
00:44:19.360 --> 00:44:22.760
<v Speaker 2>is come down to it. If it's triggering people the

925
00:44:22.840 --> 00:44:25.800
<v Speaker 2>way that AI slop triggers people, then you're not succeeding.

926
00:44:26.199 --> 00:44:27.639
<v Speaker 2>Just say no to AI slope.

927
00:44:27.800 --> 00:44:28.079
<v Speaker 1>There you go.

928
00:44:28.639 --> 00:44:31.480
<v Speaker 2>Yeah, demand quality from these tools. But I'm also you

929
00:44:31.480 --> 00:44:32.920
<v Speaker 2>said this a while ago, and I should have grabbed

930
00:44:32.960 --> 00:44:35.519
<v Speaker 2>onto this earlier down if this thing gets me eighty

931
00:44:35.519 --> 00:44:37.960
<v Speaker 2>percent of the way by dealing with all the scot

932
00:44:38.000 --> 00:44:39.880
<v Speaker 2>work so that I now have to just work on

933
00:44:39.920 --> 00:44:43.159
<v Speaker 2>the twenty, which is arguably the coolest code and the

934
00:44:43.199 --> 00:44:45.679
<v Speaker 2>most important in the project. You did me a favor,

935
00:44:45.760 --> 00:44:47.760
<v Speaker 2>There's no two ways about that. Yeah. You know, if

936
00:44:47.760 --> 00:44:50.840
<v Speaker 2>we could just Prato's law this and get that eighty

937
00:44:50.880 --> 00:44:53.000
<v Speaker 2>out so that we can work on the hard stuff,

938
00:44:53.000 --> 00:44:54.960
<v Speaker 2>we've definitely saved time provided value.

939
00:44:55.039 --> 00:44:57.400
<v Speaker 3>I think that's the goal. Hard stuff is more fun anyway, Yeah,

940
00:44:57.400 --> 00:44:58.039
<v Speaker 3>that's the more fun.

941
00:44:58.239 --> 00:45:01.400
<v Speaker 2>Yeah. Yeah, well it's plus you're going to fight with

942
00:45:01.519 --> 00:45:04.760
<v Speaker 2>the spec and the tokens to get those last few

943
00:45:04.800 --> 00:45:08.039
<v Speaker 2>points so hard it's probably not worth it. Like there's

944
00:45:08.079 --> 00:45:10.679
<v Speaker 2>going to be a point of diminishing returns on this, yeah,

945
00:45:11.000 --> 00:45:12.719
<v Speaker 2>at some point. And I'll say, like, it's also the

946
00:45:15.079 --> 00:45:18.000
<v Speaker 2>mental shift of you thinking ahead of these problems and

947
00:45:18.159 --> 00:45:22.159
<v Speaker 2>having an actual artifact and being more crisp with your

948
00:45:22.199 --> 00:45:25.119
<v Speaker 2>thoughts and more crisp with how the rubber dying effect

949
00:45:25.119 --> 00:45:25.679
<v Speaker 2>here is huge.

950
00:45:25.760 --> 00:45:28.840
<v Speaker 3>Yes, exactly is going to help you down the line

951
00:45:28.880 --> 00:45:31.320
<v Speaker 3>to just create better stuffware, just but just by proxy

952
00:45:31.880 --> 00:45:34.960
<v Speaker 3>of you being able to think about it more and

953
00:45:35.079 --> 00:45:37.199
<v Speaker 3>understand how does this actually work?

954
00:45:37.400 --> 00:45:38.800
<v Speaker 2>Why is it the way that it is?

955
00:45:39.519 --> 00:45:41.000
<v Speaker 3>What are the things that I should be thinking of

956
00:45:41.039 --> 00:45:43.480
<v Speaker 3>that I'm not thinking about You know, we saw this

957
00:45:43.519 --> 00:45:47.280
<v Speaker 3>happen in offshoring when when it got easier to offshore

958
00:45:47.400 --> 00:45:50.440
<v Speaker 3>to low cost markets and you didn't get good results,

959
00:45:50.440 --> 00:45:52.559
<v Speaker 3>and you learned to write better and better specifications and

960
00:45:52.559 --> 00:45:55.960
<v Speaker 3>better and better project plans so that you were successful

961
00:45:56.000 --> 00:45:57.119
<v Speaker 3>with the offshore developers.

962
00:45:57.119 --> 00:45:58.880
<v Speaker 2>It turned out if you took those things on shore,

963
00:45:58.960 --> 00:46:02.079
<v Speaker 2>you got more success to Yeah, shocker, right, Like.

964
00:46:05.639 --> 00:46:08.719
<v Speaker 3>If you're better and specifying your requirements, you get better outputs.

965
00:46:08.840 --> 00:46:12.400
<v Speaker 2>Wow, there is a reality check to this whole thing.

966
00:46:12.440 --> 00:46:16.880
<v Speaker 2>But I really appreciate the idea of don't try. You're

967
00:46:16.880 --> 00:46:18.719
<v Speaker 2>getting one hundred pcent is probably not worth it that

968
00:46:18.960 --> 00:46:21.199
<v Speaker 2>getting And once you get into the eighties, you've had

969
00:46:21.199 --> 00:46:23.119
<v Speaker 2>a win and now you can go do the rest.

970
00:46:23.400 --> 00:46:25.400
<v Speaker 2>Here's the other thing, you know, because my instinct, I'm

971
00:46:25.440 --> 00:46:28.559
<v Speaker 2>going back to code generation responses in the language you've used. Now,

972
00:46:28.559 --> 00:46:30.280
<v Speaker 2>I feel like I'm dealing with the code generator, which

973
00:46:30.360 --> 00:46:33.280
<v Speaker 2>clearly I am. As soon as I touch that code,

974
00:46:33.280 --> 00:46:35.519
<v Speaker 2>I can't touch the code generator again. But that's not

975
00:46:35.639 --> 00:46:39.960
<v Speaker 2>true than l L. No, You're you're collaborating again. You

976
00:46:40.159 --> 00:46:43.199
<v Speaker 2>have an intern in your hands. M hmm. You're working

977
00:46:43.199 --> 00:46:45.760
<v Speaker 2>together to write the code. Yeah, I'm you're going to

978
00:46:45.800 --> 00:46:48.639
<v Speaker 2>resist the anthropomorphic terms there dem like I have a

979
00:46:48.639 --> 00:46:50.840
<v Speaker 2>piece of software that's fair, that's fair.

980
00:46:50.920 --> 00:46:52.760
<v Speaker 1>Yeah, but it sooner or later you're going to have

981
00:46:52.840 --> 00:46:56.360
<v Speaker 1>to agree that the world wants to anthropomorphize these things.

982
00:46:56.400 --> 00:47:00.559
<v Speaker 2>And I know the world wants it. It's just wrong.

983
00:47:01.000 --> 00:47:02.639
<v Speaker 2>It's absolutely fair.

984
00:47:02.679 --> 00:47:04.960
<v Speaker 3>Actually, Like I I can get totally behind that idea,

985
00:47:05.000 --> 00:47:07.880
<v Speaker 3>like we should not entermorphize the AI because like, it's

986
00:47:07.960 --> 00:47:09.599
<v Speaker 3>just an algorithm, it's a computer background.

987
00:47:09.599 --> 00:47:12.480
<v Speaker 1>But it makes it easier for us to understand it

988
00:47:12.639 --> 00:47:15.800
<v Speaker 1>when we put it in human terms, right if when

989
00:47:15.840 --> 00:47:16.280
<v Speaker 1>we I.

990
00:47:16.199 --> 00:47:19.039
<v Speaker 2>Think it makes it easier if a story execuse it inappropriately.

991
00:47:19.440 --> 00:47:21.880
<v Speaker 3>Yes, yes, that I think it's like it gives it

992
00:47:21.920 --> 00:47:23.519
<v Speaker 3>gives us the way of saying like, oh, it's like

993
00:47:23.599 --> 00:47:25.480
<v Speaker 3>it's just it's just like a humans, Like, no, it's

994
00:47:25.480 --> 00:47:26.000
<v Speaker 3>not like a human.

995
00:47:26.079 --> 00:47:27.079
<v Speaker 2>It's not at all like a human.

996
00:47:27.159 --> 00:47:30.000
<v Speaker 1>Right, But if I was going to say what was

997
00:47:30.039 --> 00:47:34.440
<v Speaker 1>it thinking rather than well, what algorithmic sequences brought.

998
00:47:34.199 --> 00:47:36.960
<v Speaker 2>It to the result that it did? Now true?

999
00:47:37.159 --> 00:47:40.880
<v Speaker 1>Which would you rather let me ask you? Right, No, it's.

1000
00:47:40.719 --> 00:47:41.679
<v Speaker 2>True, it's true.

1001
00:47:41.679 --> 00:47:43.920
<v Speaker 3>I think there's there's a kind of shades of grade

1002
00:47:43.960 --> 00:47:47.719
<v Speaker 3>of this it's like where it lands. But I generally

1003
00:47:47.880 --> 00:47:50.239
<v Speaker 3>feel like, yeah, may're they're they're not humans.

1004
00:47:50.639 --> 00:47:53.480
<v Speaker 1>So they're not they're not. We do have to remember that,

1005
00:47:53.760 --> 00:47:57.440
<v Speaker 1>and so they don't have responsibility. They don't you.

1006
00:47:57.360 --> 00:48:00.760
<v Speaker 3>Know, they're not accountable right right, or like if it

1007
00:48:00.800 --> 00:48:03.400
<v Speaker 3>produces your like right, like we as software engineers, we

1008
00:48:03.400 --> 00:48:06.039
<v Speaker 3>all know things like the the RAQ twenty five, right,

1009
00:48:06.039 --> 00:48:09.559
<v Speaker 3>like the incident about the X ray machine. Remind us,

1010
00:48:10.199 --> 00:48:12.719
<v Speaker 3>So there's an incident about with an X ray machine

1011
00:48:12.800 --> 00:48:15.920
<v Speaker 3>where because of a software bug and no hardware interlock,

1012
00:48:16.519 --> 00:48:21.960
<v Speaker 3>it would actually, uh for cancer patients would have basically

1013
00:48:22.039 --> 00:48:25.880
<v Speaker 3>like deadly doses of radiation in under very certain conditions.

1014
00:48:25.920 --> 00:48:28.280
<v Speaker 3>I think this happened like in the eighties. It's litical.

1015
00:48:28.360 --> 00:48:31.159
<v Speaker 3>I think it's like the RAC twenty five. And so

1016
00:48:31.480 --> 00:48:33.679
<v Speaker 3>the idea there is like, right, like, if if you

1017
00:48:33.760 --> 00:48:38.280
<v Speaker 3>have an LM right software that does something dangerous like this,

1018
00:48:39.440 --> 00:48:40.559
<v Speaker 3>who's accountable for that?

1019
00:48:40.760 --> 00:48:43.519
<v Speaker 2>Yeah? Right right? It's not the AI, like you can't

1020
00:48:43.599 --> 00:48:45.800
<v Speaker 2>it isn't. It isn't the equipment yea, yeah.

1021
00:48:45.760 --> 00:48:48.880
<v Speaker 3>It's like, it's not the equipment, it's whoever pushed that software.

1022
00:48:48.920 --> 00:48:51.519
<v Speaker 3>It's the software developer, just like with any other scenario right,

1023
00:48:51.559 --> 00:48:53.679
<v Speaker 3>So to me, it's like, I think it's AI. Is

1024
00:48:53.719 --> 00:48:58.440
<v Speaker 3>that it's it's INTELLISENTI and steroids. Was that Is that

1025
00:48:58.480 --> 00:49:01.039
<v Speaker 3>a good frame to put it here? Like, yeah, that's

1026
00:49:01.079 --> 00:49:01.599
<v Speaker 3>that's good.

1027
00:49:01.760 --> 00:49:04.320
<v Speaker 1>I mean, because we don't answer promorphize and tell a sense,

1028
00:49:04.360 --> 00:49:04.599
<v Speaker 1>do we?

1029
00:49:04.719 --> 00:49:06.840
<v Speaker 2>You try not to? Well, well, you could, says I

1030
00:49:06.880 --> 00:49:10.639
<v Speaker 2>mean the number of times I'm cursing a visual studio.

1031
00:49:10.920 --> 00:49:14.039
<v Speaker 2>What is it thinking?

1032
00:49:14.360 --> 00:49:18.599
<v Speaker 1>What were you thinking? Right?

1033
00:49:18.639 --> 00:49:21.519
<v Speaker 3>But yeah, so I think it's like long story, longer

1034
00:49:21.559 --> 00:49:23.519
<v Speaker 3>to what we talked about. I think that's a definitely

1035
00:49:23.519 --> 00:49:25.639
<v Speaker 3>a mental shift. It's definitely one of those things where

1036
00:49:26.039 --> 00:49:32.239
<v Speaker 3>you you have to treat it essentially as an assistant

1037
00:49:32.320 --> 00:49:37.000
<v Speaker 3>program that allows you to write code faster, but it's

1038
00:49:37.000 --> 00:49:39.360
<v Speaker 3>still up to you to make sure that you you

1039
00:49:39.559 --> 00:49:42.280
<v Speaker 3>review this and you have input, and you can look

1040
00:49:42.320 --> 00:49:45.559
<v Speaker 3>and say this is garbage, that's not what I asked,

1041
00:49:46.039 --> 00:49:47.960
<v Speaker 3>or this test just returns true.

1042
00:49:48.000 --> 00:49:49.159
<v Speaker 2>That's not how you pass a.

1043
00:49:49.119 --> 00:49:52.039
<v Speaker 3>Test like this are supposed to work, right, So you

1044
00:49:52.199 --> 00:49:54.760
<v Speaker 3>your expertise is still valuable. And I think that that's

1045
00:49:54.760 --> 00:49:56.960
<v Speaker 3>what also gets lost in the conversation because folks get

1046
00:49:57.000 --> 00:49:57.519
<v Speaker 3>so excited.

1047
00:49:57.639 --> 00:49:59.360
<v Speaker 2>I'm just I'm trying to de sex you this not

1048
00:49:59.440 --> 00:50:01.119
<v Speaker 2>out of this down this idea that I have a

1049
00:50:01.159 --> 00:50:04.840
<v Speaker 2>re entrant code generator. Yeah, that makes me very happy

1050
00:50:04.880 --> 00:50:06.480
<v Speaker 2>because that's something we haven't able to do before. It

1051
00:50:06.559 --> 00:50:08.760
<v Speaker 2>used to be when you use code generators. Once you

1052
00:50:08.800 --> 00:50:11.239
<v Speaker 2>touch that one way, I never run the generator again. Yeah. Now,

1053
00:50:11.320 --> 00:50:13.920
<v Speaker 2>the idea that I could stick this code generator back

1054
00:50:13.920 --> 00:50:16.119
<v Speaker 2>at the code that i've also that it contributed to

1055
00:50:16.199 --> 00:50:19.719
<v Speaker 2>and I modified and do another iteration, that's a big deal.

1056
00:50:19.800 --> 00:50:21.280
<v Speaker 2>Like this is it's pretty cool.

1057
00:50:21.800 --> 00:50:24.280
<v Speaker 3>Yeah, yeah, exactly because I can come in for a

1058
00:50:24.320 --> 00:50:29.079
<v Speaker 3>specific component and say, okay, this chunk here doesn't quite

1059
00:50:29.159 --> 00:50:31.519
<v Speaker 3>look right. And what I will seen people do, and

1060
00:50:31.559 --> 00:50:33.760
<v Speaker 3>I think this is a super valuable thing, is once

1061
00:50:33.800 --> 00:50:36.960
<v Speaker 3>you started going through the motions of okay, I saw

1062
00:50:37.000 --> 00:50:39.000
<v Speaker 3>where it failed. I saw that it did not create

1063
00:50:39.000 --> 00:50:41.559
<v Speaker 3>this component the way that I wanted. Based on the

1064
00:50:41.559 --> 00:50:44.000
<v Speaker 3>conversation that you had in code that back into the

1065
00:50:44.000 --> 00:50:46.840
<v Speaker 3>spec right and say okay, now that we know this,

1066
00:50:46.920 --> 00:50:48.800
<v Speaker 3>can you put them back in the spectrum technical plan?

1067
00:50:48.920 --> 00:50:51.320
<v Speaker 3>So that way, again, if I come in down the

1068
00:50:51.320 --> 00:50:52.880
<v Speaker 3>line and say, hey, we're going to take on a

1069
00:50:53.079 --> 00:50:57.079
<v Speaker 3>rewrite of the system, can I recreate the behavior that

1070
00:50:57.159 --> 00:50:59.079
<v Speaker 3>I had based on the learnings that I had and

1071
00:50:59.079 --> 00:51:01.760
<v Speaker 3>the iteration that I had in this new format. And

1072
00:51:01.800 --> 00:51:03.280
<v Speaker 3>this is where the speck comes in, because then you

1073
00:51:03.320 --> 00:51:05.400
<v Speaker 3>can say, oh, yeah, totally, I've encoded.

1074
00:51:05.039 --> 00:51:07.440
<v Speaker 2>All the larynx. This is also things that we hated

1075
00:51:07.519 --> 00:51:10.400
<v Speaker 2>doing as developers. Right, It's like, Yo, the spec is wrong,

1076
00:51:10.440 --> 00:51:12.159
<v Speaker 2>but nobody's actually gonna go fix the spec.

1077
00:51:12.199 --> 00:51:15.519
<v Speaker 3>But now oh no, zero people. Now you have a

1078
00:51:15.559 --> 00:51:18.760
<v Speaker 3>tool that you can demand it fix the spec. Yeah, exactly,

1079
00:51:18.800 --> 00:51:20.639
<v Speaker 3>Just do yourself a favor and make sure you check

1080
00:51:20.679 --> 00:51:22.880
<v Speaker 3>it in again. I really appreciate your thinking it will

1081
00:51:22.920 --> 00:51:24.599
<v Speaker 3>save you because it'll mangle your spec.

1082
00:51:24.679 --> 00:51:26.480
<v Speaker 2>Mm hmmmmmmm hmm. Yeah.

1083
00:51:26.639 --> 00:51:28.320
<v Speaker 3>I mean, and you're absolutely right in the sense like

1084
00:51:28.559 --> 00:51:30.639
<v Speaker 3>when I remember, like when I started my career as

1085
00:51:30.679 --> 00:51:34.400
<v Speaker 3>a product manager at Microsoft, you'd write a spec, you'd

1086
00:51:34.480 --> 00:51:37.360
<v Speaker 3>review it on a bunch of meetings, and then once

1087
00:51:37.400 --> 00:51:40.519
<v Speaker 3>a dev the moment the code on the starboard.

1088
00:51:40.480 --> 00:51:41.760
<v Speaker 2>Nobody ever touches that over.

1089
00:51:42.360 --> 00:51:44.840
<v Speaker 3>It's like and then even if you realize like, oh yeah,

1090
00:51:44.880 --> 00:51:47.559
<v Speaker 3>we forgot about like mentioning this, Hey dev, can you

1091
00:51:47.599 --> 00:51:49.679
<v Speaker 3>go fix this thing? Because we had this idea and

1092
00:51:49.679 --> 00:51:51.360
<v Speaker 3>they're like, oh sure, yeah, let's go change it. Like

1093
00:51:51.519 --> 00:51:54.159
<v Speaker 3>nobody goes to the doc and then six months later

1094
00:51:54.199 --> 00:51:55.920
<v Speaker 3>when you look at the doc and be like, product

1095
00:51:55.960 --> 00:51:56.840
<v Speaker 3>doesn't work this way.

1096
00:51:57.079 --> 00:52:00.320
<v Speaker 2>Well, this is how no new people can into the

1097
00:52:00.320 --> 00:52:01.760
<v Speaker 2>project as they start with the document.

1098
00:52:01.800 --> 00:52:04.880
<v Speaker 3>It's wrong exactly, and you and all those documents are

1099
00:52:04.920 --> 00:52:06.280
<v Speaker 3>wrong and they're all all out of date.

1100
00:52:06.360 --> 00:52:08.320
<v Speaker 2>We're trying to avoid that. All right, let's get weirder.

1101
00:52:08.400 --> 00:52:10.880
<v Speaker 2>Let's start taking after we finished making the code. Then

1102
00:52:10.920 --> 00:52:13.639
<v Speaker 2>you demand another tool generate a specification from the code

1103
00:52:13.639 --> 00:52:15.559
<v Speaker 2>you can see and compare against it.

1104
00:52:16.079 --> 00:52:18.719
<v Speaker 3>That's actually a thing, you know, and you know what.

1105
00:52:18.960 --> 00:52:21.000
<v Speaker 3>Where this is super helpful what we refer to as

1106
00:52:21.039 --> 00:52:25.000
<v Speaker 3>brownfield projects because where a lot of the spectrum of

1107
00:52:25.039 --> 00:52:27.880
<v Speaker 3>development stuff kind of falls over a lot of scenarios.

1108
00:52:27.920 --> 00:52:30.800
<v Speaker 3>Is all this is optimized for net new Like I'm

1109
00:52:30.840 --> 00:52:33.280
<v Speaker 3>starting from zero to one, I have nothing, Go get

1110
00:52:33.320 --> 00:52:36.159
<v Speaker 3>me something. But what if I already have a code

1111
00:52:36.159 --> 00:52:39.079
<v Speaker 3>base that is which, let's face it, mostly we do

1112
00:52:39.239 --> 00:52:42.440
<v Speaker 3>tens of thousands of Yeah, there's like can you do this?

1113
00:52:42.599 --> 00:52:44.880
<v Speaker 3>And this is where that reverse process is super helpful.

1114
00:52:44.960 --> 00:52:46.920
<v Speaker 3>Like I want you to write me a spec based

1115
00:52:46.960 --> 00:52:50.480
<v Speaker 3>on how my authorization library is working, and it's like, okay,

1116
00:52:50.519 --> 00:52:52.000
<v Speaker 3>let me go and look at the library that create this,

1117
00:52:52.039 --> 00:52:53.960
<v Speaker 3>and they're like, Okay, now that we have this context,

1118
00:52:54.400 --> 00:52:57.320
<v Speaker 3>can we now add a feature that changes how my

1119
00:52:57.440 --> 00:53:00.000
<v Speaker 3>oft flow works context it's all about content.

1120
00:53:00.280 --> 00:53:02.199
<v Speaker 2>Sure, No, this is a whole there's a whole other

1121
00:53:02.280 --> 00:53:05.559
<v Speaker 2>show here about Brownfield with lllms mm hmm. Just see

1122
00:53:05.639 --> 00:53:08.719
<v Speaker 2>I you know, because it's a great problem space. Right.

1123
00:53:08.800 --> 00:53:10.880
<v Speaker 2>Let's say so we have a ton of applications inside

1124
00:53:10.880 --> 00:53:13.960
<v Speaker 2>of organizations where the original dev team's long gone. Oddly enough,

1125
00:53:14.159 --> 00:53:19.079
<v Speaker 2>the spec is incorrect, but we need new features. Yeah,

1126
00:53:19.119 --> 00:53:21.159
<v Speaker 2>and you have a new team that's trying to take

1127
00:53:21.159 --> 00:53:22.719
<v Speaker 2>that code on. So the idea that you could point

1128
00:53:22.719 --> 00:53:26.639
<v Speaker 2>in ll at it first to generate a correct specification

1129
00:53:26.880 --> 00:53:29.760
<v Speaker 2>in theory, like, you need to validate that. So I

1130
00:53:29.880 --> 00:53:31.880
<v Speaker 2>probably want to iterate on that a few times and

1131
00:53:31.920 --> 00:53:34.880
<v Speaker 2>then start to build a plan around how you would

1132
00:53:34.880 --> 00:53:35.840
<v Speaker 2>make the change you want.

1133
00:53:35.920 --> 00:53:39.880
<v Speaker 1>Well, you could certainly build real documentation of your product

1134
00:53:40.239 --> 00:53:44.199
<v Speaker 1>by just sicken clawed copilot agent or whatever on it

1135
00:53:44.559 --> 00:53:47.800
<v Speaker 1>and it'll do that. I've done it with Jeff Fritz

1136
00:53:47.880 --> 00:53:51.280
<v Speaker 1>encoded with AI episode one and it created a pretty

1137
00:53:51.280 --> 00:53:54.679
<v Speaker 1>good user manual. So I know that's not a spec

1138
00:53:54.719 --> 00:53:57.960
<v Speaker 1>that's not an internal spec but it certainly is of

1139
00:53:58.000 --> 00:54:00.719
<v Speaker 1>that same idea that you take something that it already

1140
00:54:00.800 --> 00:54:03.679
<v Speaker 1>exists and then generate some documentation around it.

1141
00:54:04.400 --> 00:54:06.840
<v Speaker 3>Have you guys heard of this project called deep wiki

1142
00:54:07.079 --> 00:54:11.400
<v Speaker 3>deep wiki, deep wiki, deep wiki that sounds familiar to me.

1143
00:54:11.599 --> 00:54:13.159
<v Speaker 1>So has it been around a long time?

1144
00:54:13.559 --> 00:54:16.280
<v Speaker 3>No, it hasn't, but it's from the I believe it's

1145
00:54:16.280 --> 00:54:18.480
<v Speaker 3>some of the same people that wrote Devin, like the

1146
00:54:18.519 --> 00:54:22.199
<v Speaker 3>Coding Agent. So deep wiki is this place where you

1147
00:54:22.199 --> 00:54:26.320
<v Speaker 3>can actually come in. It's a documentation generator. Basically, it's

1148
00:54:26.320 --> 00:54:28.840
<v Speaker 3>an AI based documentation generator. You can come in and

1149
00:54:28.880 --> 00:54:32.159
<v Speaker 3>you can look at different repositories that already been documented

1150
00:54:32.679 --> 00:54:34.440
<v Speaker 3>or maybe even add your own, but you can just

1151
00:54:34.480 --> 00:54:37.079
<v Speaker 3>plug in the URL and then it's going to generate

1152
00:54:37.119 --> 00:54:40.400
<v Speaker 3>the docs. And to me, the fascinating part about this

1153
00:54:40.519 --> 00:54:44.079
<v Speaker 3>is just how freaking good it is at looking at

1154
00:54:44.079 --> 00:54:47.199
<v Speaker 3>the code base and like, oh vs code. Sure, let

1155
00:54:47.199 --> 00:54:50.119
<v Speaker 3>me look at the architecture and here's a renderer process,

1156
00:54:50.159 --> 00:54:52.239
<v Speaker 3>here's the main process, here's the extension host process. How

1157
00:54:52.239 --> 00:54:54.239
<v Speaker 3>they interact with each other's like none of this stuff

1158
00:54:54.280 --> 00:54:58.239
<v Speaker 3>is actually like encoded in some like there's a viscode

1159
00:54:58.280 --> 00:55:00.360
<v Speaker 3>architecture doc but like it infers it for the code,

1160
00:55:00.360 --> 00:55:01.960
<v Speaker 3>it points you to the lines of code, it generates

1161
00:55:02.000 --> 00:55:05.920
<v Speaker 3>mermaid charts, like it's a fascinating project. It's a deepwiki

1162
00:55:05.960 --> 00:55:06.599
<v Speaker 3>dot com.

1163
00:55:06.840 --> 00:55:10.519
<v Speaker 1>Does it use playwright to get screen captures of the

1164
00:55:10.559 --> 00:55:11.639
<v Speaker 1>application running?

1165
00:55:12.239 --> 00:55:16.960
<v Speaker 3>You can plug it in with any MCP servers, including Playwright.

1166
00:55:17.280 --> 00:55:21.480
<v Speaker 1>So that's what we did with with Visual Studio code

1167
00:55:21.519 --> 00:55:23.960
<v Speaker 1>and the agent. We told it to use the Playwright

1168
00:55:24.079 --> 00:55:26.760
<v Speaker 1>MCP to run the app and actually take screenshots and

1169
00:55:26.800 --> 00:55:29.440
<v Speaker 1>put it in the documentation, which is very, very helpful.

1170
00:55:29.800 --> 00:55:30.039
<v Speaker 2>Yeah.

1171
00:55:30.599 --> 00:55:33.639
<v Speaker 3>Yeah, Playwright MCP is one of my favorite tools hands down.

1172
00:55:33.719 --> 00:55:33.880
<v Speaker 2>Yeah.

1173
00:55:33.880 --> 00:55:37.079
<v Speaker 3>That's unbelievable, is just how good it is about both testing,

1174
00:55:37.199 --> 00:55:42.079
<v Speaker 3>providing screenshots and actually one of the validation steps that

1175
00:55:42.079 --> 00:55:44.199
<v Speaker 3>I've experimented for spect driven by the way it's like

1176
00:55:44.199 --> 00:55:47.039
<v Speaker 3>when it creates the UI, it uses player MCP to

1177
00:55:47.079 --> 00:55:49.840
<v Speaker 3>go and say, are there any components that overlap with

1178
00:55:49.920 --> 00:55:53.000
<v Speaker 3>each other or the UI is funky? And then if not,

1179
00:55:53.280 --> 00:55:54.159
<v Speaker 3>go and fix it.

1180
00:55:54.239 --> 00:55:54.880
<v Speaker 1>That's so cool.

1181
00:55:55.000 --> 00:55:55.199
<v Speaker 2>Wow.

1182
00:55:55.320 --> 00:55:58.000
<v Speaker 3>Right, So you're wiring these things together and we're back

1183
00:55:58.000 --> 00:55:59.639
<v Speaker 3>to the whole idea of like what's the role to

1184
00:55:59.679 --> 00:56:02.639
<v Speaker 3>develop in this? And this is like you are now

1185
00:56:02.679 --> 00:56:07.679
<v Speaker 3>the orchestrator of this fleet of software agents that do

1186
00:56:07.840 --> 00:56:10.239
<v Speaker 3>things for you? How do you make sure that app?

1187
00:56:10.320 --> 00:56:13.159
<v Speaker 2>Yeah? And you see, like I think about the large

1188
00:56:13.159 --> 00:56:15.760
<v Speaker 2>scale problems inside of big organizations right now. It's like

1189
00:56:15.800 --> 00:56:18.119
<v Speaker 2>they got a ton of asp down web form apps

1190
00:56:18.159 --> 00:56:20.679
<v Speaker 2>out there. Nobody wants to work on them anymore. Yeah,

1191
00:56:20.719 --> 00:56:23.079
<v Speaker 2>of course they Everybody wants a mobile client for a

1192
00:56:23.119 --> 00:56:27.320
<v Speaker 2>bunch of them, which is almost impossible, and rewriting them

1193
00:56:27.360 --> 00:56:29.559
<v Speaker 2>takes time and money. Yeah, And so the idea that

1194
00:56:29.599 --> 00:56:33.199
<v Speaker 2>I could fire up these llms use stuff like playwright

1195
00:56:33.280 --> 00:56:35.960
<v Speaker 2>to screenshot the whole app and then fire it through

1196
00:56:36.000 --> 00:56:38.360
<v Speaker 2>a generator to make it other version of the app.

1197
00:56:38.400 --> 00:56:41.599
<v Speaker 2>Now me, my twisted mind, what's my automatic reaction? It's like,

1198
00:56:41.639 --> 00:56:44.159
<v Speaker 2>let's make photocopies of photocopies. So I'm going to take

1199
00:56:44.199 --> 00:56:45.800
<v Speaker 2>this app, I'm going to generate a spec. Then I'm

1200
00:56:45.800 --> 00:56:47.639
<v Speaker 2>going to generate an app from the spec. Then I'm

1201
00:56:47.639 --> 00:56:49.880
<v Speaker 2>going to generate a spec from that version of the app.

1202
00:56:50.039 --> 00:56:51.760
<v Speaker 2>I don't see where we get to, because I bet

1203
00:56:51.840 --> 00:56:54.960
<v Speaker 2>you're going to hit a floor, yeah, of functionality at

1204
00:56:54.960 --> 00:56:59.039
<v Speaker 2>some point right where, because the compiler always has a say,

1205
00:56:59.280 --> 00:57:02.239
<v Speaker 2>because the app ultimately has a set of core functionality.

1206
00:57:02.320 --> 00:57:04.119
<v Speaker 2>Like I wonder if you'd end up with the most

1207
00:57:04.159 --> 00:57:05.960
<v Speaker 2>distilled version of an app if you did a bunch

1208
00:57:05.960 --> 00:57:08.199
<v Speaker 2>of iterations like that. Probably probably right.

1209
00:57:08.239 --> 00:57:11.480
<v Speaker 3>But also like we know that software there's more to

1210
00:57:11.519 --> 00:57:14.400
<v Speaker 3>building software than just carbon copy of things. Yes, right,

1211
00:57:14.440 --> 00:57:17.239
<v Speaker 3>And this is where like I see people posting on

1212
00:57:17.679 --> 00:57:19.599
<v Speaker 3>social media as like, oh, with the help of LM,

1213
00:57:19.840 --> 00:57:24.199
<v Speaker 3>I recreated docuside in three days. It's like, well, sure,

1214
00:57:24.199 --> 00:57:27.119
<v Speaker 3>pretty sure you didn't like yeah, but like it's you

1215
00:57:27.159 --> 00:57:29.800
<v Speaker 3>got to realize that there's more docusine than like just

1216
00:57:29.880 --> 00:57:33.599
<v Speaker 3>the uy of docusine, right, And that's part of it,

1217
00:57:33.639 --> 00:57:35.159
<v Speaker 3>is like we're really starting to just still into what

1218
00:57:35.280 --> 00:57:37.119
<v Speaker 3>are the important bits of software and what's the thing

1219
00:57:37.159 --> 00:57:39.519
<v Speaker 3>that should have our primary attention.

1220
00:57:39.920 --> 00:57:45.599
<v Speaker 1>Didn't some guy just recently tell uh and chat gipt

1221
00:57:45.760 --> 00:57:53.119
<v Speaker 1>or whatever to rebuild and recreate Kubernetes anthropic. It was anthropic,

1222
00:57:53.159 --> 00:57:56.800
<v Speaker 1>He said, rebuild me Kubernetes in Rust or something like that.

1223
00:57:57.519 --> 00:58:02.280
<v Speaker 1>And it's spent so many tokens that it costs anthropic

1224
00:58:02.360 --> 00:58:06.079
<v Speaker 1>four hundred thousand dollars and he only paid his two

1225
00:58:06.199 --> 00:58:07.360
<v Speaker 1>hundred dollars for the month.

1226
00:58:07.840 --> 00:58:12.079
<v Speaker 3>Yeah, but the question is did it did it recreate Kubernetes.

1227
00:58:12.239 --> 00:58:14.920
<v Speaker 1>Well, it spent four hundred thousand dollars worth of token.

1228
00:58:14.679 --> 00:58:18.840
<v Speaker 2>So it did something maybe nothing, that's in the end.

1229
00:58:18.880 --> 00:58:20.679
<v Speaker 2>What did that four hundred thousand dollars do but heat

1230
00:58:20.719 --> 00:58:23.840
<v Speaker 2>up a bunch of rocks? Yeah right, Yeah, the sand

1231
00:58:24.000 --> 00:58:29.840
<v Speaker 2>is working hard. Yes, made the rocks warm today.

1232
00:58:31.400 --> 00:58:34.159
<v Speaker 3>But I was genuinely curious, Like Carl, you were so

1233
00:58:34.199 --> 00:58:36.159
<v Speaker 3>excited about it, and I was like, but did it

1234
00:58:36.199 --> 00:58:39.280
<v Speaker 3>actually work? It's like that that that meme about like

1235
00:58:39.320 --> 00:58:42.400
<v Speaker 3>I rewrote my app in like one day, this massive

1236
00:58:42.480 --> 00:58:44.679
<v Speaker 3>enterprise scale things, like none of it worked, but did

1237
00:58:44.760 --> 00:58:45.599
<v Speaker 3>sure look pretty?

1238
00:58:45.760 --> 00:58:49.440
<v Speaker 2>Yeah? It was just another version of AI slop. But

1239
00:58:49.519 --> 00:58:51.320
<v Speaker 2>you know, now you're pressing us the next issue here,

1240
00:58:51.400 --> 00:58:55.039
<v Speaker 2>which is is this cost effective in the end, Like

1241
00:58:55.079 --> 00:58:58.119
<v Speaker 2>when we eventually have to pay the real costs because

1242
00:58:58.480 --> 00:59:01.360
<v Speaker 2>we know we're not so far. I mean we actually

1243
00:59:01.400 --> 00:59:03.079
<v Speaker 2>have to pay the real cost for the compute, for

1244
00:59:03.119 --> 00:59:05.199
<v Speaker 2>the tokens and so forth. Like now we're gonna have

1245
00:59:05.199 --> 00:59:06.880
<v Speaker 2>another layer on running this tool where it's going to

1246
00:59:06.920 --> 00:59:09.320
<v Speaker 2>now assess the token. Let's do an estimate before we

1247
00:59:09.400 --> 00:59:12.239
<v Speaker 2>run this. You know, no different than I do when

1248
00:59:12.239 --> 00:59:15.760
<v Speaker 2>I start provisioning apps into Azure we understand how much

1249
00:59:15.800 --> 00:59:17.760
<v Speaker 2>infrastructure we need to run, and I can throw at

1250
00:59:17.760 --> 00:59:19.840
<v Speaker 2>the CFO it's going to be this much a month. Yeah,

1251
00:59:20.079 --> 00:59:22.239
<v Speaker 2>you know, to operate this like that. Those are the

1252
00:59:22.239 --> 00:59:23.719
<v Speaker 2>trade offs are going to make, for sure, and it

1253
00:59:23.760 --> 00:59:27.239
<v Speaker 2>will get more efficient to a degree that these are

1254
00:59:27.320 --> 00:59:28.960
<v Speaker 2>going to be the trades, Yeah, for sure.

1255
00:59:29.039 --> 00:59:32.920
<v Speaker 3>And I see a world too where we can use them,

1256
00:59:32.920 --> 00:59:36.000
<v Speaker 3>maybe even a combination of things of what is actually

1257
00:59:37.880 --> 00:59:40.280
<v Speaker 3>net new stuff that needs to be delegated to a

1258
00:59:40.320 --> 00:59:43.280
<v Speaker 3>powerful generalized model versus something that can run locally on

1259
00:59:43.360 --> 00:59:45.599
<v Speaker 3>my machine. Call right, It's like, oh, this is a

1260
00:59:45.840 --> 00:59:48.880
<v Speaker 3>model that's trained specifically on ASB dot net core. It

1261
00:59:49.000 --> 00:59:51.039
<v Speaker 3>is excellent for ASP dot net core and nothing else.

1262
00:59:51.079 --> 00:59:53.440
<v Speaker 3>Can I potentially use that to go and write me

1263
00:59:53.440 --> 00:59:54.679
<v Speaker 3>the ASP dot net core code?

1264
00:59:54.719 --> 00:59:57.440
<v Speaker 2>Sure? Right. I also wonder about training model specific to

1265
00:59:57.480 --> 00:59:59.760
<v Speaker 2>an application, Like You've got a mature piece of software

1266
01:00:00.239 --> 01:00:02.880
<v Speaker 2>that's an awful lot of knowledge about what the software does,

1267
01:00:03.719 --> 01:00:05.079
<v Speaker 2>and so if I can have that run in a

1268
01:00:05.079 --> 01:00:07.000
<v Speaker 2>local model and just you know, let's not go out

1269
01:00:07.039 --> 01:00:08.880
<v Speaker 2>of scope here, I just want to add these features

1270
01:00:08.960 --> 01:00:12.159
<v Speaker 2>to it. So and yeah, the idea that these monster

1271
01:00:12.239 --> 01:00:15.679
<v Speaker 2>models are the only way to do things sistantly not true, right, right?

1272
01:00:16.079 --> 01:00:18.039
<v Speaker 3>And John and I were actually talking about John John

1273
01:00:18.079 --> 01:00:22.480
<v Speaker 3>Lamb again our good friend, about this concept of a

1274
01:00:22.559 --> 01:00:26.320
<v Speaker 3>prompt compiler, and the idea here is that with a

1275
01:00:26.360 --> 01:00:28.880
<v Speaker 3>lot of the contexts that we're passing to models, there's

1276
01:00:28.920 --> 01:00:32.239
<v Speaker 3>this context overload. There's just too much, like Richard used

1277
01:00:32.360 --> 01:00:34.599
<v Speaker 3>the concept like the buffer overflows like that, that's like

1278
01:00:34.599 --> 01:00:36.119
<v Speaker 3>we're trying to prevent. And it's like, and if I'm

1279
01:00:36.199 --> 01:00:39.719
<v Speaker 3>building an ASP do a net application with a specific

1280
01:00:39.960 --> 01:00:45.119
<v Speaker 3>like API structure, how do I encode just the relevant

1281
01:00:45.159 --> 01:00:47.320
<v Speaker 3>context from the spect it? So I don't just give

1282
01:00:47.320 --> 01:00:49.079
<v Speaker 3>it like, oh, here's all the front end pieces and

1283
01:00:49.079 --> 01:00:50.800
<v Speaker 3>everything else that you need to consider. But by the way,

1284
01:00:50.840 --> 01:00:53.519
<v Speaker 3>just build the apia like, right, can I just select

1285
01:00:53.559 --> 01:00:55.800
<v Speaker 3>the pieces that it needs for my task?

1286
01:00:56.079 --> 01:00:58.400
<v Speaker 2>Yeah? And maybe there is again, like a either a

1287
01:00:58.400 --> 01:01:01.039
<v Speaker 2>local model or something else that pre emptively can select

1288
01:01:01.119 --> 01:01:03.800
<v Speaker 2>these things and say okay, you only need this to

1289
01:01:03.920 --> 01:01:07.440
<v Speaker 2>execute this task and nothing else, and that drives some

1290
01:01:07.519 --> 01:01:10.519
<v Speaker 2>of the efficiency. So I think definitely we're we're right

1291
01:01:10.559 --> 01:01:12.840
<v Speaker 2>now in the space where all of this is like

1292
01:01:13.239 --> 01:01:16.079
<v Speaker 2>it feels like free money, right, Oh, four hundred thousand

1293
01:01:16.079 --> 01:01:20.159
<v Speaker 2>dollars of Kubernetes tokens for two hundred dollars a month, Like, yeah, sure,

1294
01:01:20.400 --> 01:01:23.559
<v Speaker 2>we're in the bubble of you know, the first wave

1295
01:01:23.679 --> 01:01:27.159
<v Speaker 2>of this stuff right right, This bubble will end, but

1296
01:01:27.320 --> 01:01:29.320
<v Speaker 2>you know, just no different than the dot com boom

1297
01:01:29.360 --> 01:01:32.000
<v Speaker 2>and the end of that, you still have an Internet afterwards,

1298
01:01:32.039 --> 01:01:34.159
<v Speaker 2>Like there will these tools will still exist, but we'll

1299
01:01:34.159 --> 01:01:37.639
<v Speaker 2>start to rationalize it. I'm real happy to be talking

1300
01:01:37.679 --> 01:01:41.079
<v Speaker 2>about the post bubble rationalizations.

1301
01:01:41.320 --> 01:01:41.639
<v Speaker 1>Yeah.

1302
01:01:41.679 --> 01:01:44.119
<v Speaker 3>Absolutely, yeah, I think this is where the whole conversation

1303
01:01:44.159 --> 01:01:48.840
<v Speaker 3>about the bubble misses the point that the utility of

1304
01:01:48.880 --> 01:01:52.880
<v Speaker 3>this is undeniable. Yes, Like I'm looking at the models

1305
01:01:52.880 --> 01:01:55.119
<v Speaker 3>that we have today, like from Anthropic, from open Ai,

1306
01:01:55.239 --> 01:01:57.239
<v Speaker 3>from like, and think about it, like if if the

1307
01:01:57.280 --> 01:01:59.960
<v Speaker 3>evolution of those model stops today, like if after two

1308
01:02:00.400 --> 01:02:03.239
<v Speaker 3>the refoard of the show nothing else ever gets released.

1309
01:02:03.800 --> 01:02:06.239
<v Speaker 3>There is still a ton of value behind them and

1310
01:02:06.360 --> 01:02:09.079
<v Speaker 3>building suffware and being able to like reduce the toil. Right,

1311
01:02:09.559 --> 01:02:12.360
<v Speaker 3>nothing changes, it does not improve at all, and there's

1312
01:02:12.400 --> 01:02:13.320
<v Speaker 3>still a lot of value in this.

1313
01:02:13.480 --> 01:02:13.679
<v Speaker 2>Now.

1314
01:02:14.000 --> 01:02:15.880
<v Speaker 3>Is there a lot of hype for things that are

1315
01:02:15.960 --> 01:02:18.320
<v Speaker 3>like chat GBT wrappers around in the wild, like all

1316
01:02:18.360 --> 01:02:22.119
<v Speaker 3>these like random startups Like absolutely, yeah, But the utility

1317
01:02:22.599 --> 01:02:25.840
<v Speaker 3>for the core underlying models and the capabilities that they

1318
01:02:25.920 --> 01:02:28.480
<v Speaker 3>offer for software development was like again to me, is undeniable.

1319
01:02:28.639 --> 01:02:31.440
<v Speaker 2>Yeah, I'm with you then, and I'm just you know,

1320
01:02:31.679 --> 01:02:35.199
<v Speaker 2>we can still get better, but yeah, it's certainly worthwhile,

1321
01:02:35.320 --> 01:02:37.920
<v Speaker 2>and I appreciate thing you're building, these kinds of tools

1322
01:02:37.960 --> 01:02:41.079
<v Speaker 2>to help us rein in the sort of randomness and

1323
01:02:41.119 --> 01:02:45.079
<v Speaker 2>start to think more coherently about what modern dev practices

1324
01:02:45.159 --> 01:02:47.320
<v Speaker 2>with these cod generators are going to look like going forward.

1325
01:02:47.599 --> 01:02:50.679
<v Speaker 1>Absolutely well, Dan, thank you very much. It's been great

1326
01:02:50.719 --> 01:02:53.440
<v Speaker 1>talking to you. Wow, blowing our minds over here.

1327
01:02:53.480 --> 01:02:55.840
<v Speaker 2>Thank you for having me. Yeah, my dream came true.

1328
01:02:55.840 --> 01:02:56.920
<v Speaker 2>I was in dot net rocks.

1329
01:02:56.920 --> 01:02:57.360
<v Speaker 1>That's great.

1330
01:02:57.360 --> 01:02:59.840
<v Speaker 2>There you go. And and we went for a ride too, friend,

1331
01:03:00.119 --> 01:03:01.960
<v Speaker 2>going to call that meaty goodness.

1332
01:03:01.840 --> 01:03:05.920
<v Speaker 1>Yet goodness absolutely all right, Thanks again to Den Delamarski,

1333
01:03:06.039 --> 01:03:09.519
<v Speaker 1>and we'll talk to you next time, dear listener on

1334
01:03:09.719 --> 01:03:32.760
<v Speaker 1>dot net rocks. Dot net Rocks is brought to you

1335
01:03:32.800 --> 01:03:36.800
<v Speaker 1>by Franklin's Net and produced by Pop Studios, a full

1336
01:03:36.880 --> 01:03:41.039
<v Speaker 1>service audio, video and post production facility located physically in

1337
01:03:41.119 --> 01:03:44.880
<v Speaker 1>New London, Connecticut, and of course in the cloud online

1338
01:03:44.920 --> 01:03:47.320
<v Speaker 1>at pwop dot com.

1339
01:03:47.519 --> 01:03:48.719
<v Speaker 2>Visit our website at d.

1340
01:03:48.719 --> 01:03:50.719
<v Speaker 1>O T N E t R O c k S

1341
01:03:50.800 --> 01:03:55.840
<v Speaker 1>dot com for RSS feeds, downloads, mobile apps, comments, and

1342
01:03:55.920 --> 01:03:59.199
<v Speaker 1>access to the full archives going back to show number one,

1343
01:03:59.400 --> 01:04:02.639
<v Speaker 1>recorded September two thousand and two. And make sure you

1344
01:04:02.760 --> 01:04:05.840
<v Speaker 1>check out our sponsors. They keep us in business. Now,

1345
01:04:05.880 --> 01:04:09.360
<v Speaker 1>go write some code. See you next time. You got

1346
01:04:09.440 --> 01:04:18.599
<v Speaker 1>your middle vans. This is home, then my Texes
