1
00:00:01,080 --> 00:00:03,000
Speaker 1: How'd you like to listen to dot net rocks with

2
00:00:03,040 --> 00:00:07,879
no ads? Easy? Become a patron For just five dollars

3
00:00:07,919 --> 00:00:10,800
a month, you get access to a private RSS feed

4
00:00:10,839 --> 00:00:14,039
where all the shows have no ads. Twenty dollars a

5
00:00:14,039 --> 00:00:16,559
month will get you that and a special dot net

6
00:00:16,640 --> 00:00:20,399
Rocks patron mug. Sign up now at Patreon dot dot

7
00:00:20,440 --> 00:00:36,479
NetRocks dot com. Hey, welcome back to dot net rocks.

8
00:00:36,520 --> 00:00:39,320
I'm Carl Franklin and A'mirchrid Campbell, and we're recording this

9
00:00:39,439 --> 00:00:42,920
right before we leave for dev Intersection in Orlando. But

10
00:00:43,439 --> 00:00:44,479
you are not home, sir.

11
00:00:44,759 --> 00:00:47,439
Speaker 2: No, No, It'll all have been over by then. It'll

12
00:00:47,439 --> 00:00:51,439
almost be, you know, Halloween, so right, I'll be in

13
00:00:51,439 --> 00:00:53,520
the Netherlands when this publishes, so something.

14
00:00:53,600 --> 00:00:55,039
Speaker 1: But right now, you're not at home, are you?

15
00:00:55,240 --> 00:00:57,560
Speaker 2: I am, Yeah, I'm leaving. Oh you are. Literally we're

16
00:00:57,560 --> 00:00:59,159
recording a show and then I'm packing up to head

17
00:00:59,200 --> 00:01:03,039
to the mainland tomorrow. Okay, see you in Orlando, dude.

18
00:01:02,880 --> 00:01:05,439
Speaker 1: All right, Okay, I thought you were on a trip before.

19
00:01:06,159 --> 00:01:06,680
Speaker 2: Maybe you were.

20
00:01:06,719 --> 00:01:08,239
Speaker 1: I don't know. I can't keep track of you. I

21
00:01:08,280 --> 00:01:09,000
don't even want to.

22
00:01:09,079 --> 00:01:11,040
Speaker 2: Yeah, me neither. I don't even know where I am,

23
00:01:11,640 --> 00:01:12,359
Wait a minute, are you?

24
00:01:13,040 --> 00:01:14,519
Speaker 1: Who are you? What'd you do with Richard Mind?

25
00:01:15,040 --> 00:01:16,000
Speaker 2: I'm just another AI.

26
00:01:16,480 --> 00:01:20,200
Speaker 1: Yeah right, uh well, let's you know, since this is

27
00:01:20,359 --> 00:01:24,040
episode nineteen seventy four, let's talk about what happened that year,

28
00:01:24,200 --> 00:01:25,799
shall we before we do anything else.

29
00:01:25,959 --> 00:01:29,040
Speaker 2: Oh, it's an exciting year. It's an exciting year. Nixon.

30
00:01:29,120 --> 00:01:30,560
Bye bye, Where do you want to start?

31
00:01:30,599 --> 00:01:33,159
Speaker 1: Bye bye Nixon. Yeah, he's not a crook, but he

32
00:01:33,239 --> 00:01:33,799
is resigning.

33
00:01:33,879 --> 00:01:35,760
Speaker 2: Are you sure? I don't know, I sound so sure?

34
00:01:35,760 --> 00:01:39,560
Speaker 1: Well he said so, yeah, okay, And you know, after

35
00:01:39,680 --> 00:01:42,280
that day, we didn't have Dick Nixon to kick around anymore.

36
00:01:42,480 --> 00:01:46,040
So I think he did for a while longer, but yeah,

37
00:01:46,400 --> 00:01:48,760
oh yeah, yeah, as long as I miss was alive,

38
00:01:48,799 --> 00:01:50,439
he was getting kicked on a daily basis.

39
00:01:50,480 --> 00:01:51,719
Speaker 2: Yeah.

40
00:01:51,760 --> 00:01:55,280
Speaker 1: The Turkish military invaded Cyprus following a coup, leading to

41
00:01:55,319 --> 00:02:00,359
a division of the island and increased international tensions.

42
00:02:00,040 --> 00:02:03,000
Speaker 2: Which still persists this day. That division in Cyprus.

43
00:02:03,280 --> 00:02:07,840
Speaker 1: The Carnation Revolution occurred in Portugal. That's a coup resulting

44
00:02:07,840 --> 00:02:12,759
in the overthrow of the authoritarian regime. So the FIFA

45
00:02:12,879 --> 00:02:15,879
World Cup took place in West Germany, where the host

46
00:02:15,960 --> 00:02:18,919
nation defeated the Netherlands two to one to win the championship.

47
00:02:19,439 --> 00:02:23,240
Just in case you were wondering, the boxing match known

48
00:02:23,280 --> 00:02:26,759
as the Rumble in the Jungle featured Muhammad Ali defeating

49
00:02:26,879 --> 00:02:33,199
George Foreman in Zaire. Ali would go forward to have

50
00:02:33,280 --> 00:02:36,240
a great after career life in George Foreman sold grills.

51
00:02:37,280 --> 00:02:39,280
He did a lot more than that. He had seven kids,

52
00:02:39,319 --> 00:02:46,039
all named George. The Swedish pop group Abba won the

53
00:02:46,080 --> 00:02:49,560
Eurovision Song Contest with their song Waterloo, making the start

54
00:02:49,599 --> 00:02:53,280
of their successful career. Have you seen the Eurovision Song

55
00:02:53,360 --> 00:02:54,639
Contest recently, Richard?

56
00:02:54,800 --> 00:02:57,360
Speaker 2: Not recently, No, but I'm aware of it. You don't

57
00:02:57,360 --> 00:02:58,919
want to, okay.

58
00:02:59,280 --> 00:03:03,080
Speaker 1: Some significant the film's release include The Godfather Part two, Chinatown,

59
00:03:03,120 --> 00:03:06,639
and Blazing Saddles, all movies that probably couldn't be made

60
00:03:06,639 --> 00:03:12,400
today in my opinion. I'm going to talk about the

61
00:03:12,520 --> 00:03:17,599
Terracotta Warriors. The first of those were discovering Jiang, China, unbelievable,

62
00:03:17,680 --> 00:03:20,919
leading to significant archaeological finds. What do you know about

63
00:03:20,960 --> 00:03:22,520
the terracotta warriors, Richard.

64
00:03:22,400 --> 00:03:25,360
Speaker 2: I've been there, but just you know, I know that

65
00:03:25,360 --> 00:03:27,039
once they were exposed, they started to decay, like a

66
00:03:27,039 --> 00:03:28,319
lot of the paint was still on them. When they

67
00:03:28,319 --> 00:03:30,280
first were found, but.

68
00:03:30,280 --> 00:03:33,599
Speaker 1: They were made to with the with the emperor, I

69
00:03:33,599 --> 00:03:37,639
suppose in the grave to protect him, right.

70
00:03:37,520 --> 00:03:40,360
Speaker 2: Yeah, that's the that's the idea. Like nobody really knows

71
00:03:40,400 --> 00:03:43,960
for sure, but the Yeah, you'd have to see this thing.

72
00:03:43,960 --> 00:03:47,000
It's unbelievably vast. Yeah, and the crazy part is, like

73
00:03:47,120 --> 00:03:49,639
archaeology is not a huge thing in China, They've only

74
00:03:49,639 --> 00:03:52,479
done a little. There's so much more to be found there.

75
00:03:53,080 --> 00:03:56,680
And this is a culture that's been around literally for millennia. Yeah,

76
00:03:56,719 --> 00:03:58,919
you're talking these things are what two thousand or so

77
00:03:59,039 --> 00:04:00,800
years old, but there's so much more.

78
00:04:01,240 --> 00:04:03,599
Speaker 1: I think the crazy part is that people actually built

79
00:04:03,639 --> 00:04:06,560
thousands of terracotta warriors and stuffed them in a grave. Yeah,

80
00:04:06,680 --> 00:04:07,560
that's kind of crazy.

81
00:04:07,680 --> 00:04:11,080
Speaker 2: It speaks to the wealth of that country at that time,

82
00:04:11,199 --> 00:04:12,960
right that they could afford to do such just like

83
00:04:13,000 --> 00:04:16,160
building pyramids. Like, clearly you have too much money, right

84
00:04:16,319 --> 00:04:19,360
if you can build these things. But that, yeah, it's

85
00:04:19,439 --> 00:04:20,560
another example of that.

86
00:04:20,800 --> 00:04:23,600
Speaker 1: So what happened in science and Tech and seventy four Richard.

87
00:04:24,240 --> 00:04:27,879
Speaker 2: Not a big space year. Mariner ten made it to Mercury,

88
00:04:27,920 --> 00:04:29,879
the first probe to ever do that, actually do two

89
00:04:29,879 --> 00:04:33,600
flybys of Mercury, and that would be the only visit

90
00:04:33,720 --> 00:04:35,839
to Mercury in the twentieth century. That would be the

91
00:04:35,879 --> 00:04:40,040
Messenger spacecraft in the twenty first century. And that's about it.

92
00:04:40,079 --> 00:04:42,120
There's a couple of soused flights to sal you there's

93
00:04:42,120 --> 00:04:44,279
the plans for the Apollo Soy use missions, but they

94
00:04:44,279 --> 00:04:47,360
won't happen until the next year, so not a big

95
00:04:47,439 --> 00:04:48,240
year in space.

96
00:04:48,519 --> 00:04:51,759
Speaker 1: And like Venus, Mercury is not a very hospitable planet.

97
00:04:51,839 --> 00:04:54,759
Speaker 2: Well, it's awfully close to the Sun. It's very very hot,

98
00:04:54,839 --> 00:04:58,240
no atmosphere at all. Yeah, but still interesting, you know,

99
00:04:58,600 --> 00:05:02,720
and certainly something so we're studying further tricky to get

100
00:05:02,759 --> 00:05:04,519
to takes a lot of energy to get there.

101
00:05:04,560 --> 00:05:06,920
Speaker 1: Do we actually get data from it before it burned up?

102
00:05:07,000 --> 00:05:09,600
Oh yeah, No, it's not that close. Was able to

103
00:05:09,720 --> 00:05:13,319
orbit around fly bys Mercury. You know, going into orbit

104
00:05:13,360 --> 00:05:15,120
around Mercury is very challenging. We won't do that for

105
00:05:15,160 --> 00:05:15,720
quite some time.

106
00:05:16,839 --> 00:05:19,920
Speaker 2: The first reporting on the destruction of the ozone layer

107
00:05:20,680 --> 00:05:24,279
nineteen seventy four and will lead in a few years

108
00:05:24,279 --> 00:05:26,639
to the thing called the Montreal Accords. Well, we'll band

109
00:05:26,680 --> 00:05:29,920
CFC's and ultimate allow the ozone layer to repair itself

110
00:05:29,920 --> 00:05:32,319
a successful story and turns out it worked. It worked.

111
00:05:32,519 --> 00:05:35,839
Speaker 1: Yeah, I'm giving away the ending. We can do those

112
00:05:35,920 --> 00:05:38,639
kinds of things, people, We can. We absolutely can. And

113
00:05:39,000 --> 00:05:40,720
I use that as an example when we talk about the

114
00:05:40,800 --> 00:05:45,600
current crisses. The first edition of Dungeons and Dragons is published.

115
00:05:45,680 --> 00:05:50,360
Gary Gygax and Dave Arnison from TSR derived from an

116
00:05:50,399 --> 00:05:53,680
earlier game played with miniatures and went.

117
00:05:53,560 --> 00:05:56,759
Speaker 2: On to make geeks even geek here for many, many years.

118
00:05:56,800 --> 00:05:59,160
Oh yeah, but and I would say this is by

119
00:05:59,199 --> 00:06:01,199
far from in our part of the world. The most

120
00:06:01,199 --> 00:06:03,959
important thing happened in seventy four. Right at the end

121
00:06:03,959 --> 00:06:07,600
of nineteen seventy four, the mits altear eighty eight hundred.

122
00:06:08,639 --> 00:06:11,639
So this was not the only personal computer at the time.

123
00:06:11,680 --> 00:06:14,000
There were kits you could buy that would just be

124
00:06:14,120 --> 00:06:15,639
give you and you'd have to put together the parts

125
00:06:15,680 --> 00:06:19,120
and so forth. This was the first assembled machine based

126
00:06:19,120 --> 00:06:21,800
on the Intel eighty eighty. The design would largely lead

127
00:06:21,800 --> 00:06:24,720
to the S one hundred bus machine. In general, you

128
00:06:24,759 --> 00:06:26,720
could only had to set at LEDs on the front end.

129
00:06:26,759 --> 00:06:28,959
You would program it with switches, or you could add

130
00:06:28,959 --> 00:06:31,079
a serial card to it to have a teletype interface.

131
00:06:31,079 --> 00:06:34,199
Otherwise just not display no keyboard under that stuff. Yeah,

132
00:06:34,240 --> 00:06:38,879
and it was popular electronics. Is this magazine that was

133
00:06:38,920 --> 00:06:43,439
actually driving One of their rival magazines had published this

134
00:06:43,639 --> 00:06:45,759
kit on their cover, and they wanted to make sure

135
00:06:45,800 --> 00:06:47,560
they had something as well. So they were pushing and

136
00:06:47,680 --> 00:06:50,279
my admits to get this thing done in time. And

137
00:06:50,360 --> 00:06:52,399
so nominally it was on the cover of the January

138
00:06:52,480 --> 00:06:56,279
nineteen seventy five edition, but it was actually put on

139
00:06:56,319 --> 00:06:58,199
new stands in December seventy four, so I included the

140
00:06:58,240 --> 00:07:02,560
seventy four And why is it important? This is Microsoft's

141
00:07:02,600 --> 00:07:06,720
founding product. That cover is the thing that got Gates

142
00:07:06,720 --> 00:07:11,800
to drop out of Harvard and moved to Albuquerque and

143
00:07:12,000 --> 00:07:14,000
write a version of Basic would later be known as

144
00:07:14,040 --> 00:07:16,720
the Altar Basic, which was Microsoft's very first.

145
00:07:16,480 --> 00:07:18,160
Speaker 1: Product, and he wrote it with the Altair.

146
00:07:18,639 --> 00:07:20,279
Speaker 2: He used the alt He actually wrote it on a

147
00:07:20,319 --> 00:07:23,160
different machine because he didn't have one. He wrote it

148
00:07:22,439 --> 00:07:26,199
on a machine at Harvard, a lot of it by

149
00:07:26,279 --> 00:07:28,600
hand and by hand figured it all out because they

150
00:07:28,600 --> 00:07:31,600
had to run in four K, and then brought it

151
00:07:31,639 --> 00:07:34,279
down there and coated it in to test it. But

152
00:07:34,360 --> 00:07:36,079
the first time he already had it written before the

153
00:07:36,120 --> 00:07:37,920
first time he actually laid hand on an altar because

154
00:07:37,920 --> 00:07:39,839
there wasn't any of them, and the name Altar actually

155
00:07:39,879 --> 00:07:43,759
comes from the star Alta, although there's an apocryphal or

156
00:07:43,800 --> 00:07:47,079
adjacent story of the fact that around that same time,

157
00:07:47,120 --> 00:07:50,439
in the late seventies, the television show Star Trek had

158
00:07:50,439 --> 00:07:52,560
an episode on a mock time where they go to

159
00:07:52,600 --> 00:07:56,519
Altair six, and since it was a star of a technology,

160
00:07:56,560 --> 00:07:58,560
they ought to have a cool name, not just a number,

161
00:07:58,560 --> 00:07:59,079
so they called it.

162
00:07:59,199 --> 00:08:01,680
Speaker 1: So I've seen pick of the Altear and you're right.

163
00:08:01,720 --> 00:08:04,439
It has like switches where you can turns the zeros

164
00:08:04,480 --> 00:08:07,920
into the ones on and then press the button to

165
00:08:08,079 --> 00:08:10,040
write it into memory. It kind of reminds me of

166
00:08:10,040 --> 00:08:13,279
a pressure cooker, you know, like, well, it's just a box, right,

167
00:08:13,319 --> 00:08:16,399
it's a issue here is it's turning over. It's before

168
00:08:16,519 --> 00:08:21,079
RAM exists. Yeah, so you had to hand key the bootloader. Wow,

169
00:08:21,199 --> 00:08:23,720
it was like one hundred and seventeen bytes something like that.

170
00:08:23,800 --> 00:08:27,439
So you literally so booed up was a process. Was

171
00:08:27,480 --> 00:08:29,519
literally once you got that thing running, you didn't want

172
00:08:29,519 --> 00:08:31,000
to turn it off. Power goes out.

173
00:08:31,079 --> 00:08:34,240
Speaker 2: No, Yeah, and this is they weren't even using cassette

174
00:08:34,240 --> 00:08:36,639
tapes at this point. The first versions of Basic were

175
00:08:36,679 --> 00:08:41,360
on this paper tape with holes punched in it that

176
00:08:41,399 --> 00:08:43,759
they that the thing could read in to load up

177
00:08:43,759 --> 00:08:45,480
the version of Basic. It was a very small version

178
00:08:45,480 --> 00:08:47,039
of Basic because there's only four k RAM and you

179
00:08:47,039 --> 00:08:50,600
still have to run your program too, right, So.

180
00:08:50,200 --> 00:08:53,320
Speaker 1: They really only had mainframes before that, right, main four

181
00:08:53,399 --> 00:08:53,679
or less.

182
00:08:53,679 --> 00:08:56,440
Speaker 2: And many the PDPs are around, right, the mini computers,

183
00:08:57,080 --> 00:08:57,720
but they're all.

184
00:08:57,639 --> 00:09:00,080
Speaker 1: Using cards, so it makes sense that they would be

185
00:09:00,240 --> 00:09:01,679
using that technology.

186
00:09:02,000 --> 00:09:05,519
Speaker 2: He uses paper tape. And there's no copy of the

187
00:09:05,559 --> 00:09:09,159
original ALTA Basic. I think it exists anywhere. There is

188
00:09:09,200 --> 00:09:12,960
a version of the advanced version of that Basic in

189
00:09:13,039 --> 00:09:17,320
the Computer History Museum in the Silicon Valley, signed by Gates,

190
00:09:17,360 --> 00:09:20,200
and I think it was Gates's actual copy of it.

191
00:09:20,320 --> 00:09:20,720
Speaker 1: Wow.

192
00:09:20,840 --> 00:09:24,039
Speaker 2: And so yeah, yeah, the original original it starts the

193
00:09:24,039 --> 00:09:24,720
whole company.

194
00:09:25,000 --> 00:09:27,679
Speaker 1: I think it's gone. That's pretty crazy. Yeah, so the

195
00:09:27,759 --> 00:09:30,519
history of dot net starts in nineteen seventy four, doesn't.

196
00:09:30,399 --> 00:09:34,039
Speaker 2: Theoretically, I mean it's beginning of Microsoft. But yeah, yeah,

197
00:09:34,159 --> 00:09:36,919
all right in Albuquerque. Wow, good one.

198
00:09:38,039 --> 00:09:41,200
Speaker 1: So let's start then next with better no framework?

199
00:09:41,240 --> 00:09:41,600
Speaker 2: Awesome?

200
00:09:49,240 --> 00:09:51,960
Speaker 1: Al what you got? Do you use bitwarden? So do?

201
00:09:52,039 --> 00:09:54,440
I I love Bitwarden? Did you know that you can

202
00:09:54,519 --> 00:09:55,919
run it on prem Yeah.

203
00:09:56,039 --> 00:09:58,519
Speaker 2: Yeah, the open source product, right as it should be.

204
00:09:58,600 --> 00:10:01,399
Speaker 1: Yeah, I didn't know this, and then I found the

205
00:10:01,399 --> 00:10:07,759
Bitwarden server get repository and apparently you know, so, like

206
00:10:07,799 --> 00:10:09,039
I said, I didn't know it. I thought it was

207
00:10:09,039 --> 00:10:11,559
a product that you subscribe to, and it is. But

208
00:10:11,600 --> 00:10:12,879
if you want to run it yourself in.

209
00:10:12,840 --> 00:10:14,799
Speaker 2: There, you can use it for free or you can

210
00:10:14,799 --> 00:10:15,399
pay them like.

211
00:10:15,360 --> 00:10:18,159
Speaker 1: You and so what's really cool about this is that

212
00:10:18,399 --> 00:10:22,039
you know, hey, maybe we don't even want to trust

213
00:10:22,080 --> 00:10:25,440
bitwarden dot com with our passwords. Maybe we want to

214
00:10:25,720 --> 00:10:28,519
you know, keep all our data behind the firewall and

215
00:10:28,840 --> 00:10:32,320
wherever we want to put it, and you know, to

216
00:10:32,399 --> 00:10:35,320
be more secure. I mean, whether it is or not,

217
00:10:35,440 --> 00:10:37,559
I don't know, but at least that's an option. So

218
00:10:37,679 --> 00:10:41,600
you can download the server. It has all the APIs

219
00:10:41,679 --> 00:10:44,440
and everything that you need to run it. You can

220
00:10:44,480 --> 00:10:46,759
even run it on a Windows machine. You can run

221
00:10:46,799 --> 00:10:50,200
it in Docker containers on a Windows machine if you

222
00:10:50,240 --> 00:10:53,000
want to. Of course, Linux and Mac it's all there.

223
00:10:53,279 --> 00:10:54,799
It's really really cool and.

224
00:10:54,759 --> 00:10:57,279
Speaker 2: If we have made it clear, it's a password manager. Yes,

225
00:10:58,039 --> 00:11:02,000
you know, you can buy commercial products like one passes

226
00:11:02,039 --> 00:11:06,080
and so forth. But This is also one I've fallen

227
00:11:06,120 --> 00:11:07,960
on too. I had to leave last pass when last

228
00:11:07,960 --> 00:11:10,279
pass went insane. Me too, Yeah, which, by the way,

229
00:11:10,360 --> 00:11:12,960
I found migrating off the last pass less painful than

230
00:11:13,000 --> 00:11:15,919
I thought. Yep, I was dreading it. But the only

231
00:11:16,000 --> 00:11:18,559
real problem with a migrating from between password managers is

232
00:11:18,559 --> 00:11:20,440
at some point you're going to generate a CSV file

233
00:11:20,480 --> 00:11:23,240
of every single password in your life, and that will

234
00:11:23,240 --> 00:11:25,320
be upsetting. Well, the real way to do it is

235
00:11:25,399 --> 00:11:29,759
to just find the list of domains that you have

236
00:11:29,840 --> 00:11:32,440
passwords for in last past and go to each one

237
00:11:32,480 --> 00:11:34,679
of them and say, hey, I forgot my password, and

238
00:11:34,759 --> 00:11:37,440
go through the whole process of generation. Yeah. I mean,

239
00:11:38,120 --> 00:11:39,879
it's a terrible thing to do if you've got hundreds

240
00:11:39,879 --> 00:11:41,919
of them, but you know, in the reality is you

241
00:11:42,000 --> 00:11:44,000
can migrate your passwords over the other one, but you

242
00:11:44,039 --> 00:11:45,919
should probably change me after that and do yourself a

243
00:11:45,960 --> 00:11:48,919
favor delete that file when you're done. Absolutely, that file

244
00:11:48,960 --> 00:11:53,279
shouldn't exist. That files bad. What file? Yeah, and I'm

245
00:11:53,399 --> 00:11:55,799
super keen to get to pass keys. I just think

246
00:11:55,799 --> 00:11:58,000
passkey's still a half baked so.

247
00:11:58,039 --> 00:12:02,080
Speaker 1: Yeah, they're not quite there yet. I like one global

248
00:12:02,120 --> 00:12:03,639
authenticator app would be really good.

249
00:12:03,679 --> 00:12:04,679
Speaker 2: For me. Yeah, I don't know.

250
00:12:04,919 --> 00:12:06,960
Speaker 1: Not nine authenticator apps, not ten?

251
00:12:07,120 --> 00:12:07,799
Speaker 2: Good luck with that.

252
00:12:08,240 --> 00:12:09,399
Speaker 1: Just one is all I want.

253
00:12:09,480 --> 00:12:11,600
Speaker 2: I think there's a I's pretty sure there's an SKCD

254
00:12:12,360 --> 00:12:15,120
cartoon about this. It's like, we need a standard for everything.

255
00:12:15,200 --> 00:12:21,919
Now there's ten. Yay, Yeah, that's right. Remember scuzzy SCSI. Yeah,

256
00:12:22,159 --> 00:12:26,240
wasn't one of the SA's standing for standard. Yes, that's yeah.

257
00:12:26,279 --> 00:12:28,519
You know, how would that work out? No, there are

258
00:12:28,679 --> 00:12:30,679
no standards. Everybody fights against them.

259
00:12:30,879 --> 00:12:32,840
Speaker 1: All right, Well that's what I got. Richard, who's talking to.

260
00:12:32,840 --> 00:12:35,000
Speaker 2: Us today, jumped into the wayback machine because we haven't

261
00:12:35,000 --> 00:12:38,279
talked about stuff like specification driven development in a long time,

262
00:12:38,320 --> 00:12:40,519
but we have talked about it. And I grabbed a

263
00:12:40,559 --> 00:12:43,480
comment off a show nine to twenty one. Wow, this

264
00:12:43,559 --> 00:12:48,919
is when we talked about the product Cucumber working with

265
00:12:49,360 --> 00:12:52,799
behavior driven development Matt Wins show back in twenty thirteen.

266
00:12:52,919 --> 00:12:55,240
We've got a ton of comments on that show. Not surprising. Yeah,

267
00:12:55,279 --> 00:12:58,279
and gap has a Utz had this commed. He said, well,

268
00:12:58,279 --> 00:13:01,120
I had no real world experience with to driven development

269
00:13:01,159 --> 00:13:03,279
until now I've to use it on a new, relatively

270
00:13:03,320 --> 00:13:09,360
small project and we're now working on I'm really I'm

271
00:13:09,360 --> 00:13:11,759
trying to get to the place is what he's talking about,

272
00:13:11,840 --> 00:13:15,600
where you have an executical specification. And I just thought

273
00:13:15,600 --> 00:13:17,759
this comment was really relevant because we think about what

274
00:13:17,799 --> 00:13:22,360
we're doing with prompting with lllms these days, as could

275
00:13:22,360 --> 00:13:26,279
almost be an executable specification rather than having a separate document.

276
00:13:26,320 --> 00:13:28,159
It's supposed to document what the system does, but it's

277
00:13:28,279 --> 00:13:31,279
always out of sync, like what's the what do we

278
00:13:31,320 --> 00:13:34,159
make rules around all of this? But it would be

279
00:13:34,840 --> 00:13:37,279
cool to actually get on these large projects that we

280
00:13:37,320 --> 00:13:40,720
have a set of documentation that in this game were

281
00:13:40,720 --> 00:13:43,559
talking about. Cucumber generated the test to say does the

282
00:13:43,600 --> 00:13:47,919
software does what it's supposed to do? But I, you know, now,

283
00:13:47,960 --> 00:13:51,159
thinking ten years on looking at gatus as common, I'm like, wow,

284
00:13:51,440 --> 00:13:54,240
look where we are right now with the next generation

285
00:13:54,320 --> 00:13:58,600
of tools and another way of thinking about how we

286
00:13:58,639 --> 00:14:02,360
write a specification about an application and then how that

287
00:14:02,440 --> 00:14:04,559
specification turns into executable code.

288
00:14:04,600 --> 00:14:08,879
Speaker 1: Cucumber was like all use cases, right, yeah, Like as

289
00:14:08,919 --> 00:14:11,320
a user, I want to be able to blay blah

290
00:14:11,360 --> 00:14:14,279
blah blah, and yeah, yeah, very cool.

291
00:14:14,399 --> 00:14:18,039
Speaker 2: Yeah, it was acceptance testing, right, You're supposed to be

292
00:14:18,080 --> 00:14:19,559
able to write it in English, Like I don't know.

293
00:14:19,799 --> 00:14:21,679
I'll include a link to cucumber. Folks want to take

294
00:14:21,679 --> 00:14:23,519
a look at it. It would take a minute for

295
00:14:23,559 --> 00:14:24,919
me to go back and look at this now, just

296
00:14:24,919 --> 00:14:30,080
thinking about what lms have done to this whole space. Sure, anyway, Gattis,

297
00:14:30,080 --> 00:14:31,679
thank you so much for your comment, and a copy

298
00:14:31,679 --> 00:14:33,039
of music code By is on its way to you.

299
00:14:33,039 --> 00:14:34,399
And if you'd like a copy of music cobe I,

300
00:14:34,440 --> 00:14:36,480
write a comment on the website at dot NetRocks dot

301
00:14:36,519 --> 00:14:38,720
com or on the Facebook. We publish every show there,

302
00:14:38,720 --> 00:14:40,080
and if you comment there and I read in the show,

303
00:14:40,120 --> 00:14:41,320
I'll send you copy of music cobe.

304
00:14:41,360 --> 00:14:43,360
Speaker 1: I was just using music to code By to prepare

305
00:14:43,399 --> 00:14:47,600
for my talks nice next week, and it's still going strong.

306
00:14:47,679 --> 00:14:52,919
Twenty two tracks, twenty five minutes long, designed for the

307
00:14:53,559 --> 00:14:56,240
Pomodoro technique, but not necessarily. You don't have to have

308
00:14:56,279 --> 00:14:56,679
a clock.

309
00:14:58,360 --> 00:14:58,559
Speaker 2: You know.

310
00:14:58,720 --> 00:15:02,559
Speaker 1: They're neither boring or too exciting. They're just in that

311
00:15:02,679 --> 00:15:06,679
middle space. They're just too right. Get you into a

312
00:15:06,720 --> 00:15:11,080
state of flow and keep you there, okay. Den de

313
00:15:11,240 --> 00:15:14,519
la Marski is our guest. He is a principal product

314
00:15:14,559 --> 00:15:18,159
engineer currently working at Microsoft, where he helps build developer

315
00:15:18,200 --> 00:15:21,840
tools in AI powered experiences that make engineers more productive.

316
00:15:22,519 --> 00:15:25,440
Den started his engineering journey all the way back in

317
00:15:25,440 --> 00:15:26,080
the nineties.

318
00:15:26,399 --> 00:15:29,799
Speaker 2: Oh god, all the way back, all the way back,

319
00:15:29,919 --> 00:15:30,759
a long time ago.

320
00:15:30,799 --> 00:15:32,960
Speaker 1: All the way back in the nineties.

321
00:15:33,799 --> 00:15:36,720
Speaker 3: I did I tell you that I listened to your

322
00:15:36,759 --> 00:15:38,399
podcast when I was in middle school?

323
00:15:38,679 --> 00:15:39,679
Speaker 2: Oh my god.

324
00:15:39,960 --> 00:15:45,039
Speaker 1: Yeah, excuse me, take some geritol right now, Hang on

325
00:15:45,080 --> 00:15:45,480
a second.

326
00:15:45,559 --> 00:15:46,720
Speaker 2: Yeah, yeah, all right.

327
00:15:46,759 --> 00:15:48,759
Speaker 1: So in the nineties with the three eighty six box

328
00:15:48,799 --> 00:15:52,320
that was verily enough to run Doss games. He's upgraded

329
00:15:52,360 --> 00:15:56,159
since then. He has spent plenty of time writing code

330
00:15:56,159 --> 00:15:59,000
and visual basics six oh, but for more than two

331
00:15:59,000 --> 00:16:03,720
decades now he's writing see sharp and Python and there's more. Dan, welcome,

332
00:16:04,080 --> 00:16:06,960
thank you, so happy to be here. I'm such a

333
00:16:06,960 --> 00:16:08,000
fan of Dunn at Rocks.

334
00:16:08,399 --> 00:16:09,240
Speaker 2: That's great. Wow.

335
00:16:09,279 --> 00:16:11,120
Speaker 1: Well, after reading your bio, I'm a fan of yours

336
00:16:13,399 --> 00:16:15,480
TB six. I mean, I was there, we were there.

337
00:16:15,559 --> 00:16:16,519
I missed those days.

338
00:16:16,720 --> 00:16:19,000
Speaker 3: I missed the days of just me like popping an ID,

339
00:16:19,960 --> 00:16:23,480
using the forum, designers, dropping some progress bars on clicking

340
00:16:23,480 --> 00:16:24,879
the buttons and things are.

341
00:16:24,799 --> 00:16:28,399
Speaker 1: Just working well and not having to sign into an app.

342
00:16:28,600 --> 00:16:32,399
Speaker 2: Nice and not having to sign in Ye, that was

343
00:16:32,440 --> 00:16:34,559
a product that was made fun of. You know, it

344
00:16:34,600 --> 00:16:38,240
wasn't real programming back in the day, and we were

345
00:16:38,279 --> 00:16:41,519
crying all the way to the bank as we knocked

346
00:16:41,519 --> 00:16:44,440
out the things that our customers actually needed in less time.

347
00:16:45,720 --> 00:16:48,919
Speaker 1: I was there at BB one. Oh, I was there

348
00:16:49,279 --> 00:16:51,440
and quick Basic com pts Before.

349
00:16:51,200 --> 00:16:53,840
Speaker 2: That, Yeah, yeah, no, I spent I did my time

350
00:16:53,879 --> 00:16:58,440
in the in MFC crashing windows repeatedly and wondering what

351
00:16:58,480 --> 00:17:02,240
I was doing wrong. VB showed out like this is better.

352
00:17:03,919 --> 00:17:06,440
Speaker 1: What you do is you find yourself an MFCC plus

353
00:17:06,480 --> 00:17:09,039
plus programmer and then you just partner with them to

354
00:17:09,079 --> 00:17:10,480
do the hard stuff.

355
00:17:10,799 --> 00:17:11,319
Speaker 2: Yeah.

356
00:17:11,400 --> 00:17:12,960
Speaker 3: I gotta say, I just don't know that there was

357
00:17:13,000 --> 00:17:14,920
not that much stuff that was that hard. Like I

358
00:17:15,279 --> 00:17:17,160
love VB six, but you know, the one thing that

359
00:17:17,279 --> 00:17:19,359
just kind of annoyed me about it is when Windows

360
00:17:19,440 --> 00:17:22,519
XP came out and it had all these super nice

361
00:17:22,559 --> 00:17:25,039
styles and everything, and just VV six was constantly stuck

362
00:17:25,079 --> 00:17:26,680
in the Windows ninety five and I was like, oh,

363
00:17:26,799 --> 00:17:29,119
come on, man, Like, can I just get the nice

364
00:17:29,119 --> 00:17:31,759
progress bar, the nice button with the shadow.

365
00:17:31,640 --> 00:17:33,359
Speaker 1: And you could if you went third party. They all

366
00:17:33,400 --> 00:17:36,359
adapted their stuff. Yeah, they had read through everything, but.

367
00:17:36,960 --> 00:17:38,960
Speaker 2: I was broke and I had no money, I couldn't

368
00:17:38,960 --> 00:17:42,680
get that party. Well, and we didn't know that Microsoft

369
00:17:42,720 --> 00:17:45,319
was changing gears, right, like, yeah, that there wasn't going

370
00:17:45,400 --> 00:17:47,400
to be a VB seven right, Yeah.

371
00:17:47,200 --> 00:17:49,319
Speaker 1: Those were the days days of drama.

372
00:17:49,599 --> 00:17:52,960
Speaker 2: Yeah. So but that's talk to me about spec driven development,

373
00:17:53,039 --> 00:17:54,960
den What have you been up to here? What is

374
00:17:55,000 --> 00:17:56,039
this all? Right?

375
00:17:56,119 --> 00:17:58,920
Speaker 3: So folks might have seen that about a month ago,

376
00:17:59,240 --> 00:18:01,680
we work with our friends at get hub to release

377
00:18:01,720 --> 00:18:04,400
this thing called spec Kit. So if you go to

378
00:18:04,519 --> 00:18:07,720
get up dot com slash, get up slash spec dash Kit.

379
00:18:08,359 --> 00:18:12,799
Spec Kit is nothing super magical. It's basically a set

380
00:18:12,839 --> 00:18:16,279
of templates, prompts, and scripts. And the whole purpose for

381
00:18:16,400 --> 00:18:19,160
that is that when we talk to folks that try

382
00:18:19,160 --> 00:18:22,400
to build software llms, like, there's a large swath of

383
00:18:22,400 --> 00:18:25,319
folks that are just very excited about the fact that, oh,

384
00:18:25,359 --> 00:18:28,119
I don't have to write boilerplate code, I don't have

385
00:18:28,200 --> 00:18:31,680
to write my tests from scratch because I can just

386
00:18:31,839 --> 00:18:34,359
you know, use quad code to do that stuff. So

387
00:18:35,519 --> 00:18:38,440
as we talk to more of these customers, especially customers

388
00:18:38,440 --> 00:18:41,039
and like bigger companies, customers that want to build something

389
00:18:41,079 --> 00:18:45,359
that is going beyond what we refer to as vibe coding. Oh,

390
00:18:45,359 --> 00:18:47,880
I'm building a podcast landing page, like, oh, yeah, you

391
00:18:47,920 --> 00:18:50,440
can vibe code that in the day. If you're building

392
00:18:50,519 --> 00:18:53,400
a i don't know, like a CRM or like a

393
00:18:53,400 --> 00:18:55,599
plugin for a CRM, all of a sudden you're in

394
00:18:55,599 --> 00:18:58,319
the world of hurt because you're getting into this state

395
00:18:58,440 --> 00:19:02,000
of now I need to go and just constantly prompt

396
00:19:02,000 --> 00:19:04,920
for changes, and then things went off the rails and

397
00:19:04,960 --> 00:19:07,480
I need to go back somehow and then redo it.

398
00:19:07,519 --> 00:19:11,319
But now I don't have any history. So for that

399
00:19:11,559 --> 00:19:14,400
we thought, okay, we have an idea for an experiment.

400
00:19:14,839 --> 00:19:20,160
What if all of this stuff can be encoded into specs?

401
00:19:21,000 --> 00:19:23,880
And this is idea as old as time, as kind

402
00:19:23,880 --> 00:19:25,960
of Richard called out like spectrum development and the idea

403
00:19:26,000 --> 00:19:29,079
of writing specs as the underlying kind of the layer

404
00:19:29,119 --> 00:19:31,480
of software is not exactly new like it existed for

405
00:19:31,559 --> 00:19:34,559
some time. This is more of a it's a new

406
00:19:34,599 --> 00:19:38,799
incarnation of it and in this context, and by the way,

407
00:19:38,880 --> 00:19:41,640
a lot of this was also driven by one of

408
00:19:41,640 --> 00:19:44,720
my colleagues, John Lamb, who was inspired.

409
00:19:44,920 --> 00:19:45,200
Speaker 1: Yeah.

410
00:19:45,279 --> 00:19:49,359
Speaker 3: John Lamb is great from the Iron Python days. For

411
00:19:49,359 --> 00:19:52,319
folks that don't know, Yeah.

412
00:19:51,599 --> 00:19:54,039
Speaker 1: From a developmentor before that, I think yes.

413
00:19:54,359 --> 00:19:55,200
Speaker 2: Yeah.

414
00:19:55,400 --> 00:19:59,799
Speaker 3: So John was somewhat frustrated by the fact that Claude's Sonnet,

415
00:20:00,599 --> 00:20:04,240
the model from Anthropic, was very over eager.

416
00:20:04,319 --> 00:20:05,400
Speaker 2: When you'd give it coding test.

417
00:20:05,640 --> 00:20:08,119
Speaker 3: You'd be like, oh, can you like I'm building this

418
00:20:08,559 --> 00:20:10,480
new components, like oh, let me write this component, let

419
00:20:10,519 --> 00:20:12,200
me write all to the framework for this component and

420
00:20:12,279 --> 00:20:12,960
everything around it.

421
00:20:13,119 --> 00:20:13,319
Speaker 1: Yeah.

422
00:20:13,880 --> 00:20:16,839
Speaker 3: So the idea was like, well, can we put guardrails

423
00:20:16,839 --> 00:20:18,440
around it? So make sure that, like if I ask

424
00:20:18,519 --> 00:20:21,599
you to do this, you do just that. So this

425
00:20:22,039 --> 00:20:25,920
is what essentially bootstrapped spec Kit. This was the foundational pieces.

426
00:20:25,920 --> 00:20:27,799
It's like, how do we make the model a little

427
00:20:27,839 --> 00:20:31,480
bit more contained if you will to do the things

428
00:20:31,480 --> 00:20:34,160
that we want. And as we started kind of exploring this.

429
00:20:34,079 --> 00:20:36,759
Speaker 1: Couldn't you write a system prompt for Claude just to say, hey,

430
00:20:36,799 --> 00:20:38,799
state your lane and don't do anything I don't tell

431
00:20:38,799 --> 00:20:39,160
you to do.

432
00:20:39,599 --> 00:20:42,240
Speaker 3: You could, but then you're just always in this like

433
00:20:42,319 --> 00:20:45,640
cat and mouse game, right, and you're writing system prompts.

434
00:20:46,200 --> 00:20:47,839
So and by the way, it's also like if you

435
00:20:47,880 --> 00:20:49,440
switch models all of a sudden.

436
00:20:49,160 --> 00:20:52,160
Speaker 2: Like what what then? Like do I write a system prompt? So?

437
00:20:52,400 --> 00:20:52,680
Speaker 1: Okay?

438
00:20:53,279 --> 00:20:54,920
Speaker 3: Yeah, And also we live in a world where developer

439
00:20:54,960 --> 00:20:57,160
switch models, like every week there is I'm sure there's

440
00:20:57,160 --> 00:20:58,839
a model came out. Well, we're recording this that we

441
00:20:58,880 --> 00:21:02,759
did not know about this, this is somehow better or different

442
00:21:02,799 --> 00:21:06,960
models for different applications exactly. So Speckett was born out

443
00:21:07,000 --> 00:21:09,960
of that entire need, and as we started kind of

444
00:21:09,960 --> 00:21:14,720
evolving it, things pop top from customer conversations like, oh, well,

445
00:21:15,359 --> 00:21:18,000
if I starting coding requirements, how do I make sure

446
00:21:18,039 --> 00:21:22,720
that my technical requirements are correctly updated if I decided

447
00:21:22,759 --> 00:21:26,119
to change my tech stack. And that actually is one

448
00:21:26,160 --> 00:21:28,799
of the core value props of Speckett and the spectrum

449
00:21:28,839 --> 00:21:32,839
development here is that we're detaching the spect the requirements

450
00:21:32,839 --> 00:21:36,119
from code and from the tech stack, so that if

451
00:21:36,160 --> 00:21:38,640
you're a developer and previously you're like, Okay, I want

452
00:21:38,640 --> 00:21:40,880
to build a web app for my enterprise that does

453
00:21:41,759 --> 00:21:45,839
something like accounting, and I'm not entirely sure which framework

454
00:21:45,920 --> 00:21:48,599
is the most performed, is it next JS? Should I

455
00:21:48,680 --> 00:21:51,279
use Astro? Should I be framework less entirely? Should I

456
00:21:51,279 --> 00:21:56,200
write this in just tailwin CSS for UI, shad CN.

457
00:21:56,559 --> 00:21:59,359
Speaker 2: And like, what would you have to do?

458
00:21:59,519 --> 00:22:02,200
Speaker 3: You'd have to go and write this in whatever stack

459
00:22:02,319 --> 00:22:04,680
and then maybe do some benchmarks and figure out like

460
00:22:04,720 --> 00:22:09,119
what's the performance. Now, because you have a spec you

461
00:22:09,160 --> 00:22:11,240
can just go and ask it to write you like

462
00:22:11,359 --> 00:22:15,279
three versions out of the same requirements. So you basically

463
00:22:15,319 --> 00:22:18,720
you start speed running the iteration process and saying, oh,

464
00:22:18,799 --> 00:22:22,200
create me like three options that I can choose from.

465
00:22:22,359 --> 00:22:24,559
And that's kind of nice because now you have the requirements,

466
00:22:24,839 --> 00:22:28,200
they're separate from your technical requirements, and the LM can

467
00:22:28,279 --> 00:22:30,000
just build it for you and then you can assess it.

468
00:22:30,319 --> 00:22:30,599
Speaker 2: Cool.

469
00:22:31,160 --> 00:22:35,000
Speaker 1: So Cucumber plus AI, you could probably think.

470
00:22:34,920 --> 00:22:38,640
Speaker 3: It's basically simplify yes, instead of as a user I

471
00:22:38,720 --> 00:22:41,599
can is like as a large language model, I can.

472
00:22:44,039 --> 00:22:44,359
Speaker 1: Wow.

473
00:22:44,440 --> 00:22:46,880
Speaker 2: But I think you're also skipping over some hard bits here,

474
00:22:46,880 --> 00:22:49,920
which is you really have to granulize the specification. Yes,

475
00:22:50,200 --> 00:22:52,119
you want to take small enough bites at the LM

476
00:22:52,119 --> 00:22:53,519
has a shot at building this thing.

477
00:22:53,359 --> 00:22:56,000
Speaker 3: Success absolutely, And I think one of the biggest problems

478
00:22:56,000 --> 00:22:58,119
that we see with people trying to approach spectro of

479
00:22:58,160 --> 00:23:01,079
development is actually, like, first of all, the problem is

480
00:23:01,160 --> 00:23:05,640
under specification because if you are not yet comfortable writing

481
00:23:05,640 --> 00:23:07,720
specs or understanding.

482
00:23:07,319 --> 00:23:09,599
Speaker 2: What you're building and why, you're.

483
00:23:09,440 --> 00:23:12,440
Speaker 3: Gonna fall into the pit of under specification and what

484
00:23:12,519 --> 00:23:16,359
happens when you underspecify things. The AI starts guessing and

485
00:23:16,400 --> 00:23:18,920
it's like, oh, sure, like you did not tell me

486
00:23:19,039 --> 00:23:21,160
that you do not want the header to be green.

487
00:23:21,839 --> 00:23:24,559
I'll make it like whatever color I choose, right, And

488
00:23:24,599 --> 00:23:26,920
I think this is like it's a it's a mental shift, right.

489
00:23:27,119 --> 00:23:31,000
You previously have to get into the mode of like, oh,

490
00:23:31,039 --> 00:23:33,119
I'll just go and start writing things and see how

491
00:23:33,160 --> 00:23:34,720
it happens. Now you're like, no, no, no, I need to

492
00:23:34,720 --> 00:23:39,400
spend upfront time thinking about this, outlining this. And by

493
00:23:39,440 --> 00:23:41,920
the way, we also support this capability. We added this

494
00:23:42,880 --> 00:23:46,000
prompt inside spec kid that is called clarified and that

495
00:23:46,119 --> 00:23:50,240
is essentially you're using the language model to question your

496
00:23:50,279 --> 00:23:52,680
spec right, So if you're not if you have writer's block,

497
00:23:52,759 --> 00:23:55,839
you're you're not inspired, Uh, you can just ask the

498
00:23:55,920 --> 00:23:57,640
LM to say can you can you ask me quite,

499
00:23:57,680 --> 00:23:59,599
are there any blind spots that I might have? Are

500
00:23:59,640 --> 00:24:02,599
there the things that I don't know?

501
00:24:02,960 --> 00:24:03,960
Speaker 2: I don't know? Right?

502
00:24:04,160 --> 00:24:07,119
Speaker 3: Right, just keep keep prodding at this and so and

503
00:24:07,119 --> 00:24:11,400
absolutely you're right Richard, like there is a degreeable. So great, Well,

504
00:24:11,240 --> 00:24:13,960
we're going to have this massive specification. It's going to

505
00:24:14,000 --> 00:24:17,480
be massive, like it's going to be massive context windows

506
00:24:17,480 --> 00:24:20,079
for folks that know, like any large language model has

507
00:24:20,119 --> 00:24:24,559
basically a limited set of tokens again process at any

508
00:24:24,599 --> 00:24:26,839
given time before it starts losing track of what you

509
00:24:26,920 --> 00:24:29,640
asked it to do. So the context windows are relatively limited.

510
00:24:29,680 --> 00:24:32,519
So if you start with a giant, massive spec you

511
00:24:32,519 --> 00:24:34,079
can call it a context window. I'm going to call

512
00:24:34,119 --> 00:24:37,480
it a buffer overflush. Sure that's really what's happening. Absolutely, yes,

513
00:24:37,599 --> 00:24:39,039
that that's a very good way of putting it. Like

514
00:24:39,079 --> 00:24:40,279
you're going to get into the world of the buffer

515
00:24:40,319 --> 00:24:43,440
overflow where a lot of your instructions and guardrails are

516
00:24:43,480 --> 00:24:44,920
just going to be tossed out the windows. Like it's

517
00:24:44,920 --> 00:24:45,599
not going to be a plot.

518
00:24:45,640 --> 00:24:48,599
Speaker 1: Yeah I heard Sun at four point five has more space.

519
00:24:48,880 --> 00:24:52,680
Speaker 3: Yes, yes, modern models have like generally are improving in

520
00:24:52,720 --> 00:24:55,279
terms of like the the buffer overflail problem.

521
00:24:55,400 --> 00:24:56,400
Speaker 2: Yeah.

522
00:24:56,519 --> 00:24:59,680
Speaker 3: So what we also do here is not only do

523
00:24:59,720 --> 00:25:01,920
we ask you to create the specification, but we'll also

524
00:25:02,000 --> 00:25:04,960
break this down into chunks. So once SUSPEC is ready,

525
00:25:05,119 --> 00:25:09,079
once the technical plan is outlined, we have the capability

526
00:25:09,079 --> 00:25:13,039
to basically split this into consumable tasks. And then this

527
00:25:13,079 --> 00:25:15,160
is where I showed in my videos. I showed in

528
00:25:15,160 --> 00:25:17,960
a blog where it's like you can use slash tasks

529
00:25:17,960 --> 00:25:20,519
to then create a list of tasks that are based

530
00:25:20,519 --> 00:25:23,640
on the spec based on the technical plan, and the

531
00:25:23,759 --> 00:25:25,559
LM can do them in chunks. It's like, Okay, first

532
00:25:25,599 --> 00:25:27,759
of all, you need to bootstrap this project next to yes, okay,

533
00:25:27,839 --> 00:25:29,680
let me go do that. Now you need to create

534
00:25:29,680 --> 00:25:31,839
the CSS, Okay, let me go do that. So you're

535
00:25:31,880 --> 00:25:37,319
going through these controlled stages of creating things and get

536
00:25:37,720 --> 00:25:40,200
to an end result. Now, some of these tasks also

537
00:25:40,240 --> 00:25:42,000
going to be parallelized, and this is something that we

538
00:25:42,039 --> 00:25:46,039
see with coding agents like claud code that support sub agents,

539
00:25:46,119 --> 00:25:48,680
where the agent itself can spin up sub agents with

540
00:25:48,720 --> 00:25:51,839
their own context windows, and you can say, oh, this

541
00:25:51,880 --> 00:25:53,680
agent's going to be writing tests for this component, this

542
00:25:53,720 --> 00:25:55,680
agent's going to be running tests for this other component.

543
00:25:55,720 --> 00:25:58,279
And then you get into this world of kind of

544
00:25:58,559 --> 00:26:01,640
things are happening in parallel but also manageable chunks.

545
00:26:01,799 --> 00:26:04,519
Speaker 2: Yeah no, and you sort of see your role as

546
00:26:04,519 --> 00:26:08,319
a shepherd there to push down the specifications in enough

547
00:26:08,400 --> 00:26:12,400
detail that the tools have a chance segregating into portions

548
00:26:12,440 --> 00:26:15,920
with headers that describe this is the context you're going

549
00:26:15,960 --> 00:26:18,480
to be living in. But it's shorter than the overall context.

550
00:26:18,480 --> 00:26:21,319
Now I need you to do this party, and I

551
00:26:21,880 --> 00:26:25,079
everywhere I see this being this approach be successful with

552
00:26:25,720 --> 00:26:29,920
unbelievable levels of testing too, right, I'm always a stun

553
00:26:30,000 --> 00:26:32,519
to llms. Often when given an instruction for a set

554
00:26:32,519 --> 00:26:35,240
of code to generate, get about halfway through and just

555
00:26:35,359 --> 00:26:38,480
kind of stop. It's like, you can finish this. It's

556
00:26:38,480 --> 00:26:40,799
your buffer overflow. I think it's a buffer overflow. And

557
00:26:40,839 --> 00:26:43,839
so so that test approach where I want you to

558
00:26:43,839 --> 00:26:45,720
generate the set of tests and then I want you

559
00:26:45,839 --> 00:26:48,759
to pass all the tests before you stop. It's kind

560
00:26:48,759 --> 00:26:51,880
of a way to again compress that context further right

561
00:26:51,920 --> 00:26:54,799
into these test loops to try and actually get complete

562
00:26:54,839 --> 00:26:57,759
sets of code from it, like the tools take the wrestling.

563
00:26:57,799 --> 00:27:01,200
Speaker 1: When that happens. When that happens, though, it's it's really

564
00:27:01,279 --> 00:27:05,079
unnerving because it's in a state where you can't really

565
00:27:05,119 --> 00:27:07,119
debug it because not all the code is there that

566
00:27:07,160 --> 00:27:11,319
it was, yes, you know, spitting out and you ultimately

567
00:27:11,400 --> 00:27:14,559
have to roll stuff back and try again. And I

568
00:27:15,160 --> 00:27:18,279
hate that about code generation in general, is that you know,

569
00:27:18,359 --> 00:27:20,920
now this is intelligent code generation. By the way, John

570
00:27:20,960 --> 00:27:23,799
Lamb's been into code generation since like ninety one.

571
00:27:23,880 --> 00:27:24,799
Speaker 2: Before it was cool.

572
00:27:25,039 --> 00:27:28,960
Speaker 1: Yeah, but you know the problem of course is that

573
00:27:29,400 --> 00:27:33,559
if it creates something that you don't understand and can't

574
00:27:33,759 --> 00:27:38,720
explain in a meeting, for example, you're you're done for

575
00:27:39,200 --> 00:27:40,200
in my opinion.

576
00:27:39,920 --> 00:27:41,599
Speaker 2: Oh absolutely absolutely.

577
00:27:41,799 --> 00:27:43,680
Speaker 3: And I think this is an interesting tangent here to

578
00:27:43,880 --> 00:27:49,400
the role of expertise, Like I've heard somebody talk about

579
00:27:49,519 --> 00:27:52,039
kind of the role of the developer moving forward. If

580
00:27:52,559 --> 00:27:56,559
if LM has become really good at cogeneration and producing

581
00:27:56,720 --> 00:28:00,160
just just boatloads of code, what is your role as

582
00:28:00,160 --> 00:28:03,799
a developer on IT team? And I think there's a

583
00:28:03,960 --> 00:28:05,920
hypoth this is that that role is going to shift

584
00:28:05,960 --> 00:28:08,920
more to almost like a Richards. You go out like

585
00:28:08,960 --> 00:28:12,000
the Shepherd reviewer, right, it was like okay, but like

586
00:28:12,880 --> 00:28:15,119
even for you to be able to review things, you

587
00:28:15,240 --> 00:28:19,039
have to have expertise to know what you're looking at, right,

588
00:28:19,119 --> 00:28:21,039
because I've seen this happen. But like Carl, you're talking

589
00:28:21,079 --> 00:28:23,200
about like test or and development, Like to me, this

590
00:28:23,240 --> 00:28:25,319
aspect of like, okay, well, there's a bunch of tests,

591
00:28:25,960 --> 00:28:27,559
and I looked at some of the tests that some

592
00:28:27,599 --> 00:28:30,000
of the models generate, and sometimes like for me to

593
00:28:30,079 --> 00:28:31,440
test for the test to pass.

594
00:28:31,519 --> 00:28:34,319
Speaker 2: Oh, let me make a change and just return true. Yeah, right,

595
00:28:34,359 --> 00:28:36,240
and test is passing now, Hey solved it.

596
00:28:36,240 --> 00:28:36,599
Speaker 1: Look at it.

597
00:28:36,599 --> 00:28:37,160
Speaker 2: It's all green.

598
00:28:37,200 --> 00:28:37,359
Speaker 1: Now.

599
00:28:37,519 --> 00:28:41,000
Speaker 3: Nice, But you need to have the expertise to actually

600
00:28:41,039 --> 00:28:43,319
look at it and be like, yeah, this ain't it?

601
00:28:43,480 --> 00:28:44,680
Speaker 2: No, like I need like I.

602
00:28:44,680 --> 00:28:46,559
Speaker 1: Kind of I kind of think of a roll moving

603
00:28:46,599 --> 00:28:50,039
forward as sort of like a general contractor building a house. Right,

604
00:28:50,160 --> 00:28:52,920
the general contractors in charge of all the subcontractors that

605
00:28:53,000 --> 00:28:56,279
have their sub specialties. But any general contractor worth their

606
00:28:56,319 --> 00:28:59,680
weight knows enough about those things to be able to

607
00:28:59,720 --> 00:29:02,759
take over if the electrician is out sick, or to uh,

608
00:29:03,160 --> 00:29:06,960
you know, remove the termite damage from these boards, if

609
00:29:07,359 --> 00:29:10,359
the carpenter doesn't you know, isn't there that day? That

610
00:29:10,440 --> 00:29:13,119
kind of stuff. So so you need to be able

611
00:29:13,160 --> 00:29:15,839
to understand everything that your subs are doing and be

612
00:29:15,920 --> 00:29:18,480
able to jump in when you can, but not necessarily

613
00:29:18,480 --> 00:29:19,960
build the house by yourself.

614
00:29:19,640 --> 00:29:23,400
Speaker 3: Right, right, And we see this especially critical with things

615
00:29:23,480 --> 00:29:27,440
like security and awe, oh my goodness, Like I see

616
00:29:27,519 --> 00:29:30,559
so much stuff that is just tossing to get our

617
00:29:30,559 --> 00:29:33,480
bripo that clearly has been just like the AI told

618
00:29:33,519 --> 00:29:36,119
me that this is secure, Like oh no, you're returning

619
00:29:36,119 --> 00:29:38,240
to the two FA code and the adjacent response is

620
00:29:38,279 --> 00:29:41,400
you're expecting it like that's that's that's not going to

621
00:29:41,440 --> 00:29:43,720
be good. So yeah, so the these changes right, like

622
00:29:43,880 --> 00:29:45,880
there's a good degree of that expertise that needs to

623
00:29:45,920 --> 00:29:49,079
be embedded into the process and see that the the

624
00:29:49,200 --> 00:29:52,680
what the LM is generating, whether it's tests, the components,

625
00:29:52,759 --> 00:29:57,799
the structure is actually right and scope through the project

626
00:29:57,799 --> 00:30:01,599
you're building them because LM's go thrills all the time,

627
00:30:01,720 --> 00:30:04,240
right all the time, and they do wild things that

628
00:30:04,319 --> 00:30:07,039
if you don't know, like on a surface, it might

629
00:30:07,079 --> 00:30:09,880
seem like, oh it works. I was recently like rebuilding

630
00:30:09,920 --> 00:30:11,880
some of the stuff would alsope with the help of

631
00:30:11,920 --> 00:30:14,279
spec get on my blog and it's like, oh, I

632
00:30:14,319 --> 00:30:16,759
couldn't understand where your CSS is. I'm just going to

633
00:30:16,839 --> 00:30:19,119
recreate a bunch of CSS files and so I'd have

634
00:30:19,200 --> 00:30:22,200
like a bunch of duplication all of a sudden. Yeah

635
00:30:22,279 --> 00:30:25,359
it works though, but if I didn't know, if I'm

636
00:30:25,359 --> 00:30:27,839
somebody that has to maintain, they'll be like, wait, why

637
00:30:28,240 --> 00:30:32,200
just recreate these two folders for this exact same content.

638
00:30:32,240 --> 00:30:34,599
Speaker 1: We're coming up with more and more of these examples

639
00:30:34,640 --> 00:30:39,640
where having the expertise would prevent working code. That's dumb.

640
00:30:39,799 --> 00:30:42,799
Speaker 2: Yeah, yeah, yeah. The concept is what's worked, what's actually

641
00:30:42,839 --> 00:30:45,559
working right, and the software clearly has a different perception

642
00:30:45,640 --> 00:30:49,759
of working than you. Yeah right, get good enough guidelines. Hey,

643
00:30:49,759 --> 00:30:53,000
we got to take a break for these very important messages.

644
00:30:55,119 --> 00:30:57,359
Speaker 1: Do you have a complex dot net monolith you'd like

645
00:30:57,400 --> 00:31:01,359
to refactor to a micro services architecture? The micro Service

646
00:31:01,480 --> 00:31:05,200
Extractor for dot Net tool visualizes your app and helps

647
00:31:05,240 --> 00:31:09,599
progressively extract code into micro services. Learn more at aws

648
00:31:09,720 --> 00:31:13,319
dot Amazon dot com, slash modernize.

649
00:31:16,680 --> 00:31:18,799
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
Carl Franklin. You talking to our friend dem about the

651
00:31:22,680 --> 00:31:26,839
spec kit and this idea of I think essentially formalizing

652
00:31:26,960 --> 00:31:31,359
some practices around harnessing LMS for co generation. You're talking

653
00:31:31,400 --> 00:31:36,920
about uml right, yeah, yeah, that's what I want in

654
00:31:36,920 --> 00:31:37,359
my life.

655
00:31:37,400 --> 00:31:39,200
Speaker 1: You're still way back in the nineties.

656
00:31:39,720 --> 00:31:47,240
Speaker 2: Yeah, well, you know, it's linguist. It'd be interesting to

657
00:31:47,240 --> 00:31:49,759
get to a point where it was rendering, taking images

658
00:31:49,799 --> 00:31:53,640
and breaking them down into specifications as well. But I

659
00:31:53,640 --> 00:31:55,799
I do you know, now we've got the I'm starting

660
00:31:55,799 --> 00:31:58,480
to see the term work slop, just like AI slop,

661
00:31:58,559 --> 00:32:03,440
but it's hey, you you responded to a mediocre corporate

662
00:32:03,480 --> 00:32:07,160
email with even with generated results of even more mediocre.

663
00:32:07,440 --> 00:32:10,319
And the evil part about this is it takes time

664
00:32:10,400 --> 00:32:13,319
to read that and realize it's garbage, and so you're

665
00:32:13,319 --> 00:32:16,599
literally propagating garbage downward and making everything slower. Like there's

666
00:32:16,599 --> 00:32:22,160
a real risk here about not creating quality, but there

667
00:32:22,200 --> 00:32:24,359
is a way to create quality, like I have seen

668
00:32:24,400 --> 00:32:27,680
these things be successful. So part of this is really

669
00:32:27,880 --> 00:32:30,240
building you know, we talked about what's our job as

670
00:32:30,279 --> 00:32:33,240
the human in the loop here, it's actually having an

671
00:32:33,279 --> 00:32:36,480
eye to quality results that just setting it to true

672
00:32:36,519 --> 00:32:40,640
is non as acceptable that these tests are comprehensive. You know,

673
00:32:40,759 --> 00:32:43,119
you've got it, and but I also think you're going

674
00:32:43,200 --> 00:32:45,680
to be used the tool a lot for this. I

675
00:32:45,880 --> 00:32:49,279
like the idea of co generated from Claude being evaluated,

676
00:32:50,200 --> 00:32:53,640
you know, by open AI and how does it what

677
00:32:53,759 --> 00:32:56,200
its assessment looks like, and going passing back and forth

678
00:32:56,240 --> 00:33:00,160
between them so that you do have other assessments of

679
00:33:00,200 --> 00:33:01,160
everything being made.

680
00:33:01,400 --> 00:33:04,799
Speaker 1: Have you guys ever hired somebody who talked to good

681
00:33:04,839 --> 00:33:07,200
talk and then when they sent their code in you

682
00:33:07,200 --> 00:33:08,839
could tell they had no idea what they were doing

683
00:33:08,880 --> 00:33:12,440
and you're just frustrated. You could lose your mind like that,

684
00:33:12,599 --> 00:33:17,240
Like if you're constantly retelling an LLM, No don't you

685
00:33:17,480 --> 00:33:21,559
don't downgrade to dot eight? Was dot nine? Did I

686
00:33:21,599 --> 00:33:22,920
tell you the down grade?

687
00:33:23,000 --> 00:33:23,079
Speaker 3: No?

688
00:33:23,200 --> 00:33:25,039
Speaker 1: I did not, So why are you doing? You could

689
00:33:25,079 --> 00:33:28,400
actually lose your mind if you know, after a while,

690
00:33:28,400 --> 00:33:31,599
if that's your job and no wonder people want to

691
00:33:31,599 --> 00:33:34,319
write code because at least they're in control of it

692
00:33:34,400 --> 00:33:36,000
and they got no one to blame but themselves.

693
00:33:37,359 --> 00:33:40,319
Speaker 3: Yeah, so for that, by the way, like you call

694
00:33:40,359 --> 00:33:42,240
out of a very important point, which is, how do

695
00:33:42,279 --> 00:33:44,119
you set up these kind of requirements that the LM

696
00:33:44,119 --> 00:33:45,759
does not go off the rails in terms of your

697
00:33:45,759 --> 00:33:49,559
technical requirements and would spec it introduced this concept of

698
00:33:50,200 --> 00:33:54,079
the constitution. It sounds very fancy or like the you know,

699
00:33:54,160 --> 00:33:56,279
call it the charter if you will, or the Karda

700
00:33:56,359 --> 00:34:00,799
if you're British. You know, basically outline, it's the fundamental

701
00:34:00,799 --> 00:34:05,359
guys exactly, like the non negotiable things that will absolutely

702
00:34:05,319 --> 00:34:07,039
apply to your project. And this is where we've seen

703
00:34:07,079 --> 00:34:09,639
a lot of successful people coming in and saying I

704
00:34:09,719 --> 00:34:12,079
will write my constitution and say you always use.

705
00:34:11,960 --> 00:34:12,719
Speaker 2: Dot net nine.

706
00:34:13,239 --> 00:34:16,079
Speaker 3: You never downgrade anything else like, And the Constitution is

707
00:34:16,119 --> 00:34:18,679
grounded in every part of the spec process so that

708
00:34:18,760 --> 00:34:21,360
when it goes through like the technical plan and task breakdown,

709
00:34:21,400 --> 00:34:23,480
it always has to go and check like, what does

710
00:34:23,480 --> 00:34:24,559
the Constitution say about us?

711
00:34:24,559 --> 00:34:24,719
Speaker 1: Oh?

712
00:34:24,760 --> 00:34:27,320
Speaker 3: Dot net nine? Oops, I put dot net eight. Okay,

713
00:34:27,400 --> 00:34:29,719
can't do that. That's a constitutional violation. I'm gonna go

714
00:34:29,719 --> 00:34:30,519
ahead and redo this.

715
00:34:30,639 --> 00:34:35,639
Speaker 1: Get up copilot agent. I think the engine was or

716
00:34:35,719 --> 00:34:38,559
still is in written in dot net eight, and so

717
00:34:38,599 --> 00:34:41,719
it didn't have a dot net nine compiling environment, and

718
00:34:41,800 --> 00:34:45,840
so it would always go downgrade and think it was

719
00:34:45,880 --> 00:34:46,599
doing you a favor.

720
00:34:46,880 --> 00:34:49,599
Speaker 2: Right, So theory that's a long training thatta has a

721
00:34:49,639 --> 00:34:52,400
lot of impact on this. That's the long term support version, right,

722
00:34:52,480 --> 00:34:57,559
So there's a case but still but still, but you know,

723
00:34:57,840 --> 00:34:59,920
the only have this great race of context, which is

724
00:35:00,199 --> 00:35:04,920
you know you're describing the Constitution is a prefix prompt, right,

725
00:35:05,039 --> 00:35:07,480
It's like before you do anything, these are the rules.

726
00:35:07,480 --> 00:35:09,960
So a bunch of our context is now consumed by

727
00:35:10,000 --> 00:35:12,599
the prefix yes and no. Then we have the sort

728
00:35:12,639 --> 00:35:15,559
of state of being of the project, and then the

729
00:35:15,800 --> 00:35:18,960
request for what to create I'll say, we do it

730
00:35:19,000 --> 00:35:22,639
a little bit even trickier than that. So the Constitution

731
00:35:22,760 --> 00:35:25,440
is embedded in other prompts where you can essentially say,

732
00:35:25,880 --> 00:35:28,880
if you're building a technical plan, consult the Constitution, and

733
00:35:28,920 --> 00:35:33,039
within the technical plan, create a checklist of constitutional checks

734
00:35:33,079 --> 00:35:34,880
you have to go through before you move forward.

735
00:35:35,280 --> 00:35:37,599
Speaker 3: So instead of us embedding the Constitution, the Constitution itself

736
00:35:37,599 --> 00:35:41,239
can say like, oh, okay, this has to be a Net

737
00:35:41,320 --> 00:35:44,360
nine application, this has to be using this library to

738
00:35:44,360 --> 00:35:48,239
connect to Microsoft SQL server. And then when you get

739
00:35:48,239 --> 00:35:51,320
to the implementation stage, before you do an implementation, we

740
00:35:51,360 --> 00:35:54,079
also do a checklist of essentially saying can you cross

741
00:35:54,199 --> 00:35:58,000
check once more the Constitution against the plan, against the task,

742
00:35:58,039 --> 00:36:01,079
against the spec and see if there's any violations. So

743
00:36:01,119 --> 00:36:03,840
you're essentially creating almost unit tests for.

744
00:36:03,840 --> 00:36:05,440
Speaker 2: English like that.

745
00:36:05,440 --> 00:36:07,639
Speaker 3: That's kind of the framing seris Okay, let me, let

746
00:36:07,679 --> 00:36:09,280
me go and just cross check to make sure that

747
00:36:09,400 --> 00:36:13,039
nothing went off the rails, because too often people fall

748
00:36:13,079 --> 00:36:15,840
into this kind of habit of oh, I've done the spec,

749
00:36:15,880 --> 00:36:18,199
I've done the planet done and task great, go build

750
00:36:18,199 --> 00:36:21,519
this now. But that's like hold on, you still need

751
00:36:21,559 --> 00:36:24,599
to check that what it created actually matches the expectation requirements.

752
00:36:24,599 --> 00:36:26,280
So there's a bit of a process, right, And I

753
00:36:26,320 --> 00:36:27,760
think this is where I was talking about, Like this

754
00:36:27,840 --> 00:36:30,800
is the mental shift that you now have to think

755
00:36:30,840 --> 00:36:33,639
about those things that you did not before, because before

756
00:36:33,639 --> 00:36:35,480
you would just start writing code and be like, oh sure, yeah,

757
00:36:35,559 --> 00:36:37,360
let me bootstrap a dot A nine project and visual

758
00:36:37,400 --> 00:36:40,519
studio at my NuGet packages and be on my merryway.

759
00:36:41,079 --> 00:36:43,559
Here it's like now I need to basically like spell

760
00:36:43,599 --> 00:36:46,199
it out for it. For like, you have an over

761
00:36:46,280 --> 00:36:49,440
eager intern that is very very happy to help you

762
00:36:49,960 --> 00:36:51,639
but has no knowledge of what you're trying to do

763
00:36:51,679 --> 00:36:53,159
and just go like if you don't tell me, I'll

764
00:36:53,199 --> 00:36:55,719
just guess. And this is where you're trying to kind

765
00:36:55,719 --> 00:36:58,119
of like put guardrails and say like can I guide

766
00:36:58,159 --> 00:37:00,199
you to the right thing, to the exactly what I want?

767
00:37:00,280 --> 00:37:03,880
Speaker 1: Reminds me of Scooter from Mondays. Mister Miller, shop it

768
00:37:03,960 --> 00:37:08,800
on your pencils, I'll shove you beginning. I didn't find

769
00:37:08,840 --> 00:37:11,079
him with pencils up with cranons in shopping to miss

770
00:37:11,119 --> 00:37:11,480
the Miller.

771
00:37:11,599 --> 00:37:18,079
Speaker 2: It's exactly that. It's exactly that. Uh, Now, I gotta

772
00:37:18,119 --> 00:37:20,320
think there's some people listening. Is this even worth it? Then?

773
00:37:20,519 --> 00:37:23,039
Like all of this work to try and get this

774
00:37:23,119 --> 00:37:25,079
code generation to behave properly.

775
00:37:25,679 --> 00:37:28,000
Speaker 3: I think it depends. I think I'll say like it

776
00:37:28,039 --> 00:37:30,800
depends right, like it's it's a I I. I'd like

777
00:37:30,880 --> 00:37:32,519
to think the analogy like if you know, if you

778
00:37:32,519 --> 00:37:34,639
have a hammer, everything looks like a nail. So it's

779
00:37:34,679 --> 00:37:35,800
like I don't want to say like you have to

780
00:37:35,880 --> 00:37:40,760
use this for everything, but there's certainly value in getting

781
00:37:40,880 --> 00:37:45,400
from zero to a new feature, to a new component,

782
00:37:45,679 --> 00:37:50,440
to a new entirely new product with this. Even if

783
00:37:50,559 --> 00:37:54,239
you use this essentially scaffold this, just just get the

784
00:37:54,280 --> 00:37:59,960
bulk of the things, get the four pieces of vail,

785
00:38:00,840 --> 00:38:03,119
and then you with your expertise can come in. It's

786
00:38:03,159 --> 00:38:05,000
like you want to go and rewrite this component, go

787
00:38:05,039 --> 00:38:06,440
ahead and do this, you want to add like a

788
00:38:06,480 --> 00:38:08,239
moon and go ahead to do this. But it saves

789
00:38:08,239 --> 00:38:12,519
like a lot of this tediousness. So also a lot

790
00:38:12,519 --> 00:38:15,000
of these models are getting better, Like Sonnet four to

791
00:38:15,039 --> 00:38:17,559
five got released last week, Like GPT five got released

792
00:38:17,599 --> 00:38:20,760
like it was like last month, and like GPT five

793
00:38:20,800 --> 00:38:24,360
compared to GPT four was like night and day when

794
00:38:24,360 --> 00:38:28,519
it comes to coding, right, which like who saw that coming?

795
00:38:28,800 --> 00:38:30,320
Speaker 2: Right? But like they're getting better and better.

796
00:38:30,360 --> 00:38:32,840
Speaker 3: And I totally see a world where a lot of

797
00:38:32,840 --> 00:38:36,599
these guardrails were just kind of become leaner and it's

798
00:38:36,639 --> 00:38:38,400
not going to be as heavyweight because.

799
00:38:38,199 --> 00:38:39,960
Speaker 2: You're not going to bang into them as often.

800
00:38:39,960 --> 00:38:42,480
Speaker 3: And yeah, exactly because a lot of the constraints that

801
00:38:42,480 --> 00:38:45,400
we talked about like they wear. The reason they're there

802
00:38:45,480 --> 00:38:48,480
is that they were inspired by Sonnet four being over eager.

803
00:38:48,639 --> 00:38:51,039
Speaker 2: Right, Yeah, I know every law is written in blood, right,

804
00:38:51,119 --> 00:38:53,280
like right right, what we're seeing.

805
00:38:53,639 --> 00:38:56,440
Speaker 3: But as they become better, a lot of these constraints

806
00:38:56,440 --> 00:38:58,119
will become more lax because like you can just tell

807
00:38:58,159 --> 00:39:00,280
it like it's always dotten at nine is like cool,

808
00:39:00,320 --> 00:39:02,519
I remember it's always done at nine, I'm never touching

809
00:39:02,559 --> 00:39:03,039
anything else.

810
00:39:03,119 --> 00:39:05,760
Speaker 2: Yeah, it's just you don't bang against it as much. Yeah,

811
00:39:05,880 --> 00:39:10,119
I just think there's an interesting balancing act for you know,

812
00:39:10,159 --> 00:39:12,519
what really you're saying them is there's a case for waiting.

813
00:39:12,679 --> 00:39:14,559
Speaker 3: There's a case for waiting and experimenting.

814
00:39:14,639 --> 00:39:16,440
Speaker 2: If I wait, the tools will get better.

815
00:39:16,280 --> 00:39:18,480
Speaker 3: And experimenting and seeing what works in a wood doesn't

816
00:39:18,480 --> 00:39:21,320
then because Spekeett itself is an experiment, right, like we are.

817
00:39:21,840 --> 00:39:25,119
We got into the world with the intent of can

818
00:39:25,199 --> 00:39:28,480
you help us verify where this works and where it doesn't. Yeah,

819
00:39:28,519 --> 00:39:31,280
and like we're not making any statements of saying like, oh, yeah,

820
00:39:31,320 --> 00:39:34,320
this is going to absolutely destroy the software engineering career

821
00:39:34,360 --> 00:39:35,760
track is the yeah I got to write the code

822
00:39:35,760 --> 00:39:38,440
for It's like, no, like I want you to test

823
00:39:38,480 --> 00:39:41,719
this and tell me. Yeah, I've tried adding a feature

824
00:39:41,760 --> 00:39:44,360
to my enterprise app and it just completely went off

825
00:39:44,360 --> 00:39:45,920
the rails and it was completely useless.

826
00:39:46,039 --> 00:39:47,559
Speaker 2: Like that to me is like super helpful. You back,

827
00:39:47,599 --> 00:39:49,760
I'd love to know that. No. And I saw this

828
00:39:49,840 --> 00:39:54,719
in the early GitHub copilot days where people's behavior changed

829
00:39:54,800 --> 00:39:59,760
in the repository, where there was far more reverts yep. Yeah,

830
00:40:00,119 --> 00:40:01,760
like they would use the tool to generate some core,

831
00:40:01,920 --> 00:40:05,119
they push it up, it would blow up, they would revert. Yeah,

832
00:40:05,360 --> 00:40:07,320
And so you know, we I could definitely tell you

833
00:40:07,320 --> 00:40:09,360
were using the tool because you were using the toolimate

834
00:40:09,400 --> 00:40:11,639
the code and then you weren't really editing much, or

835
00:40:11,760 --> 00:40:13,159
you weren't doing a whole lot. You were just trying.

836
00:40:13,199 --> 00:40:15,679
You were stuffing into the test suite. See what happened,

837
00:40:15,719 --> 00:40:18,159
and what happened was bl you know what, I'm going.

838
00:40:18,079 --> 00:40:21,159
Speaker 1: To close this issue and open it again.

839
00:40:22,280 --> 00:40:24,480
Speaker 2: Yeah, you know we we can just make that branch

840
00:40:24,559 --> 00:40:26,559
go away again.

841
00:40:27,880 --> 00:40:29,760
Speaker 1: And everybody else how we screwed this up.

842
00:40:30,239 --> 00:40:32,239
Speaker 3: This was a forcing function for me to actually get

843
00:40:32,320 --> 00:40:36,559
much closer to get interesting, because once I started going

844
00:40:36,559 --> 00:40:38,599
through like the spectrum processes like okay, let me go

845
00:40:39,119 --> 00:40:40,840
create the spec, let me create the plan, let me

846
00:40:40,840 --> 00:40:43,920
break it down and task. Okay, this looks reasonable. Let

847
00:40:43,960 --> 00:40:46,400
me check the SIN. Okay, so now I have the check.

848
00:40:46,480 --> 00:40:48,880
Now let's start generating the code. It's like, okay, I

849
00:40:49,039 --> 00:40:51,199
don't even push. The code I just generated was like, okay,

850
00:40:51,239 --> 00:40:54,800
this component, Okay, now it looks right. Checkpoint check the SIN.

851
00:40:55,400 --> 00:40:58,239
Now continue generating. Oh now it's screwed up. Just blow

852
00:40:58,239 --> 00:40:59,719
it all away. Let's do it again.

853
00:41:00,199 --> 00:41:03,199
Speaker 2: The code that worked in the previous build does work

854
00:41:03,280 --> 00:41:06,159
this next build. Yeah, exactly.

855
00:41:06,239 --> 00:41:10,360
Speaker 3: But the geit process is super helpful in this context

856
00:41:10,400 --> 00:41:13,039
because it allows me to checkpoint things, and it's like,

857
00:41:13,719 --> 00:41:16,119
all of a sudden, get went from this like, oh yeah,

858
00:41:16,119 --> 00:41:18,519
I just use this toss things into gethub into an

859
00:41:18,559 --> 00:41:21,159
actual like oh, I can checkpoint things, and I can

860
00:41:21,199 --> 00:41:25,079
create multiple branches and multiple implementations across different branches and

861
00:41:25,159 --> 00:41:28,079
then test them separately. Oh I'm curious, what if this

862
00:41:28,199 --> 00:41:30,920
button would instead be this kind of component. Let me

863
00:41:30,920 --> 00:41:33,400
create a new branch and do this and test this right, So,

864
00:41:33,440 --> 00:41:37,440
like you, you go through the process of using get

865
00:41:37,519 --> 00:41:37,800
as an.

866
00:41:37,760 --> 00:41:40,840
Speaker 2: Actual helper here, Yeah, no kidding, surprised. Can I go

867
00:41:40,920 --> 00:41:43,360
to the checkpoint code and point the LM at dot

868
00:41:43,440 --> 00:41:46,840
and said, this code works? Why is this changed? Or

869
00:41:47,039 --> 00:41:48,920
you're going to make changes? Make sure it passes the

870
00:41:48,920 --> 00:41:54,719
same test, so you can use your validation skills against

871
00:41:54,760 --> 00:41:57,920
the various pieces of code with these checkpoints and force

872
00:41:58,039 --> 00:42:00,840
the tool down about right, let.

873
00:42:00,760 --> 00:42:02,920
Speaker 1: Me change GET testing tests?

874
00:42:03,079 --> 00:42:04,400
Speaker 2: Do I just change the tests?

875
00:42:06,000 --> 00:42:08,599
Speaker 3: This is like see the lesson for future software engineers

876
00:42:08,599 --> 00:42:10,239
listening to this learn GET.

877
00:42:10,880 --> 00:42:13,480
Speaker 2: Yeah, that's like that's gonna be your your your savior.

878
00:42:13,719 --> 00:42:13,960
Speaker 1: GET.

879
00:42:14,039 --> 00:42:15,760
Speaker 2: This is a tool that will help you. Yeah, but

880
00:42:16,000 --> 00:42:18,360
you know and now you're you're helping me shape my

881
00:42:18,440 --> 00:42:21,800
mind on the how different our work looks like and

882
00:42:21,880 --> 00:42:23,639
the tools that are actually going to help us to

883
00:42:24,079 --> 00:42:27,000
get there. And again with always designed to am I

884
00:42:27,079 --> 00:42:30,679
better off? Is as better results? I've definitely talked to

885
00:42:30,719 --> 00:42:33,039
folks here, So I'm being successful as a tool, but

886
00:42:33,079 --> 00:42:36,239
I'm not having as much fun, right, Yeah, yeah, I can.

887
00:42:36,360 --> 00:42:38,599
Speaker 3: I can see this and I think there's a something

888
00:42:38,599 --> 00:42:41,400
to be said about the fact that coding and self

889
00:42:41,519 --> 00:42:44,159
engineering in and of itself is a creative process, right,

890
00:42:44,719 --> 00:42:46,960
Like you're you're sitting down, like, let me think through

891
00:42:47,000 --> 00:42:49,199
this problem, let me figure out how to this. But

892
00:42:49,239 --> 00:42:51,800
also there's no denying that there's like, at least for me,

893
00:42:51,880 --> 00:42:53,400
I know for a fact, that there's a lot of

894
00:42:53,800 --> 00:42:56,480
tedious tasks like oh my goodness, like I just do

895
00:42:56,559 --> 00:42:59,639
not want to deal with this, like writing us like okay,

896
00:42:59,679 --> 00:43:01,159
you need to write one hundred unit test for all

897
00:43:01,199 --> 00:43:04,159
these components, Like oh, like, can I can just somebody

898
00:43:04,159 --> 00:43:05,960
write these for me so I can actually focus on

899
00:43:06,000 --> 00:43:06,679
the components.

900
00:43:07,079 --> 00:43:09,559
Speaker 2: One hundred percent coverage is so much more approachable when

901
00:43:09,559 --> 00:43:12,920
you got a tool generating the test solely. Man, Yeah,

902
00:43:13,000 --> 00:43:16,440
what'd you call me? So?

903
00:43:17,199 --> 00:43:21,599
Speaker 1: Yeah, it's almost like you know these people who get

904
00:43:21,599 --> 00:43:24,639
their dopamine rush from just a clean compile, right, you know,

905
00:43:25,320 --> 00:43:27,320
you know, I just want to write this feature compiles.

906
00:43:27,320 --> 00:43:29,360
All right, it's good, but I get my dopamine rush

907
00:43:29,440 --> 00:43:32,280
on those weekly meetings where I show the boss what

908
00:43:32,320 --> 00:43:35,519
I've done and it works and everything's good. Yes, that's

909
00:43:35,800 --> 00:43:38,960
I'm holding off for the for my endorphins. To kick

910
00:43:39,000 --> 00:43:41,719
in at that moment. It's delayed gratification.

911
00:43:41,800 --> 00:43:42,679
Speaker 2: I think that's that's there.

912
00:43:42,800 --> 00:43:45,840
Speaker 3: There's value in that in the sense that we often

913
00:43:45,880 --> 00:43:51,280
can forget what this is in service of, right, Like

914
00:43:51,599 --> 00:43:54,280
you're like looking at me, like the stuff that the

915
00:43:54,320 --> 00:43:55,639
code that I write is in service I.

916
00:43:55,599 --> 00:43:58,360
Speaker 2: Want to solve a specific customer problem. Yeah, this is

917
00:43:58,400 --> 00:44:00,960
our whole VB conversation at the of it. Yeah, no,

918
00:44:01,039 --> 00:44:03,840
it wasn't as cool as C plus plus, but boy

919
00:44:03,880 --> 00:44:07,360
is sure did bring solutions to customers faster. Exactly if

920
00:44:07,400 --> 00:44:10,880
this can bring solutions to customers faster, Okay, and how

921
00:44:10,880 --> 00:44:12,840
many of your customers did care that, Like, oh you

922
00:44:12,840 --> 00:44:16,519
didn't write this in C plus plus ooh, well, as

923
00:44:16,519 --> 00:44:19,320
long as it doesn't look like AI slop, right, this

924
00:44:19,360 --> 00:44:22,760
is come down to it. If it's triggering people the

925
00:44:22,840 --> 00:44:25,800
way that AI slop triggers people, then you're not succeeding.

926
00:44:26,199 --> 00:44:27,639
Just say no to AI slope.

927
00:44:27,800 --> 00:44:28,079
Speaker 1: There you go.

928
00:44:28,639 --> 00:44:31,480
Speaker 2: Yeah, demand quality from these tools. But I'm also you

929
00:44:31,480 --> 00:44:32,920
said this a while ago, and I should have grabbed

930
00:44:32,960 --> 00:44:35,519
onto this earlier down if this thing gets me eighty

931
00:44:35,519 --> 00:44:37,960
percent of the way by dealing with all the scot

932
00:44:38,000 --> 00:44:39,880
work so that I now have to just work on

933
00:44:39,920 --> 00:44:43,159
the twenty, which is arguably the coolest code and the

934
00:44:43,199 --> 00:44:45,679
most important in the project. You did me a favor,

935
00:44:45,760 --> 00:44:47,760
There's no two ways about that. Yeah. You know, if

936
00:44:47,760 --> 00:44:50,840
we could just Prato's law this and get that eighty

937
00:44:50,880 --> 00:44:53,000
out so that we can work on the hard stuff,

938
00:44:53,000 --> 00:44:54,960
we've definitely saved time provided value.

939
00:44:55,039 --> 00:44:57,400
Speaker 3: I think that's the goal. Hard stuff is more fun anyway, Yeah,

940
00:44:57,400 --> 00:44:58,039
that's the more fun.

941
00:44:58,239 --> 00:45:01,400
Speaker 2: Yeah. Yeah, well it's plus you're going to fight with

942
00:45:01,519 --> 00:45:04,760
the spec and the tokens to get those last few

943
00:45:04,800 --> 00:45:08,039
points so hard it's probably not worth it. Like there's

944
00:45:08,079 --> 00:45:10,679
going to be a point of diminishing returns on this, yeah,

945
00:45:11,000 --> 00:45:12,719
at some point. And I'll say, like, it's also the

946
00:45:15,079 --> 00:45:18,000
mental shift of you thinking ahead of these problems and

947
00:45:18,159 --> 00:45:22,159
having an actual artifact and being more crisp with your

948
00:45:22,199 --> 00:45:25,119
thoughts and more crisp with how the rubber dying effect

949
00:45:25,119 --> 00:45:25,679
here is huge.

950
00:45:25,760 --> 00:45:28,840
Speaker 3: Yes, exactly is going to help you down the line

951
00:45:28,880 --> 00:45:31,320
to just create better stuffware, just but just by proxy

952
00:45:31,880 --> 00:45:34,960
of you being able to think about it more and

953
00:45:35,079 --> 00:45:37,199
understand how does this actually work?

954
00:45:37,400 --> 00:45:38,800
Speaker 2: Why is it the way that it is?

955
00:45:39,519 --> 00:45:41,000
Speaker 3: What are the things that I should be thinking of

956
00:45:41,039 --> 00:45:43,480
that I'm not thinking about You know, we saw this

957
00:45:43,519 --> 00:45:47,280
happen in offshoring when when it got easier to offshore

958
00:45:47,400 --> 00:45:50,440
to low cost markets and you didn't get good results,

959
00:45:50,440 --> 00:45:52,559
and you learned to write better and better specifications and

960
00:45:52,559 --> 00:45:55,960
better and better project plans so that you were successful

961
00:45:56,000 --> 00:45:57,119
with the offshore developers.

962
00:45:57,119 --> 00:45:58,880
Speaker 2: It turned out if you took those things on shore,

963
00:45:58,960 --> 00:46:02,079
you got more success to Yeah, shocker, right, Like.

964
00:46:05,639 --> 00:46:08,719
Speaker 3: If you're better and specifying your requirements, you get better outputs.

965
00:46:08,840 --> 00:46:12,400
Speaker 2: Wow, there is a reality check to this whole thing.

966
00:46:12,440 --> 00:46:16,880
But I really appreciate the idea of don't try. You're

967
00:46:16,880 --> 00:46:18,719
getting one hundred pcent is probably not worth it that

968
00:46:18,960 --> 00:46:21,199
getting And once you get into the eighties, you've had

969
00:46:21,199 --> 00:46:23,119
a win and now you can go do the rest.

970
00:46:23,400 --> 00:46:25,400
Here's the other thing, you know, because my instinct, I'm

971
00:46:25,440 --> 00:46:28,559
going back to code generation responses in the language you've used. Now,

972
00:46:28,559 --> 00:46:30,280
I feel like I'm dealing with the code generator, which

973
00:46:30,360 --> 00:46:33,280
clearly I am. As soon as I touch that code,

974
00:46:33,280 --> 00:46:35,519
I can't touch the code generator again. But that's not

975
00:46:35,639 --> 00:46:39,960
true than l L. No, You're you're collaborating again. You

976
00:46:40,159 --> 00:46:43,199
have an intern in your hands. M hmm. You're working

977
00:46:43,199 --> 00:46:45,760
together to write the code. Yeah, I'm you're going to

978
00:46:45,800 --> 00:46:48,639
resist the anthropomorphic terms there dem like I have a

979
00:46:48,639 --> 00:46:50,840
piece of software that's fair, that's fair.

980
00:46:50,920 --> 00:46:52,760
Speaker 1: Yeah, but it sooner or later you're going to have

981
00:46:52,840 --> 00:46:56,360
to agree that the world wants to anthropomorphize these things.

982
00:46:56,400 --> 00:47:00,559
Speaker 2: And I know the world wants it. It's just wrong.

983
00:47:01,000 --> 00:47:02,639
It's absolutely fair.

984
00:47:02,679 --> 00:47:04,960
Speaker 3: Actually, Like I I can get totally behind that idea,

985
00:47:05,000 --> 00:47:07,880
like we should not entermorphize the AI because like, it's

986
00:47:07,960 --> 00:47:09,599
just an algorithm, it's a computer background.

987
00:47:09,599 --> 00:47:12,480
Speaker 1: But it makes it easier for us to understand it

988
00:47:12,639 --> 00:47:15,800
when we put it in human terms, right if when

989
00:47:15,840 --> 00:47:16,280
we I.

990
00:47:16,199 --> 00:47:19,039
Speaker 2: Think it makes it easier if a story execuse it inappropriately.

991
00:47:19,440 --> 00:47:21,880
Speaker 3: Yes, yes, that I think it's like it gives it

992
00:47:21,920 --> 00:47:23,519
gives us the way of saying like, oh, it's like

993
00:47:23,599 --> 00:47:25,480
it's just it's just like a humans, Like, no, it's

994
00:47:25,480 --> 00:47:26,000
not like a human.

995
00:47:26,079 --> 00:47:27,079
Speaker 2: It's not at all like a human.

996
00:47:27,159 --> 00:47:30,000
Speaker 1: Right, But if I was going to say what was

997
00:47:30,039 --> 00:47:34,440
it thinking rather than well, what algorithmic sequences brought.

998
00:47:34,199 --> 00:47:36,960
Speaker 2: It to the result that it did? Now true?

999
00:47:37,159 --> 00:47:40,880
Speaker 1: Which would you rather let me ask you? Right, No, it's.

1000
00:47:40,719 --> 00:47:41,679
Speaker 2: True, it's true.

1001
00:47:41,679 --> 00:47:43,920
Speaker 3: I think there's there's a kind of shades of grade

1002
00:47:43,960 --> 00:47:47,719
of this it's like where it lands. But I generally

1003
00:47:47,880 --> 00:47:50,239
feel like, yeah, may're they're they're not humans.

1004
00:47:50,639 --> 00:47:53,480
Speaker 1: So they're not they're not. We do have to remember that,

1005
00:47:53,760 --> 00:47:57,440
and so they don't have responsibility. They don't you.

1006
00:47:57,360 --> 00:48:00,760
Speaker 3: Know, they're not accountable right right, or like if it

1007
00:48:00,800 --> 00:48:03,400
produces your like right, like we as software engineers, we

1008
00:48:03,400 --> 00:48:06,039
all know things like the the RAQ twenty five, right,

1009
00:48:06,039 --> 00:48:09,559
like the incident about the X ray machine. Remind us,

1010
00:48:10,199 --> 00:48:12,719
So there's an incident about with an X ray machine

1011
00:48:12,800 --> 00:48:15,920
where because of a software bug and no hardware interlock,

1012
00:48:16,519 --> 00:48:21,960
it would actually, uh for cancer patients would have basically

1013
00:48:22,039 --> 00:48:25,880
like deadly doses of radiation in under very certain conditions.

1014
00:48:25,920 --> 00:48:28,280
I think this happened like in the eighties. It's litical.

1015
00:48:28,360 --> 00:48:31,159
I think it's like the RAC twenty five. And so

1016
00:48:31,480 --> 00:48:33,679
the idea there is like, right, like, if if you

1017
00:48:33,760 --> 00:48:38,280
have an LM right software that does something dangerous like this,

1018
00:48:39,440 --> 00:48:40,559
who's accountable for that?

1019
00:48:40,760 --> 00:48:43,519
Speaker 2: Yeah? Right right? It's not the AI, like you can't

1020
00:48:43,599 --> 00:48:45,800
it isn't. It isn't the equipment yea, yeah.

1021
00:48:45,760 --> 00:48:48,880
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
It's the software developer, just like with any other scenario right,

1023
00:48:51,559 --> 00:48:53,679
So to me, it's like, I think it's AI. Is

1024
00:48:53,719 --> 00:48:58,440
that it's it's INTELLISENTI and steroids. Was that Is that

1025
00:48:58,480 --> 00:49:01,039
a good frame to put it here? Like, yeah, that's

1026
00:49:01,079 --> 00:49:01,599
that's good.

1027
00:49:01,760 --> 00:49:04,320
Speaker 1: I mean, because we don't answer promorphize and tell a sense,

1028
00:49:04,360 --> 00:49:04,599
do we?

1029
00:49:04,719 --> 00:49:06,840
Speaker 2: You try not to? Well, well, you could, says I

1030
00:49:06,880 --> 00:49:10,639
mean the number of times I'm cursing a visual studio.

1031
00:49:10,920 --> 00:49:14,039
What is it thinking?

1032
00:49:14,360 --> 00:49:18,599
Speaker 1: What were you thinking? Right?

1033
00:49:18,639 --> 00:49:21,519
Speaker 3: But yeah, so I think it's like long story, longer

1034
00:49:21,559 --> 00:49:23,519
to what we talked about. I think that's a definitely

1035
00:49:23,519 --> 00:49:25,639
a mental shift. It's definitely one of those things where

1036
00:49:26,039 --> 00:49:32,239
you you have to treat it essentially as an assistant

1037
00:49:32,320 --> 00:49:37,000
program that allows you to write code faster, but it's

1038
00:49:37,000 --> 00:49:39,360
still up to you to make sure that you you

1039
00:49:39,559 --> 00:49:42,280
review this and you have input, and you can look

1040
00:49:42,320 --> 00:49:45,559
and say this is garbage, that's not what I asked,

1041
00:49:46,039 --> 00:49:47,960
or this test just returns true.

1042
00:49:48,000 --> 00:49:49,159
Speaker 2: That's not how you pass a.

1043
00:49:49,119 --> 00:49:52,039
Speaker 3: Test like this are supposed to work, right, So you

1044
00:49:52,199 --> 00:49:54,760
your expertise is still valuable. And I think that that's

1045
00:49:54,760 --> 00:49:56,960
what also gets lost in the conversation because folks get

1046
00:49:57,000 --> 00:49:57,519
so excited.

1047
00:49:57,639 --> 00:49:59,360
Speaker 2: I'm just I'm trying to de sex you this not

1048
00:49:59,440 --> 00:50:01,119
out of this down this idea that I have a

1049
00:50:01,159 --> 00:50:04,840
re entrant code generator. Yeah, that makes me very happy

1050
00:50:04,880 --> 00:50:06,480
because that's something we haven't able to do before. It

1051
00:50:06,559 --> 00:50:08,760
used to be when you use code generators. Once you

1052
00:50:08,800 --> 00:50:11,239
touch that one way, I never run the generator again. Yeah. Now,

1053
00:50:11,320 --> 00:50:13,920
the idea that I could stick this code generator back

1054
00:50:13,920 --> 00:50:16,119
at the code that i've also that it contributed to

1055
00:50:16,199 --> 00:50:19,719
and I modified and do another iteration, that's a big deal.

1056
00:50:19,800 --> 00:50:21,280
Like this is it's pretty cool.

1057
00:50:21,800 --> 00:50:24,280
Speaker 3: Yeah, yeah, exactly because I can come in for a

1058
00:50:24,320 --> 00:50:29,079
specific component and say, okay, this chunk here doesn't quite

1059
00:50:29,159 --> 00:50:31,519
look right. And what I will seen people do, and

1060
00:50:31,559 --> 00:50:33,760
I think this is a super valuable thing, is once

1061
00:50:33,800 --> 00:50:36,960
you started going through the motions of okay, I saw

1062
00:50:37,000 --> 00:50:39,000
where it failed. I saw that it did not create

1063
00:50:39,000 --> 00:50:41,559
this component the way that I wanted. Based on the

1064
00:50:41,559 --> 00:50:44,000
conversation that you had in code that back into the

1065
00:50:44,000 --> 00:50:46,840
spec right and say okay, now that we know this,

1066
00:50:46,920 --> 00:50:48,800
can you put them back in the spectrum technical plan?

1067
00:50:48,920 --> 00:50:51,320
So that way, again, if I come in down the

1068
00:50:51,320 --> 00:50:52,880
line and say, hey, we're going to take on a

1069
00:50:53,079 --> 00:50:57,079
rewrite of the system, can I recreate the behavior that

1070
00:50:57,159 --> 00:50:59,079
I had based on the learnings that I had and

1071
00:50:59,079 --> 00:51:01,760
the iteration that I had in this new format. And

1072
00:51:01,800 --> 00:51:03,280
this is where the speck comes in, because then you

1073
00:51:03,320 --> 00:51:05,400
can say, oh, yeah, totally, I've encoded.

1074
00:51:05,039 --> 00:51:07,440
Speaker 2: All the larynx. This is also things that we hated

1075
00:51:07,519 --> 00:51:10,400
doing as developers. Right, It's like, Yo, the spec is wrong,

1076
00:51:10,440 --> 00:51:12,159
but nobody's actually gonna go fix the spec.

1077
00:51:12,199 --> 00:51:15,519
Speaker 3: But now oh no, zero people. Now you have a

1078
00:51:15,559 --> 00:51:18,760
tool that you can demand it fix the spec. Yeah, exactly,

1079
00:51:18,800 --> 00:51:20,639
Just do yourself a favor and make sure you check

1080
00:51:20,679 --> 00:51:22,880
it in again. I really appreciate your thinking it will

1081
00:51:22,920 --> 00:51:24,599
save you because it'll mangle your spec.

1082
00:51:24,679 --> 00:51:26,480
Speaker 2: Mm hmmmmmmm hmm. Yeah.

1083
00:51:26,639 --> 00:51:28,320
Speaker 3: I mean, and you're absolutely right in the sense like

1084
00:51:28,559 --> 00:51:30,639
when I remember, like when I started my career as

1085
00:51:30,679 --> 00:51:34,400
a product manager at Microsoft, you'd write a spec, you'd

1086
00:51:34,480 --> 00:51:37,360
review it on a bunch of meetings, and then once

1087
00:51:37,400 --> 00:51:40,519
a dev the moment the code on the starboard.

1088
00:51:40,480 --> 00:51:41,760
Speaker 2: Nobody ever touches that over.

1089
00:51:42,360 --> 00:51:44,840
Speaker 3: It's like and then even if you realize like, oh yeah,

1090
00:51:44,880 --> 00:51:47,559
we forgot about like mentioning this, Hey dev, can you

1091
00:51:47,599 --> 00:51:49,679
go fix this thing? Because we had this idea and

1092
00:51:49,679 --> 00:51:51,360
they're like, oh sure, yeah, let's go change it. Like

1093
00:51:51,519 --> 00:51:54,159
nobody goes to the doc and then six months later

1094
00:51:54,199 --> 00:51:55,920
when you look at the doc and be like, product

1095
00:51:55,960 --> 00:51:56,840
doesn't work this way.

1096
00:51:57,079 --> 00:52:00,320
Speaker 2: Well, this is how no new people can into the

1097
00:52:00,320 --> 00:52:01,760
project as they start with the document.

1098
00:52:01,800 --> 00:52:04,880
Speaker 3: It's wrong exactly, and you and all those documents are

1099
00:52:04,920 --> 00:52:06,280
wrong and they're all all out of date.

1100
00:52:06,360 --> 00:52:08,320
Speaker 2: We're trying to avoid that. All right, let's get weirder.

1101
00:52:08,400 --> 00:52:10,880
Let's start taking after we finished making the code. Then

1102
00:52:10,920 --> 00:52:13,639
you demand another tool generate a specification from the code

1103
00:52:13,639 --> 00:52:15,559
you can see and compare against it.

1104
00:52:16,079 --> 00:52:18,719
Speaker 3: That's actually a thing, you know, and you know what.

1105
00:52:18,960 --> 00:52:21,000
Where this is super helpful what we refer to as

1106
00:52:21,039 --> 00:52:25,000
brownfield projects because where a lot of the spectrum of

1107
00:52:25,039 --> 00:52:27,880
development stuff kind of falls over a lot of scenarios.

1108
00:52:27,920 --> 00:52:30,800
Is all this is optimized for net new Like I'm

1109
00:52:30,840 --> 00:52:33,280
starting from zero to one, I have nothing, Go get

1110
00:52:33,320 --> 00:52:36,159
me something. But what if I already have a code

1111
00:52:36,159 --> 00:52:39,079
base that is which, let's face it, mostly we do

1112
00:52:39,239 --> 00:52:42,440
tens of thousands of Yeah, there's like can you do this?

1113
00:52:42,599 --> 00:52:44,880
And this is where that reverse process is super helpful.

1114
00:52:44,960 --> 00:52:46,920
Like I want you to write me a spec based

1115
00:52:46,960 --> 00:52:50,480
on how my authorization library is working, and it's like, okay,

1116
00:52:50,519 --> 00:52:52,000
let me go and look at the library that create this,

1117
00:52:52,039 --> 00:52:53,960
and they're like, Okay, now that we have this context,

1118
00:52:54,400 --> 00:52:57,320
can we now add a feature that changes how my

1119
00:52:57,440 --> 00:53:00,000
oft flow works context it's all about content.

1120
00:53:00,280 --> 00:53:02,199
Speaker 2: Sure, No, this is a whole there's a whole other

1121
00:53:02,280 --> 00:53:05,559
show here about Brownfield with lllms mm hmm. Just see

1122
00:53:05,639 --> 00:53:08,719
I you know, because it's a great problem space. Right.

1123
00:53:08,800 --> 00:53:10,880
Let's say so we have a ton of applications inside

1124
00:53:10,880 --> 00:53:13,960
of organizations where the original dev team's long gone. Oddly enough,

1125
00:53:14,159 --> 00:53:19,079
the spec is incorrect, but we need new features. Yeah,

1126
00:53:19,119 --> 00:53:21,159
and you have a new team that's trying to take

1127
00:53:21,159 --> 00:53:22,719
that code on. So the idea that you could point

1128
00:53:22,719 --> 00:53:26,639
in ll at it first to generate a correct specification

1129
00:53:26,880 --> 00:53:29,760
in theory, like, you need to validate that. So I

1130
00:53:29,880 --> 00:53:31,880
probably want to iterate on that a few times and

1131
00:53:31,920 --> 00:53:34,880
then start to build a plan around how you would

1132
00:53:34,880 --> 00:53:35,840
make the change you want.

1133
00:53:35,920 --> 00:53:39,880
Speaker 1: Well, you could certainly build real documentation of your product

1134
00:53:40,239 --> 00:53:44,199
by just sicken clawed copilot agent or whatever on it

1135
00:53:44,559 --> 00:53:47,800
and it'll do that. I've done it with Jeff Fritz

1136
00:53:47,880 --> 00:53:51,280
encoded with AI episode one and it created a pretty

1137
00:53:51,280 --> 00:53:54,679
good user manual. So I know that's not a spec

1138
00:53:54,719 --> 00:53:57,960
that's not an internal spec but it certainly is of

1139
00:53:58,000 --> 00:54:00,719
that same idea that you take something that it already

1140
00:54:00,800 --> 00:54:03,679
exists and then generate some documentation around it.

1141
00:54:04,400 --> 00:54:06,840
Speaker 3: Have you guys heard of this project called deep wiki

1142
00:54:07,079 --> 00:54:11,400
deep wiki, deep wiki, deep wiki that sounds familiar to me.

1143
00:54:11,599 --> 00:54:13,159
Speaker 1: So has it been around a long time?

1144
00:54:13,559 --> 00:54:16,280
Speaker 3: No, it hasn't, but it's from the I believe it's

1145
00:54:16,280 --> 00:54:18,480
some of the same people that wrote Devin, like the

1146
00:54:18,519 --> 00:54:22,199
Coding Agent. So deep wiki is this place where you

1147
00:54:22,199 --> 00:54:26,320
can actually come in. It's a documentation generator. Basically, it's

1148
00:54:26,320 --> 00:54:28,840
an AI based documentation generator. You can come in and

1149
00:54:28,880 --> 00:54:32,159
you can look at different repositories that already been documented

1150
00:54:32,679 --> 00:54:34,440
or maybe even add your own, but you can just

1151
00:54:34,480 --> 00:54:37,079
plug in the URL and then it's going to generate

1152
00:54:37,119 --> 00:54:40,400
the docs. And to me, the fascinating part about this

1153
00:54:40,519 --> 00:54:44,079
is just how freaking good it is at looking at

1154
00:54:44,079 --> 00:54:47,199
the code base and like, oh vs code. Sure, let

1155
00:54:47,199 --> 00:54:50,119
me look at the architecture and here's a renderer process,

1156
00:54:50,159 --> 00:54:52,239
here's the main process, here's the extension host process. How

1157
00:54:52,239 --> 00:54:54,239
they interact with each other's like none of this stuff

1158
00:54:54,280 --> 00:54:58,239
is actually like encoded in some like there's a viscode

1159
00:54:58,280 --> 00:55:00,360
architecture doc but like it infers it for the code,

1160
00:55:00,360 --> 00:55:01,960
it points you to the lines of code, it generates

1161
00:55:02,000 --> 00:55:05,920
mermaid charts, like it's a fascinating project. It's a deepwiki

1162
00:55:05,960 --> 00:55:06,599
dot com.

1163
00:55:06,840 --> 00:55:10,519
Speaker 1: Does it use playwright to get screen captures of the

1164
00:55:10,559 --> 00:55:11,639
application running?

1165
00:55:12,239 --> 00:55:16,960
Speaker 3: You can plug it in with any MCP servers, including Playwright.

1166
00:55:17,280 --> 00:55:21,480
Speaker 1: So that's what we did with with Visual Studio code

1167
00:55:21,519 --> 00:55:23,960
and the agent. We told it to use the Playwright

1168
00:55:24,079 --> 00:55:26,760
MCP to run the app and actually take screenshots and

1169
00:55:26,800 --> 00:55:29,440
put it in the documentation, which is very, very helpful.

1170
00:55:29,800 --> 00:55:30,039
Speaker 2: Yeah.

1171
00:55:30,599 --> 00:55:33,639
Speaker 3: Yeah, Playwright MCP is one of my favorite tools hands down.

1172
00:55:33,719 --> 00:55:33,880
Speaker 2: Yeah.

1173
00:55:33,880 --> 00:55:37,079
Speaker 3: That's unbelievable, is just how good it is about both testing,

1174
00:55:37,199 --> 00:55:42,079
providing screenshots and actually one of the validation steps that

1175
00:55:42,079 --> 00:55:44,199
I've experimented for spect driven by the way it's like

1176
00:55:44,199 --> 00:55:47,039
when it creates the UI, it uses player MCP to

1177
00:55:47,079 --> 00:55:49,840
go and say, are there any components that overlap with

1178
00:55:49,920 --> 00:55:53,000
each other or the UI is funky? And then if not,

1179
00:55:53,280 --> 00:55:54,159
go and fix it.

1180
00:55:54,239 --> 00:55:54,880
Speaker 1: That's so cool.

1181
00:55:55,000 --> 00:55:55,199
Speaker 2: Wow.

1182
00:55:55,320 --> 00:55:58,000
Speaker 3: Right, So you're wiring these things together and we're back

1183
00:55:58,000 --> 00:55:59,639
to the whole idea of like what's the role to

1184
00:55:59,679 --> 00:56:02,639
develop in this? And this is like you are now

1185
00:56:02,679 --> 00:56:07,679
the orchestrator of this fleet of software agents that do

1186
00:56:07,840 --> 00:56:10,239
things for you? How do you make sure that app?

1187
00:56:10,320 --> 00:56:13,159
Speaker 2: Yeah? And you see, like I think about the large

1188
00:56:13,159 --> 00:56:15,760
scale problems inside of big organizations right now. It's like

1189
00:56:15,800 --> 00:56:18,119
they got a ton of asp down web form apps

1190
00:56:18,159 --> 00:56:20,679
out there. Nobody wants to work on them anymore. Yeah,

1191
00:56:20,719 --> 00:56:23,079
of course they Everybody wants a mobile client for a

1192
00:56:23,119 --> 00:56:27,320
bunch of them, which is almost impossible, and rewriting them

1193
00:56:27,360 --> 00:56:29,559
takes time and money. Yeah, And so the idea that

1194
00:56:29,599 --> 00:56:33,199
I could fire up these llms use stuff like playwright

1195
00:56:33,280 --> 00:56:35,960
to screenshot the whole app and then fire it through

1196
00:56:36,000 --> 00:56:38,360
a generator to make it other version of the app.

1197
00:56:38,400 --> 00:56:41,599
Now me, my twisted mind, what's my automatic reaction? It's like,

1198
00:56:41,639 --> 00:56:44,159
let's make photocopies of photocopies. So I'm going to take

1199
00:56:44,199 --> 00:56:45,800
this app, I'm going to generate a spec. Then I'm

1200
00:56:45,800 --> 00:56:47,639
going to generate an app from the spec. Then I'm

1201
00:56:47,639 --> 00:56:49,880
going to generate a spec from that version of the app.

1202
00:56:50,039 --> 00:56:51,760
I don't see where we get to, because I bet

1203
00:56:51,840 --> 00:56:54,960
you're going to hit a floor, yeah, of functionality at

1204
00:56:54,960 --> 00:56:59,039
some point right where, because the compiler always has a say,

1205
00:56:59,280 --> 00:57:02,239
because the app ultimately has a set of core functionality.

1206
00:57:02,320 --> 00:57:04,119
Like I wonder if you'd end up with the most

1207
00:57:04,159 --> 00:57:05,960
distilled version of an app if you did a bunch

1208
00:57:05,960 --> 00:57:08,199
of iterations like that. Probably probably right.

1209
00:57:08,239 --> 00:57:11,480
Speaker 3: But also like we know that software there's more to

1210
00:57:11,519 --> 00:57:14,400
building software than just carbon copy of things. Yes, right,

1211
00:57:14,440 --> 00:57:17,239
And this is where like I see people posting on

1212
00:57:17,679 --> 00:57:19,599
social media as like, oh, with the help of LM,

1213
00:57:19,840 --> 00:57:24,199
I recreated docuside in three days. It's like, well, sure,

1214
00:57:24,199 --> 00:57:27,119
pretty sure you didn't like yeah, but like it's you

1215
00:57:27,159 --> 00:57:29,800
got to realize that there's more docusine than like just

1216
00:57:29,880 --> 00:57:33,599
the uy of docusine, right, And that's part of it,

1217
00:57:33,639 --> 00:57:35,159
is like we're really starting to just still into what

1218
00:57:35,280 --> 00:57:37,119
are the important bits of software and what's the thing

1219
00:57:37,159 --> 00:57:39,519
that should have our primary attention.

1220
00:57:39,920 --> 00:57:45,599
Speaker 1: Didn't some guy just recently tell uh and chat gipt

1221
00:57:45,760 --> 00:57:53,119
or whatever to rebuild and recreate Kubernetes anthropic. It was anthropic,

1222
00:57:53,159 --> 00:57:56,800
He said, rebuild me Kubernetes in Rust or something like that.

1223
00:57:57,519 --> 00:58:02,280
And it's spent so many tokens that it costs anthropic

1224
00:58:02,360 --> 00:58:06,079
four hundred thousand dollars and he only paid his two

1225
00:58:06,199 --> 00:58:07,360
hundred dollars for the month.

1226
00:58:07,840 --> 00:58:12,079
Speaker 3: Yeah, but the question is did it did it recreate Kubernetes.

1227
00:58:12,239 --> 00:58:14,920
Speaker 1: Well, it spent four hundred thousand dollars worth of token.

1228
00:58:14,679 --> 00:58:18,840
Speaker 2: So it did something maybe nothing, that's in the end.

1229
00:58:18,880 --> 00:58:20,679
What did that four hundred thousand dollars do but heat

1230
00:58:20,719 --> 00:58:23,840
up a bunch of rocks? Yeah right, Yeah, the sand

1231
00:58:24,000 --> 00:58:29,840
is working hard. Yes, made the rocks warm today.

1232
00:58:31,400 --> 00:58:34,159
Speaker 3: But I was genuinely curious, Like Carl, you were so

1233
00:58:34,199 --> 00:58:36,159
excited about it, and I was like, but did it

1234
00:58:36,199 --> 00:58:39,280
actually work? It's like that that that meme about like

1235
00:58:39,320 --> 00:58:42,400
I rewrote my app in like one day, this massive

1236
00:58:42,480 --> 00:58:44,679
enterprise scale things, like none of it worked, but did

1237
00:58:44,760 --> 00:58:45,599
sure look pretty?

1238
00:58:45,760 --> 00:58:49,440
Speaker 2: Yeah? It was just another version of AI slop. But

1239
00:58:49,519 --> 00:58:51,320
you know, now you're pressing us the next issue here,

1240
00:58:51,400 --> 00:58:55,039
which is is this cost effective in the end, Like

1241
00:58:55,079 --> 00:58:58,119
when we eventually have to pay the real costs because

1242
00:58:58,480 --> 00:59:01,360
we know we're not so far. I mean we actually

1243
00:59:01,400 --> 00:59:03,079
have to pay the real cost for the compute, for

1244
00:59:03,119 --> 00:59:05,199
the tokens and so forth. Like now we're gonna have

1245
00:59:05,199 --> 00:59:06,880
another layer on running this tool where it's going to

1246
00:59:06,920 --> 00:59:09,320
now assess the token. Let's do an estimate before we

1247
00:59:09,400 --> 00:59:12,239
run this. You know, no different than I do when

1248
00:59:12,239 --> 00:59:15,760
I start provisioning apps into Azure we understand how much

1249
00:59:15,800 --> 00:59:17,760
infrastructure we need to run, and I can throw at

1250
00:59:17,760 --> 00:59:19,840
the CFO it's going to be this much a month. Yeah,

1251
00:59:20,079 --> 00:59:22,239
you know, to operate this like that. Those are the

1252
00:59:22,239 --> 00:59:23,719
trade offs are going to make, for sure, and it

1253
00:59:23,760 --> 00:59:27,239
will get more efficient to a degree that these are

1254
00:59:27,320 --> 00:59:28,960
going to be the trades, Yeah, for sure.

1255
00:59:29,039 --> 00:59:32,920
Speaker 3: And I see a world too where we can use them,

1256
00:59:32,920 --> 00:59:36,000
maybe even a combination of things of what is actually

1257
00:59:37,880 --> 00:59:40,280
net new stuff that needs to be delegated to a

1258
00:59:40,320 --> 00:59:43,280
powerful generalized model versus something that can run locally on

1259
00:59:43,360 --> 00:59:45,599
my machine. Call right, It's like, oh, this is a

1260
00:59:45,840 --> 00:59:48,880
model that's trained specifically on ASB dot net core. It

1261
00:59:49,000 --> 00:59:51,039
is excellent for ASP dot net core and nothing else.

1262
00:59:51,079 --> 00:59:53,440
Can I potentially use that to go and write me

1263
00:59:53,440 --> 00:59:54,679
the ASP dot net core code?

1264
00:59:54,719 --> 00:59:57,440
Speaker 2: Sure? Right. I also wonder about training model specific to

1265
00:59:57,480 --> 00:59:59,760
an application, Like You've got a mature piece of software

1266
01:00:00,239 --> 01:00:02,880
that's an awful lot of knowledge about what the software does,

1267
01:00:03,719 --> 01:00:05,079
and so if I can have that run in a

1268
01:00:05,079 --> 01:00:07,000
local model and just you know, let's not go out

1269
01:00:07,039 --> 01:00:08,880
of scope here, I just want to add these features

1270
01:00:08,960 --> 01:00:12,159
to it. So and yeah, the idea that these monster

1271
01:00:12,239 --> 01:00:15,679
models are the only way to do things sistantly not true, right, right?

1272
01:00:16,079 --> 01:00:18,039
Speaker 3: And John and I were actually talking about John John

1273
01:00:18,079 --> 01:00:22,480
Lamb again our good friend, about this concept of a

1274
01:00:22,559 --> 01:00:26,320
prompt compiler, and the idea here is that with a

1275
01:00:26,360 --> 01:00:28,880
lot of the contexts that we're passing to models, there's

1276
01:00:28,920 --> 01:00:32,239
this context overload. There's just too much, like Richard used

1277
01:00:32,360 --> 01:00:34,599
the concept like the buffer overflows like that, that's like

1278
01:00:34,599 --> 01:00:36,119
we're trying to prevent. And it's like, and if I'm

1279
01:00:36,199 --> 01:00:39,719
building an ASP do a net application with a specific

1280
01:00:39,960 --> 01:00:45,119
like API structure, how do I encode just the relevant

1281
01:00:45,159 --> 01:00:47,320
context from the spect it? So I don't just give

1282
01:00:47,320 --> 01:00:49,079
it like, oh, here's all the front end pieces and

1283
01:00:49,079 --> 01:00:50,800
everything else that you need to consider. But by the way,

1284
01:00:50,840 --> 01:00:53,519
just build the apia like, right, can I just select

1285
01:00:53,559 --> 01:00:55,800
the pieces that it needs for my task?

1286
01:00:56,079 --> 01:00:58,400
Speaker 2: Yeah? And maybe there is again, like a either a

1287
01:00:58,400 --> 01:01:01,039
local model or something else that pre emptively can select

1288
01:01:01,119 --> 01:01:03,800
these things and say okay, you only need this to

1289
01:01:03,920 --> 01:01:07,440
execute this task and nothing else, and that drives some

1290
01:01:07,519 --> 01:01:10,519
of the efficiency. So I think definitely we're we're right

1291
01:01:10,559 --> 01:01:12,840
now in the space where all of this is like

1292
01:01:13,239 --> 01:01:16,079
it feels like free money, right, Oh, four hundred thousand

1293
01:01:16,079 --> 01:01:20,159
dollars of Kubernetes tokens for two hundred dollars a month, Like, yeah, sure,

1294
01:01:20,400 --> 01:01:23,559
we're in the bubble of you know, the first wave

1295
01:01:23,679 --> 01:01:27,159
of this stuff right right, This bubble will end, but

1296
01:01:27,320 --> 01:01:29,320
you know, just no different than the dot com boom

1297
01:01:29,360 --> 01:01:32,000
and the end of that, you still have an Internet afterwards,

1298
01:01:32,039 --> 01:01:34,159
Like there will these tools will still exist, but we'll

1299
01:01:34,159 --> 01:01:37,639
start to rationalize it. I'm real happy to be talking

1300
01:01:37,679 --> 01:01:41,079
about the post bubble rationalizations.

1301
01:01:41,320 --> 01:01:41,639
Speaker 1: Yeah.

1302
01:01:41,679 --> 01:01:44,119
Speaker 3: Absolutely, yeah, I think this is where the whole conversation

1303
01:01:44,159 --> 01:01:48,840
about the bubble misses the point that the utility of

1304
01:01:48,880 --> 01:01:52,880
this is undeniable. Yes, Like I'm looking at the models

1305
01:01:52,880 --> 01:01:55,119
that we have today, like from Anthropic, from open Ai,

1306
01:01:55,239 --> 01:01:57,239
from like, and think about it, like if if the

1307
01:01:57,280 --> 01:01:59,960
evolution of those model stops today, like if after two

1308
01:02:00,400 --> 01:02:03,239
the refoard of the show nothing else ever gets released.

1309
01:02:03,800 --> 01:02:06,239
There is still a ton of value behind them and

1310
01:02:06,360 --> 01:02:09,079
building suffware and being able to like reduce the toil. Right,

1311
01:02:09,559 --> 01:02:12,360
nothing changes, it does not improve at all, and there's

1312
01:02:12,400 --> 01:02:13,320
still a lot of value in this.

1313
01:02:13,480 --> 01:02:13,679
Speaker 2: Now.

1314
01:02:14,000 --> 01:02:15,880
Speaker 3: Is there a lot of hype for things that are

1315
01:02:15,960 --> 01:02:18,320
like chat GBT wrappers around in the wild, like all

1316
01:02:18,360 --> 01:02:22,119
these like random startups Like absolutely, yeah, But the utility

1317
01:02:22,599 --> 01:02:25,840
for the core underlying models and the capabilities that they

1318
01:02:25,920 --> 01:02:28,480
offer for software development was like again to me, is undeniable.

1319
01:02:28,639 --> 01:02:31,440
Speaker 2: Yeah, I'm with you then, and I'm just you know,

1320
01:02:31,679 --> 01:02:35,199
we can still get better, but yeah, it's certainly worthwhile,

1321
01:02:35,320 --> 01:02:37,920
and I appreciate thing you're building, these kinds of tools

1322
01:02:37,960 --> 01:02:41,079
to help us rein in the sort of randomness and

1323
01:02:41,119 --> 01:02:45,079
start to think more coherently about what modern dev practices

1324
01:02:45,159 --> 01:02:47,320
with these cod generators are going to look like going forward.

1325
01:02:47,599 --> 01:02:50,679
Speaker 1: Absolutely well, Dan, thank you very much. It's been great

1326
01:02:50,719 --> 01:02:53,440
talking to you. Wow, blowing our minds over here.

1327
01:02:53,480 --> 01:02:55,840
Speaker 2: Thank you for having me. Yeah, my dream came true.

1328
01:02:55,840 --> 01:02:56,920
I was in dot net rocks.

1329
01:02:56,920 --> 01:02:57,360
Speaker 1: That's great.

1330
01:02:57,360 --> 01:02:59,840
Speaker 2: There you go. And and we went for a ride too, friend,

1331
01:03:00,119 --> 01:03:01,960
going to call that meaty goodness.

1332
01:03:01,840 --> 01:03:05,920
Speaker 1: Yet goodness absolutely all right, Thanks again to Den Delamarski,

1333
01:03:06,039 --> 01:03:09,519
and we'll talk to you next time, dear listener on

1334
01:03:09,719 --> 01:03:32,760
dot net rocks. Dot net Rocks is brought to you

1335
01:03:32,800 --> 01:03:36,800
by Franklin's Net and produced by Pop Studios, a full

1336
01:03:36,880 --> 01:03:41,039
service audio, video and post production facility located physically in

1337
01:03:41,119 --> 01:03:44,880
New London, Connecticut, and of course in the cloud online

1338
01:03:44,920 --> 01:03:47,320
at pwop dot com.

1339
01:03:47,519 --> 01:03:48,719
Speaker 2: Visit our website at d.

1340
01:03:48,719 --> 01:03:50,719
Speaker 1: O T N E t R O c k S

1341
01:03:50,800 --> 01:03:55,840
dot com for RSS feeds, downloads, mobile apps, comments, and

1342
01:03:55,920 --> 01:03:59,199
access to the full archives going back to show number one,

1343
01:03:59,400 --> 01:04:02,639
recorded September two thousand and two. And make sure you

1344
01:04:02,760 --> 01:04:05,840
check out our sponsors. They keep us in business. Now,

1345
01:04:05,880 --> 01:04:09,360
go write some code. See you next time. You got

1346
01:04:09,440 --> 01:04:18,599
your middle vans. This is home, then my Texes

