WEBVTT

1
00:00:01.080 --> 00:00:05.679
How'd you like to listen to dot
NetRocks with no ads? Easy? Become

2
00:00:05.679 --> 00:00:09.839
a patron for just five dollars a
month, you get access to a private

3
00:00:10.000 --> 00:00:14.439
RSS feed where all the shows have
no ads. Twenty dollars a month will

4
00:00:14.439 --> 00:00:19.039
get you that and a special dot
NetRocks patron mug. Sign up now at

5
00:00:19.039 --> 00:00:24.160
Patreon dot dot NetRocks dot com.
Hey Carl and Richard here with your twenty

6
00:00:24.199 --> 00:00:29.320
twenty four NDC schedule. We'll be
at as many NDC conferences as possible this

7
00:00:29.440 --> 00:00:34.240
year, and you should consider attending
no matter what. The Copenhagen Developers Festival

8
00:00:34.320 --> 00:00:41.560
happens August twenty sixth through the thirtieth. Tickets at Cphdevfest dot com. Ndcporto

9
00:00:41.679 --> 00:00:46.520
is happening October fourteenth through the eighteenth. The early discount ends June fourteenth.

10
00:00:46.840 --> 00:01:03.000
Tickets at Ndcporto dot com. We'll
see you there, we hope. Wow,

11
00:01:03.079 --> 00:01:07.959
you did it again. You found
the last build show at dot net

12
00:01:07.040 --> 00:01:11.000
rocks. I'm Carl Franklin and I'm
Richard Campbell, and Mark Brown's here.

13
00:01:11.000 --> 00:01:14.760
We're going to talk to him very
soon. But anything that you want to

14
00:01:15.280 --> 00:01:19.599
tell the people about our week here
at Build you know, it's fun to

15
00:01:19.719 --> 00:01:23.280
be back in person. You know, everybody's getting better at conferences by bad,

16
00:01:23.319 --> 00:01:30.280
Like we're remembering how the conference.
Yeah but yeah, I get Microsoft

17
00:01:30.280 --> 00:01:33.400
asked me to put together a podcasting
space, so we brought in a bunch

18
00:01:33.439 --> 00:01:34.840
of other podcasters as well. Yeah. Then I figured, you know,

19
00:01:34.879 --> 00:01:38.760
we could make some dnrs while we
were here. Yeah, and you know,

20
00:01:38.879 --> 00:01:41.359
great line of guests, and this
is the last of them. Yeah,

21
00:01:41.359 --> 00:01:44.120
the published wise, it's actually get
a published in order, so it's

22
00:01:44.159 --> 00:01:47.159
all the last when we're recording.
Yeah, third day, so it should

23
00:01:47.159 --> 00:01:49.079
be fun. Yeah, but I
don't have any whiskey here, which is

24
00:01:49.159 --> 00:01:53.719
usually the last show of the day, the rituals. We're on the third.

25
00:01:53.760 --> 00:01:56.159
I'm a little bruised. Well you
are, Yeah, I'm not.

26
00:01:56.359 --> 00:01:59.840
However, I've been a good boy. You're a responsible individual. I appreciate

27
00:01:59.879 --> 00:02:05.120
it. I wouldn't say that.
Let's not get crazy now, all right,

28
00:02:05.200 --> 00:02:15.400
roll the crazy music for better?
No framework? Man, what do

29
00:02:15.439 --> 00:02:17.039
you got so better? No framework? For those who don't know, this

30
00:02:17.159 --> 00:02:21.319
is it started out as I would, you know, point my finger at

31
00:02:21.319 --> 00:02:27.360
a namespace in the framework. This
you know, the any you know classes

32
00:02:27.680 --> 00:02:30.639
in dot net that we may or
may not know about that kind of thing.

33
00:02:30.639 --> 00:02:32.560
But that got old real quick,
and I started googling stuff and finding

34
00:02:32.680 --> 00:02:36.520
eventually, do run out of framework? Do you kind of got through the

35
00:02:36.560 --> 00:02:38.240
framework? Yeah, it took a
while, but you got there exactly.

36
00:02:38.919 --> 00:02:45.120
And nobody wants to hear, you
know, a lesson on the bowels of

37
00:02:45.159 --> 00:02:50.280
the common language run time. Well, anyway, so Mark Brown is here,

38
00:02:50.560 --> 00:02:53.599
and Mark you can join in because
I picked this toy for you.

39
00:02:53.159 --> 00:02:57.639
Yeah. Yeah, So who's a
toy boy now right? I know I've

40
00:02:57.639 --> 00:03:02.199
become the toy boy, right.
I know Mark is into a lot of

41
00:03:02.240 --> 00:03:09.280
things, you know, technology wise, but also electronic music, and I

42
00:03:09.360 --> 00:03:15.599
know this about you. So I
found I'm sharing a device that I have

43
00:03:15.680 --> 00:03:17.879
and I have a link for it
on sweetwater dot com, which is where

44
00:03:17.879 --> 00:03:23.639
I bought it. Did not find
it on Amazon, but they're out of

45
00:03:23.639 --> 00:03:27.080
stock. So this is going to
be fun. When you know ten people

46
00:03:27.080 --> 00:03:30.479
who listen to dot net rocks,
I'll call up and slam the back orders,

47
00:03:30.560 --> 00:03:34.599
slam the back lid. So this
is a Kenton l N d R

48
00:03:35.000 --> 00:03:38.759
MIDI line driver. It's basically two
boxes. It's a ballan. You know

49
00:03:38.800 --> 00:03:44.319
what a ballan is? A way
to use one transport for a different protocol,

50
00:03:44.439 --> 00:03:46.240
right, And there's a lot of
Cat five, Cat six ballons where

51
00:03:46.240 --> 00:03:50.120
you just string a network cable between
two things. You can do for video,

52
00:03:50.159 --> 00:03:53.000
for audio, for whatever. Well
that's what this is. So MIDI

53
00:03:53.560 --> 00:04:00.000
Musical Instrument Digital interface has a problem
that when the cables get over even close

54
00:04:00.039 --> 00:04:04.719
to twenty feet long, the latency
gets high. It's a kind of serial

55
00:04:04.719 --> 00:04:09.879
protocol. It's a very yeah,
it's a serial protocol, old school,

56
00:04:10.520 --> 00:04:14.560
and so this solves the problem.
It's always been a problem for me because

57
00:04:14.599 --> 00:04:18.240
in my studio, the piano is
typically on the other side of the room

58
00:04:18.360 --> 00:04:24.120
from the workstation where I'm recording,
because I want isolation and everything, and

59
00:04:24.959 --> 00:04:29.399
I've always had a problem with this, and so I've tried Bluetooth adapters and

60
00:04:29.439 --> 00:04:32.560
they're two Like, the latency is
too much. This is the only thing

61
00:04:32.600 --> 00:04:36.639
that works. So I've basically hardwired
this into my studio, one side on

62
00:04:36.680 --> 00:04:41.040
the piano and the other side of
my workstation. I'm taking a switch between

63
00:04:41.040 --> 00:04:45.399
either. It's litter just because Ethernet
lends at a higher frequency. Yep,

64
00:04:45.519 --> 00:04:47.399
you could haliday a heckup a lot
faster, that's right, okay, and

65
00:04:47.480 --> 00:04:50.959
maybe you did put a switch and
you'd be fine. You're still talking milliseconds,

66
00:04:51.079 --> 00:04:56.839
yeah, exactly. So the piano
that I have is the Yamaha Baby

67
00:04:56.839 --> 00:05:00.120
gran that has made built into it, and there's a Selenite under every key,

68
00:05:00.240 --> 00:05:03.560
so if you plug a MIDI keyboard
into it and play, the keys

69
00:05:03.600 --> 00:05:08.680
go up and down right. And
it's also a great MIDI controller. So

70
00:05:08.839 --> 00:05:13.639
I just have it now hardwired in
so at any time somebody wants to play

71
00:05:13.680 --> 00:05:17.560
the piano and record it. Let's
say there's a drummer playing right and the

72
00:05:17.600 --> 00:05:21.680
piano playing at the same time,
I can just have the piano player record

73
00:05:21.759 --> 00:05:30.120
MIDI and with no sound, and
then edit it right to fix the mistakes,

74
00:05:30.600 --> 00:05:32.040
and then play it back through the
piano and record it. Wow.

75
00:05:32.160 --> 00:05:36.279
So that's a trick that my clients
love. Very clever, do that now?

76
00:05:36.920 --> 00:05:40.519
Yeah. Anyway, it's one hundred
and sixty nine bucks. And if

77
00:05:40.519 --> 00:05:44.399
you struggle like me, yeah for
the pair. If you struggle like me

78
00:05:44.439 --> 00:05:46.759
with this problem, this is a
solution. Whenever they get back and stock

79
00:05:47.439 --> 00:05:50.959
and ask for Mike God Love,
he's my guy at Sweetwater. Yeah,

80
00:05:51.040 --> 00:05:54.839
and they have everybody orders a bunch
of them then maybe they'll rush the back

81
00:05:54.959 --> 00:05:57.959
order back. Yeah. Maybe,
yeah, yeah, maybe they'll offer me

82
00:05:58.000 --> 00:06:00.560
some free stuff. Who knows stuff
is good. Free stuff is good.

83
00:06:00.680 --> 00:06:03.199
Bought some stuff from Sweetwater. They're
good people. They are all right,

84
00:06:03.240 --> 00:06:05.720
all right. Richard, who's talking
to us today, grabbed a comment.

85
00:06:05.759 --> 00:06:09.639
Let's be clear, you found this
comment, but yeah, grabbed a comment

86
00:06:09.680 --> 00:06:14.120
off of mast done. Yeah,
it's only because we've already read all the

87
00:06:14.160 --> 00:06:18.160
COSMOSCB related kind of off of the
of the website and so yeah, plus

88
00:06:18.360 --> 00:06:21.720
other issues, but that's not important
now. This comment comes from Hassen Savarn,

89
00:06:21.759 --> 00:06:27.439
who said it looks like the AI
theme is replacing data topics and conferences.

90
00:06:27.720 --> 00:06:30.519
I get it. AI is everywhere
lately. But AI depends on data.

91
00:06:30.720 --> 00:06:33.959
Yeah, you still need good data
models, optimized databases, data quality.

92
00:06:34.000 --> 00:06:38.319
It all still matters. So organizers, please don't remove data topics from

93
00:06:38.319 --> 00:06:41.879
your upcoming events or net topics for
that matter. Correct. Why would they

94
00:06:41.920 --> 00:06:44.360
do that? I no, no, no, everybody thinks it's Python now

95
00:06:44.399 --> 00:06:47.160
with the AI think so on the
other side is like his gigo ever meant

96
00:06:47.240 --> 00:06:51.560
more than it means right now,
garbage in, garbage out right like that

97
00:06:51.680 --> 00:06:57.519
was an old joke of computing decades
ago. But what is a large language

98
00:06:57.519 --> 00:07:02.040
model but a garbage amplifier and garbage
it spreads it everywhere, or a small

99
00:07:02.079 --> 00:07:08.040
language model for that, Yeah,
hassan, great comment, Thanks so much,

100
00:07:08.079 --> 00:07:11.199
and I'll respond to you a masadon
he send you a copy of music

101
00:07:11.199 --> 00:07:13.160
go by, And if you'd like
a copy of music, go buy,

102
00:07:13.399 --> 00:07:16.240
write a comment on the website at
dot at rocks dot com, or on

103
00:07:16.279 --> 00:07:20.120
the facebooks or on masd on Twitter. All of those work. Well,

104
00:07:20.199 --> 00:07:23.040
read them all and if I read
them on the show, I'll send you

105
00:07:23.040 --> 00:07:26.319
a copy of music. Go by. Yeah, blues guy, I'm a

106
00:07:26.639 --> 00:07:29.319
guy. Yeah, I heard they
just got DMS on there. There you

107
00:07:29.399 --> 00:07:30.600
go. Well, you can find
all the ways to get in touch with

108
00:07:30.639 --> 00:07:34.920
me anyway at Carl Franklin dot com, including all those things that Richard mentioned.

109
00:07:35.279 --> 00:07:41.399
So let's formally introduce Mark Brown.
Been on the show several times,

110
00:07:41.439 --> 00:07:45.000
but not in a while. He's
been in the software industry for more than

111
00:07:45.040 --> 00:07:50.480
thirty years old guy, when I
was younger, ripersnappers. Today he has

112
00:07:50.519 --> 00:07:56.120
worked for a wide array of companies, from ISPs to dot COM's building applications

113
00:07:56.120 --> 00:08:01.079
that ranged from the largest of back
end systems to the smallest the devices and

114
00:08:01.120 --> 00:08:07.120
everything in between. Mark leads the
growth team for Azure Cosmos DP. Welcome,

115
00:08:07.240 --> 00:08:09.959
Thank you very much. Great to
be back. It's been a while

116
00:08:09.000 --> 00:08:13.360
too long. And as you've you
just caught me here and said, hey,

117
00:08:13.519 --> 00:08:16.759
we haven't talked about Cosmos debating around
like you are correct, that is

118
00:08:16.839 --> 00:08:18.839
right. Are you doing any electronic
music these days? You know it's been

119
00:08:20.040 --> 00:08:22.920
Uh no, I guess I'm just
gonna say no, that's fine. Yeah,

120
00:08:24.360 --> 00:08:26.439
it's been hard to takes all it
takes, you know, it does

121
00:08:26.560 --> 00:08:31.959
take time and dedication and yeah,
and you've been busy, been very busy.

122
00:08:31.399 --> 00:08:35.720
Uh, life has not been the
same. And I guess about eighteen

123
00:08:35.759 --> 00:08:43.000
months since the AI detonation. Yeah, like chat GPT landed on my head

124
00:08:43.039 --> 00:08:46.039
like a ton of bricks right over
that November twenty two. Yeah. Yeah,

125
00:08:46.080 --> 00:08:52.720
and I spent all of my Christmas
vacation looking at this thing and thinking,

126
00:08:52.960 --> 00:08:56.799
hey, we should be there's there's
a there's a there's a place for

127
00:08:56.879 --> 00:08:58.960
us in all of this. So
it's your fault, well not all may

128
00:09:00.200 --> 00:09:03.519
some of it, because here it
build it's all AI. I mean everything

129
00:09:03.519 --> 00:09:07.080
in the keynote is AI and everything
everywhere is all averything. Yeah, well

130
00:09:07.120 --> 00:09:13.039
you, let's face it, Microsoft
has a great platform here. Yeah,

131
00:09:13.120 --> 00:09:18.600
yeah, jumped on right like I
jumped in, and I started looking at

132
00:09:18.240 --> 00:09:22.320
l ms in this whole Jenai space
and the technology here, and thought,

133
00:09:22.440 --> 00:09:26.919
you know, there's a place for
Cosmos in building these types of applications,

134
00:09:28.240 --> 00:09:31.639
particularly when you look at things like
chat. Like chat seems to be kind

135
00:09:31.679 --> 00:09:35.120
of the kind of the interface,
if you will, a natural language interface

136
00:09:35.159 --> 00:09:39.120
into that. And you know,
customers have been using Cosmos to build just

137
00:09:39.200 --> 00:09:43.240
regular chat bots and chat applications for
years, and that was kind of the

138
00:09:43.279 --> 00:09:48.159
angle I took. I'm like,
what's our role in that? And things

139
00:09:48.200 --> 00:09:52.360
have been snowballing. In fact,
it wasn't just me that was thinking and

140
00:09:52.399 --> 00:09:56.799
looking about this, but also our
own engineering team and even the open Ai

141
00:09:56.919 --> 00:10:05.360
folks. Very soon after they initially
launched, before that really exploded, they

142
00:10:05.399 --> 00:10:09.399
migrated over from existing postcrists. They
were running all of their chat GPT,

143
00:10:09.519 --> 00:10:11.759
all the chat history and everything on. There was running ont of some Postgrist

144
00:10:11.840 --> 00:10:18.039
servers and they were struggling as a
numbers just a hundred million users in two

145
00:10:18.039 --> 00:10:22.039
months. Yeah, it doesn't just
happen for free. It was overloading because

146
00:10:22.039 --> 00:10:24.840
they'd have to go and reshard their
databases like constantly to try to keep up

147
00:10:24.879 --> 00:10:28.960
with the growth in there. And
we reached out to him and said,

148
00:10:28.080 --> 00:10:31.039
hey, I think we've got a
way we can help you with this,

149
00:10:31.919 --> 00:10:35.720
and we walked them through Cosmos and
explained, hey, this is you know,

150
00:10:35.799 --> 00:10:39.480
this is scale out architecture here right, so beause postcrists is still in

151
00:10:39.600 --> 00:10:43.360
RDBMS. So did they rearchitect their
data? They did not really need to

152
00:10:43.399 --> 00:10:48.879
re architect. Migration was not wholly
difficult, and they were able to do

153
00:10:48.919 --> 00:10:52.519
it basically with the lights on.
Wow for that. So they migrated over

154
00:10:52.519 --> 00:10:56.840
to us very early after they launched, and then we helped them ride from

155
00:10:58.080 --> 00:11:01.200
like a handful to I mean their
peak was like over one hundred and eighty

156
00:11:01.240 --> 00:11:03.679
million daily active users. Wow.
I think I remember the day that went

157
00:11:03.720 --> 00:11:09.240
into effect, because it went from
you know, one word at time to

158
00:11:09.519 --> 00:11:13.559
just like yeah, yeah, And
they did all of that with a single

159
00:11:15.000 --> 00:11:20.639
Cosmos instance. Wow. We just
basically as users kept piling on and kept

160
00:11:20.879 --> 00:11:24.600
basically adding chats and sessions to it. You know, Cosmos just ended up

161
00:11:24.639 --> 00:11:28.559
just just scaling out. That's what
it does. It's a scale out architecture

162
00:11:28.559 --> 00:11:33.279
in there, so was that the
largest customer that demand wise that they're not.

163
00:11:33.480 --> 00:11:37.360
They're not our largest customer, not
even not even close actually, but

164
00:11:37.360 --> 00:11:41.320
they're I mean they're large, yeah, for sure. And I will say

165
00:11:41.320 --> 00:11:48.440
this one thing that was unique was
the rate of growth. For sure,

166
00:11:48.679 --> 00:11:52.200
the fastest app in history to reach
those kinds of consecutive or daily acting.

167
00:11:52.360 --> 00:11:56.159
Us growing at that rate, I
think it's it's pulled back from that one

168
00:11:56.240 --> 00:12:00.960
eighty, but now with four to
zero out, it's it's spiking again,

169
00:12:01.200 --> 00:12:03.639
right, So they're they're likely going
to go over that two hundred number,

170
00:12:03.679 --> 00:12:07.720
I'm sure at some point. Now. We've talked about AI a lot on

171
00:12:09.879 --> 00:12:13.600
this show since we've been a build
and seeing all the great things coming in.

172
00:12:13.720 --> 00:12:20.559
I've mentioned on more than one occasion
that I'm so for developers embracing AI

173
00:12:20.080 --> 00:12:24.559
and for you know, especially the
offerings that you have get hub co pilot

174
00:12:24.679 --> 00:12:31.200
and even the co pilot that is
now set to allow us to sort of,

175
00:12:31.440 --> 00:12:35.039
you know, reach into our enterprise
and see, you know, and

176
00:12:35.120 --> 00:12:39.039
ask questions in real language. That's
great and and so, but I was

177
00:12:39.080 --> 00:12:41.679
concerned on the first day. I'm
looking at the keynotes and I'm saying,

178
00:12:41.679 --> 00:12:46.000
you know, there's somebody out there
that's saying, you know, I'm going

179
00:12:46.080 --> 00:12:50.679
to use this to be my brain
and you know, to make decisions for

180
00:12:50.720 --> 00:12:54.600
me. I'm just going to trust
it. And of course you know that

181
00:12:54.600 --> 00:12:58.480
that's that's a problem. But then
I was very excited to see on the

182
00:12:58.519 --> 00:13:03.840
second day the security layer that Microsoft
ads over these large language models, so

183
00:13:03.879 --> 00:13:09.320
that you know, that's something that
chat GPT doesn't have. If I'm not

184
00:13:09.440 --> 00:13:16.080
mistaken, it's this thing that is
looking for hallucinations and looking for inaccurate data

185
00:13:16.279 --> 00:13:22.279
and even malicious use of it.
So important, and I was very glad

186
00:13:22.320 --> 00:13:24.440
to see that. You want to
talk about that a little bit. That's

187
00:13:24.480 --> 00:13:28.360
the whole responsible AI thing you're talking
about there. That's a huge focus and

188
00:13:28.440 --> 00:13:35.159
emphasis on everything we do. Everything
we produce and release internally at Microsoft,

189
00:13:35.159 --> 00:13:41.480
that's levernges of technology has to go
through a pretty set of rigorous in seat

190
00:13:41.519 --> 00:13:43.480
of testing and controls and all that
stuff to make sure that it's adhering to

191
00:13:43.519 --> 00:13:48.960
all those responsible AI principles that are
within there. I'm really glad that we

192
00:13:50.120 --> 00:13:54.600
out of the gate are applying this
to that, and not just for ourselves

193
00:13:54.639 --> 00:13:58.840
but also making sure customers that's applying
those technologies, we have to keep them

194
00:13:58.840 --> 00:14:01.799
safe. That's right as well,
and keep their customers safe. We don't,

195
00:14:03.039 --> 00:14:07.519
you know, think about the early
debacles people misusing chat GPT. There

196
00:14:07.559 --> 00:14:13.159
was a lawyer that had the tool
right assummation that referenced cases that simply didn't

197
00:14:13.159 --> 00:14:16.399
exist exist yah, and he didn't
check. And now, oddly enough the

198
00:14:16.480 --> 00:14:20.240
judge doesn't go for the oh the
software did it answer? Yeap. You

199
00:14:20.279 --> 00:14:24.960
know there was another case in Canada
actually with their Canada Canada one. Yeah,

200
00:14:26.039 --> 00:14:26.960
you remember you know that one?
Yeah, no, I've paid close

201
00:14:26.960 --> 00:14:30.759
attention to that. Where we'll tell
this anyway. It was a chat bought

202
00:14:31.240 --> 00:14:35.480
that uh, powered by an LM
that was answering questions about somebody when needed

203
00:14:35.480 --> 00:14:39.200
to make flight changes for a particular
reason. I can't remember which reason it

204
00:14:39.279 --> 00:14:41.320
was. And they said, oh, yeah, there's no feast for that,

205
00:14:41.320 --> 00:14:43.120
that's fine. Yeah, And so
they were one hundred bucks you could

206
00:14:43.240 --> 00:14:46.240
yeah, yeah, anyway they went
or he was supposed to get I think

207
00:14:46.279 --> 00:14:48.440
he was supposed to get a refund, and then when he went to get

208
00:14:48.440 --> 00:14:50.039
the refund, they're like, oh, you know, we don't rEFInd that.

209
00:14:50.120 --> 00:14:52.679
It's like, well you told me, yeah, like, oh,

210
00:14:52.720 --> 00:14:56.720
that's that's a mistake in the software. Yeah, And they actually went all

211
00:14:56.720 --> 00:14:58.519
the way to court on it,
and the court ultimately said they have an

212
00:14:58.559 --> 00:15:03.080
employee had said that you would be
liable. You just because you use a

213
00:15:03.120 --> 00:15:05.919
tool to do something that employee might
do, it doesn't mean you're not liable.

214
00:15:07.000 --> 00:15:09.440
You've got to payback good on them. Yeah, it is good,

215
00:15:09.519 --> 00:15:13.759
and you know, it kind of
highlights an important aspect with building these types

216
00:15:13.799 --> 00:15:18.200
of applications, which is, uh, you need to capture those interactions that

217
00:15:18.279 --> 00:15:24.919
happen between customers and users and this
technology, these lms, just like you

218
00:15:24.039 --> 00:15:30.159
have and say any customer service scenarios
that you always everybody's conversation be recorded.

219
00:15:30.159 --> 00:15:33.720
It's trading purpose exactly right, you
know what you must do the same.

220
00:15:33.000 --> 00:15:39.159
Even more important because you're having a
computer talk to you're experimenting this new technology,

221
00:15:39.360 --> 00:15:43.960
right, Like I think we scrutinized
customer service calls much more closely when

222
00:15:43.000 --> 00:15:46.759
they were new than we do today. That this is new, so it

223
00:15:46.799 --> 00:15:50.759
needs to be closely screwedin. You've
got to make sure that your customer service

224
00:15:50.759 --> 00:15:52.799
agents are on script and giving the
correct information the same as you do with

225
00:15:52.840 --> 00:15:58.399
your lms. And this is a
key kind of workload that we're finding with

226
00:15:58.559 --> 00:16:03.440
Cosmos these days and building these types
of applications is Yeah, you can in

227
00:16:03.480 --> 00:16:07.039
the past have used these things to
build chat applications and chatbots and also just

228
00:16:07.200 --> 00:16:11.519
chat assistance where you're talking and chatting
with a human. Even more important now

229
00:16:11.519 --> 00:16:17.440
where you have lms that are generating
responses sometimes had a whole cloth if they're

230
00:16:17.480 --> 00:16:21.440
not properly grounded to the data that
they should be, you need to capture

231
00:16:21.440 --> 00:16:23.000
those interactions. If for no other
reason, then you need to be able

232
00:16:23.000 --> 00:16:27.480
to audit that information. But you
can take that information and also feed that

233
00:16:27.879 --> 00:16:32.879
into maybe an mL model and do
some kind of sentiment analysis. You can

234
00:16:32.879 --> 00:16:37.399
feed that into some kind of clustering. You can do all kinds of analytics

235
00:16:37.440 --> 00:16:41.759
on top of that after the fact, to make sure that your data is

236
00:16:41.799 --> 00:16:45.000
better, make sure that the information
it's better, the prompts are better.

237
00:16:45.600 --> 00:16:48.799
That's super important, and you can't
do it unless you capture that data to

238
00:16:48.840 --> 00:16:52.360
begin with. Yeah, and so
this has been a key workload for us

239
00:16:52.200 --> 00:16:57.519
for Cosmos over the last eighteen months, is using Cosmos as part of building

240
00:16:57.559 --> 00:17:03.279
that chat interface and capturing that information. And now with build, we just

241
00:17:03.319 --> 00:17:10.839
announced our native vector search for Cosmos
dB as well as something I'm super excited

242
00:17:10.839 --> 00:17:14.839
about, which is this new suite
of technologies called disc an N. So

243
00:17:14.880 --> 00:17:18.160
an N is approximate nearest neighbor,
right, and in the vector space.

244
00:17:18.200 --> 00:17:21.519
That's essentially how you do these types
of queries is you don't do a keyword

245
00:17:21.559 --> 00:17:25.720
match or a full text match or
search. You use vectors and vectorize data

246
00:17:25.759 --> 00:17:30.559
and words and whatnot to to find
the semantic meaning and al also find those

247
00:17:30.599 --> 00:17:34.160
related terms within there. And so
now we've got this capability built natively into

248
00:17:34.160 --> 00:17:38.519
Cosmos. So customers that are using
Cosmos to say, store and capture all

249
00:17:38.519 --> 00:17:44.720
that chat interactions can now do vector
search vector database correct, so you automatically

250
00:17:44.759 --> 00:17:48.519
have a large language model or a
small language. Yeah. And now not

251
00:17:48.599 --> 00:17:52.599
just for the chat but also you
know, vectorize your data like RAG pattern

252
00:17:52.680 --> 00:17:53.640
is a big thing now, right. You want to be able to have

253
00:17:55.000 --> 00:17:57.759
an LM that you don't need to
necessarily retrain. You can provide it and

254
00:17:57.839 --> 00:18:03.039
augment that information that it generates for
a user using data out of your database.

255
00:18:03.079 --> 00:18:07.599
And the best way to get relevant
information is using these vector search technologies.

256
00:18:07.599 --> 00:18:11.359
So take your data, your transactional
or whatever data it is, vectorize

257
00:18:11.400 --> 00:18:14.400
its stored in cosmos, and then
do a vector search over that and then

258
00:18:14.440 --> 00:18:18.240
have it enrich and augment. I
like things like operations manuals, like documentation

259
00:18:18.359 --> 00:18:22.920
about the business, about how we
operate. Those kinds of things are easy

260
00:18:23.200 --> 00:18:29.160
and obvious. But there are other
things too that you might want to vectorize

261
00:18:29.680 --> 00:18:33.640
that you might not be thinking of. Yeah, like things like operation manuals

262
00:18:33.680 --> 00:18:37.079
and static documents. I mean you
can do those, you can put them

263
00:18:37.119 --> 00:18:41.519
in like a cognitive search or AI
search. The harder challenge is how do

264
00:18:41.599 --> 00:18:45.000
you do that over high volume transactional
data. How do I do that?

265
00:18:45.119 --> 00:18:49.519
If I'm trying to capture I don't
know, actions in a shopping cart,

266
00:18:49.640 --> 00:18:55.240
or what pages people are browsing or
other things where you have an enormous volume

267
00:18:55.279 --> 00:19:00.680
of data vector databases in the market
today, and even search engines capable of

268
00:19:00.720 --> 00:19:03.119
capturing that kind of data. You
need an operational or a transactional data store,

269
00:19:03.200 --> 00:19:07.480
especially a scalable one to be able
to capture that. This is what

270
00:19:07.599 --> 00:19:10.519
was unique about the announcement. And
I'm not sure landed it build here,

271
00:19:10.559 --> 00:19:15.519
but the disc and en technology with
Cosmos really allows you to take and build

272
00:19:15.559 --> 00:19:19.559
these types of scenarios over high volume
transactional data and you just you can't do

273
00:19:19.599 --> 00:19:23.519
that with existing like ahnsw types of
data. We used to think that the

274
00:19:23.599 --> 00:19:27.920
OLAP cube was like the end all
be all of finding related data. That

275
00:19:29.200 --> 00:19:34.279
wasn't you know, easily accessible by
regular RDM myths. And now this takes

276
00:19:34.319 --> 00:19:37.519
too all new level, doesn't it. You need? So really all you

277
00:19:37.599 --> 00:19:38.759
have to do on that, I
say all you have to do, but

278
00:19:38.839 --> 00:19:44.359
if you use Cosmos dB as you're
a data store, now all that data

279
00:19:44.400 --> 00:19:49.200
becomes searchable, yes, and in
fact natural language, and not just within

280
00:19:49.319 --> 00:19:52.440
Cosmos. But also you know,
we have a feature, you know,

281
00:19:52.480 --> 00:19:56.759
fabric is a brand new YE or
analytics one like data Live platform o.

282
00:19:56.799 --> 00:20:00.480
The word fabric has been reused a
couple of times, but I did notice

283
00:20:00.480 --> 00:20:04.559
the logo on my shirt to yeah, that's the new fabric, the new

284
00:20:04.640 --> 00:20:08.440
fabric. Yeah, but we have
a we have this feature called Cosmos Mirror

285
00:20:08.440 --> 00:20:14.240
which will take any data you write
into Cosmos and then automatically etl that into

286
00:20:14.440 --> 00:20:17.519
your one leg So if you want
to take that data, yes it's already

287
00:20:17.559 --> 00:20:19.839
vectorized, but you can store it
in the one leg and then spin up

288
00:20:21.000 --> 00:20:25.119
a new workspace and create new mL
workbooks and you can do all kinds of

289
00:20:25.119 --> 00:20:27.680
stuff like maybe do basic clustering in
there, to do sentiment analysis over what

290
00:20:27.720 --> 00:20:33.680
your customers are saying everywhere. You
can go anywhere with this and do it

291
00:20:33.720 --> 00:20:37.319
in a big data analytics platform to
augment all of that in there and get

292
00:20:37.319 --> 00:20:41.079
those insights and then use that to
feedback in and that I think is the

293
00:20:41.119 --> 00:20:45.680
promise and what's coming next is you
can build these applications. Customers can come

294
00:20:45.720 --> 00:20:48.720
and use them and they can you
know, you can ground your data and

295
00:20:48.799 --> 00:20:53.359
make sure it's providing good, sensible
answers. But you really need is that

296
00:20:53.480 --> 00:20:56.480
three sixty. So I want to
take that data, I want to do

297
00:20:56.559 --> 00:21:00.799
analytics on it, and then I
want to apply that back to help refine

298
00:21:00.839 --> 00:21:04.880
the system prompts that are within there, help refine all of the all of

299
00:21:04.960 --> 00:21:08.680
the knobs and dials for how those
things interact with customers in there, and

300
00:21:08.720 --> 00:21:12.720
help optimize those things. Boy,
that's just creating a whole bunch of new

301
00:21:12.759 --> 00:21:17.279
jobs, isn't it. I mean, if you think about the expertise required

302
00:21:17.319 --> 00:21:21.359
to do that, you know and
do and hit those tweak those knobs and

303
00:21:21.400 --> 00:21:25.200
dials. You know, that's that's
like a whole new thing. Yeah,

304
00:21:25.440 --> 00:21:29.200
but you know what it's Microsoft.
What do we do is we take and

305
00:21:29.279 --> 00:21:33.480
democratize things that are hard and make
them accessible for developers. Right. Yeah,

306
00:21:33.559 --> 00:21:36.079
you mentioned one like off the cuff
there and we've been talking about a

307
00:21:36.160 --> 00:21:40.519
run ass because we talk more about
data analytics over there. But just as

308
00:21:40.119 --> 00:21:44.559
it's one drive for data. Yeah, right, Like you think about when

309
00:21:44.599 --> 00:21:45.519
you want to build a model like
this, you need to pull from a

310
00:21:45.519 --> 00:21:48.960
bunch of different data sources and so
you know, you need different considentials for

311
00:21:49.000 --> 00:21:52.200
every SQL server. Like just even
finding all that stuff, it's a nuisance

312
00:21:52.240 --> 00:21:56.359
and one like really comes at it. Of all the data is here,

313
00:21:56.400 --> 00:21:59.519
and it's not a repository like you
dump off a copy of the data here.

314
00:22:00.039 --> 00:22:06.160
It's the data so it's being continuously
updated as well. And it just

315
00:22:06.240 --> 00:22:11.400
makes a consistent way for resources to
get access to data. So like the

316
00:22:11.440 --> 00:22:15.039
evolution of the data lake, isn't
it. Yeah, And in fact it

317
00:22:15.079 --> 00:22:18.720
doesn't have to just sit there,
Like you can analyze and run jobs on

318
00:22:18.799 --> 00:22:22.119
this data that's in there and then
use something like a Spark to write it

319
00:22:22.200 --> 00:22:26.319
back into like a cosmos or to
a hot store or something. It should

320
00:22:26.359 --> 00:22:29.079
also be available in the lake,
right right, it is, right,

321
00:22:29.200 --> 00:22:32.960
so it doesn't have to just sit
there and just gather dust, right,

322
00:22:33.039 --> 00:22:36.440
you know, take and analyze and
process that data and then feed it right

323
00:22:36.480 --> 00:22:40.519
back in again. Sure. Wow, yeah, mind is being blown well

324
00:22:40.599 --> 00:22:42.200
here this week. Just wait,
it gets crazier than that. I did

325
00:22:42.200 --> 00:22:45.920
this show with a run already on
run as and I'll put a link to

326
00:22:45.000 --> 00:22:49.920
it. But you can put symbolic
links into the lake to data stores that

327
00:22:49.960 --> 00:22:53.200
are not in Azure. You can
link to Oracle databases. You can look

328
00:22:53.240 --> 00:22:56.720
up to S three, so all
of the data appears visible in the lake,

329
00:22:56.920 --> 00:23:02.440
even if he's even in the lake. But it has the credentials,

330
00:23:02.480 --> 00:23:04.720
so if you have the rights to
access that, then it deals with the

331
00:23:04.720 --> 00:23:07.599
credential calling to go over to a
WS and pull the data as part of

332
00:23:07.640 --> 00:23:11.799
your search. Like oh so check
out this big fish that I pulled out

333
00:23:11.839 --> 00:23:17.160
of Lake Superior. Oh no that
wasn't lake. You'reon whatever, like whatever

334
00:23:17.240 --> 00:23:21.160
lake you want. You're good,
right, You're fine. Before we get

335
00:23:21.200 --> 00:23:23.759
to the break and we're it's coming
up. But Cosmos dB when we talked

336
00:23:23.799 --> 00:23:30.480
about in near early days was really
about h geodistributed high velocity database and that

337
00:23:30.599 --> 00:23:34.000
really to me said certain categories of
projects are going to need this, Like,

338
00:23:36.319 --> 00:23:38.920
so is that still the case?
Like does it make sense for most

339
00:23:38.920 --> 00:23:42.160
folks? You don't want to experiment
with copilots that sort of thing that they

340
00:23:42.160 --> 00:23:48.880
would go Cosmos, You know,
it was never that was never the first

341
00:23:48.880 --> 00:23:52.559
foot forward, right. It was
always where you could take it if you

342
00:23:52.640 --> 00:23:56.200
needed to write. That was always
the promise of Cosmo says you could it

343
00:23:56.200 --> 00:24:00.440
could you could use it for any
size workload. But if if you needed

344
00:24:00.480 --> 00:24:03.559
to do stuff that you could not
do with a relational database, Cosmos could

345
00:24:03.599 --> 00:24:06.960
take you there right right. You
can always start small, and in fact,

346
00:24:07.000 --> 00:24:11.799
a lot of the engineering an effort
we've been putting focused on is really

347
00:24:11.839 --> 00:24:15.559
designed to help improve that developer experience
starting at a small scale. You know,

348
00:24:15.599 --> 00:24:22.039
we have a serverless option now and
actually just recently we announced the availability

349
00:24:22.079 --> 00:24:26.680
for being able to take and seamlessly
migrate from serverists to say an auto scale

350
00:24:26.720 --> 00:24:29.200
and then if you want, you
can go back again in there. But

351
00:24:29.279 --> 00:24:32.559
that makes it easy if you start
with like a serverless option. That's kind

352
00:24:32.599 --> 00:24:34.599
of how you should do your dev
test right, Like why pay for a

353
00:24:34.680 --> 00:24:37.960
database? Why pay for compute if
you're not using it? Right, it's

354
00:24:37.960 --> 00:24:41.359
a dev right, or it's a
test environment when you go into production.

355
00:24:41.559 --> 00:24:45.480
Great. Then migrated over to an
auto scale allow it to elastically scale in

356
00:24:45.519 --> 00:24:52.880
and out, and that's great.
Other things as well have always been I

357
00:24:52.880 --> 00:24:55.759
guess, you know, for designing
for a scale out database can be a

358
00:24:55.759 --> 00:24:59.119
little tricky, you know, yeah, absolutely, Then I was perfectly happy

359
00:24:59.119 --> 00:25:03.279
with that viewpoint that. Look,
I've tried to scale document data stores across

360
00:25:03.359 --> 00:25:06.319
multiple sides. That's hard, and
you don't want to own that. It's

361
00:25:06.400 --> 00:25:11.000
plumbing, right, So the idea
that there was a knob in Azure around

362
00:25:11.000 --> 00:25:14.880
causes Dbut that's put it in these
geographies. Keep these syncs at this rate,

363
00:25:15.119 --> 00:25:18.400
like you pay for it, but
you don't have to own that complexity.

364
00:25:18.519 --> 00:25:22.880
That's right. But it may begged
the question like do I ever want

365
00:25:22.920 --> 00:25:26.519
this in one node mode? But
you're describing one node scenarios, you're at

366
00:25:26.599 --> 00:25:30.559
least initially knowing you would go to
multiple nodes they if the case arise,

367
00:25:30.000 --> 00:25:33.799
it always starts small, yeah,
right, So, and it needs to

368
00:25:33.839 --> 00:25:38.559
be approachable and easy to use,
and also it needs to be mutable in

369
00:25:38.599 --> 00:25:41.079
a way, right. Like,
one of the things that's been challenging or

370
00:25:41.200 --> 00:25:47.480
is challenging for building distributed scale A
databases is you typically have to make very

371
00:25:47.799 --> 00:25:51.799
very complex design decisions very early on, like how do you partition data so

372
00:25:51.880 --> 00:25:55.480
that it scales out? And in
the past that was always a challenge because

373
00:25:55.559 --> 00:25:57.640
in many cases you were asking a
developer to predict how it was going to

374
00:25:57.640 --> 00:26:00.359
be used once it was in production. Only thing worse than that prediction was

375
00:26:00.400 --> 00:26:03.640
trying to change it afterwards. And
that was the thing that we realized is

376
00:26:03.720 --> 00:26:08.599
we needed to make it easy for
a developer to change that because you guys

377
00:26:08.640 --> 00:26:11.920
have all done this for a long
time. You all know you get an

378
00:26:11.920 --> 00:26:15.920
app into production and you're surprised by
how customers use it, and then you

379
00:26:15.960 --> 00:26:18.880
need to go back and back to
the drawing board and I need to refactor

380
00:26:18.920 --> 00:26:22.039
a bunch of this stuff. And
that from a scale out point of view,

381
00:26:22.359 --> 00:26:25.880
if you do not have your partition
design correct, you cannot scale.

382
00:26:25.960 --> 00:26:30.359
It is the key to scaling,
and that's another recent innovation is we've made

383
00:26:30.359 --> 00:26:33.319
it way easier for customers to go
back and say, give me a big,

384
00:26:33.319 --> 00:26:36.480
great easy button that I want to
push and allow me to repartition my

385
00:26:36.559 --> 00:26:38.920
data so that I can scale right
and then maybe change it again. Like

386
00:26:40.160 --> 00:26:42.960
absolutely, the data size grows and
new features come in, you need to

387
00:26:44.000 --> 00:26:48.440
repartition or have multiples. This is
another innovation as well, is providing a

388
00:26:48.440 --> 00:26:52.680
material easy way to do a materialized
view on that data. This is common

389
00:26:52.720 --> 00:26:56.680
with like say a CQRS type of
pattern right where you have ingesting of lots

390
00:26:56.680 --> 00:26:59.359
of data and you need to be
able to scale that out. Well.

391
00:26:59.599 --> 00:27:02.400
Rarely the case that you're going to
read the data the same way you write

392
00:27:02.400 --> 00:27:06.359
it. You may have data coming
in you want to do reports by state,

393
00:27:06.480 --> 00:27:07.920
or you want to do a report
by some category, or you want

394
00:27:07.960 --> 00:27:11.720
to do some kind of dashboard over
here, and you can't run queries over

395
00:27:12.119 --> 00:27:15.799
a large scale out database like that
and get good performance on your repath.

396
00:27:15.920 --> 00:27:21.039
You need to have that data kind
of repactored and pivoted so that you can

397
00:27:21.079 --> 00:27:26.680
do efficient dashboards, efficient reports,
whatnot. So providing that capability just another

398
00:27:26.720 --> 00:27:30.119
big read easy button for developers you
don't and then so you you know,

399
00:27:30.279 --> 00:27:34.960
I do not like pre optimizing.
I've been burned by it too many times.

400
00:27:36.680 --> 00:27:38.079
And I'm not saying I want to
have the problem first, but I

401
00:27:38.119 --> 00:27:42.480
kind of want to have the problem
first, right because often those optimizations create

402
00:27:42.519 --> 00:27:47.119
more problems than they solve. So
it's better to watch the data flow in

403
00:27:47.799 --> 00:27:51.599
and see where it's getting rough because
you've got good instrumentation and go, okay,

404
00:27:51.839 --> 00:27:55.319
well if you're protuction like partition like
this will reduce the impact, and

405
00:27:55.599 --> 00:27:59.519
then you try your benchmarkt like now
you're describing as any area where I'm willing

406
00:27:59.519 --> 00:28:03.000
to express now to say, okay, let's try a partition strategy and see

407
00:28:03.000 --> 00:28:07.279
what the instrumentation. But this is
key for a developer experience, right is

408
00:28:07.319 --> 00:28:10.759
you need to have that flexibility to
be able to come back and approach it

409
00:28:10.839 --> 00:28:12.440
in a different way or solve it
in a different way. Folks ask us

410
00:28:12.440 --> 00:28:15.039
for a lot of certainty, and
we don't have it. Man, Yeah,

411
00:28:15.559 --> 00:28:18.240
yeah, I appreciate you state.
It's like I don't have to decide

412
00:28:18.319 --> 00:28:22.480
that right now. Let's wait till
we see how the data flows before we

413
00:28:22.559 --> 00:28:26.400
decide make a decision, and then
have the flexibility to revise. Yeah,

414
00:28:26.480 --> 00:28:30.759
we guessed here, it's a guess. We're going to measure it like this

415
00:28:30.119 --> 00:28:33.359
and revisit this at some point and
maybe adjust it. Yeah, yeah,

416
00:28:33.440 --> 00:28:37.680
well I appreciate it. So make
it easy for developers to run a small

417
00:28:37.720 --> 00:28:40.640
scale they want to run on a
single note. That's great, But help

418
00:28:40.680 --> 00:28:44.640
them make it easier for them to
achieve that kind of scale that you just

419
00:28:44.680 --> 00:28:47.960
can't get that anywhere else. That's
why customers use us. It's always been

420
00:28:48.000 --> 00:28:52.039
Microsoft's mo And with that, I'm
going to interrupt for one brief moment for

421
00:28:52.079 --> 00:28:59.279
this very important message. Attention dot
net developers looking for the ultimate SDK to

422
00:28:59.359 --> 00:29:06.519
handle a lot electronic document processing.
Meet tx text Control. Txtext controls your

423
00:29:06.519 --> 00:29:12.119
go to solution for seamless PDF generation, secure electronic signatures, and efficient digital

424
00:29:12.160 --> 00:29:18.720
forms processing, all within your dot
net applications. Empower your products with robust

425
00:29:18.759 --> 00:29:25.400
document management capabilities, boost productivity,
and deliver top notch solutions to your clients.

426
00:29:25.920 --> 00:29:30.880
Trusted by developers worldwide, including me
and Richard, txtext control is the

427
00:29:30.039 --> 00:29:37.000
SDK that makes a difference. Check
out demos dot textcontrol dot com for live

428
00:29:37.079 --> 00:29:42.519
online demos and see it in action. Hey Carl here, tired of the

429
00:29:42.559 --> 00:29:48.960
debugging grind, Let's talk about a
breakthrough that's here to help ray guns AI

430
00:29:48.319 --> 00:29:53.759
error resolution isn't just another tool.
It's like having a seasoned developer right by

431
00:29:53.799 --> 00:30:00.119
your side, suggesting fixes and explaining
errors in real time. If you're curious

432
00:30:00.279 --> 00:30:04.680
as to how it can smooth out
your debugging day, visit raygun dot com

433
00:30:04.680 --> 00:30:10.960
slash dot net rocks that's raygun r
A y g u n dot com slash

434
00:30:11.319 --> 00:30:15.160
do O t n E t r
O c k s for your free fourteen

435
00:30:15.240 --> 00:30:22.440
day trial to explore the way reygun
is revolutionizing debugging. And we're back.

436
00:30:22.480 --> 00:30:25.559
It's not a Rocks. I'm Richard
Canvill. Let's call Franklin Yo. Chat

437
00:30:25.599 --> 00:30:29.759
with our friend Mark Brown in the
latter stages of the twenty twenty four build

438
00:30:29.799 --> 00:30:33.920
in Seattle. Gray day as usual, Seattle. That's how this place works.

439
00:30:33.759 --> 00:30:37.119
It's I mean, it's cloudy and
gray. It's just another day.

440
00:30:37.160 --> 00:30:45.240
It's just another day. We call
that Thursday. Well, I mean it

441
00:30:45.240 --> 00:30:51.200
does seem like these LM workloads were
made for you guys, Like, but

442
00:30:51.359 --> 00:30:55.440
what's the shape of the data that
they're typically managing. It's the vector data

443
00:30:55.480 --> 00:30:57.680
stores, right, It could be
anything, right because as a Jason data

444
00:30:57.680 --> 00:31:00.359
store, we largely don't care.
Yeah, you can take anything, right,

445
00:31:00.559 --> 00:31:04.559
You can have hierarchy, you can
do whatever. Yeah, it's it's

446
00:31:04.599 --> 00:31:10.279
whatever. You need to go back
to why we're in the space and what

447
00:31:10.319 --> 00:31:12.839
we were doing. You know,
vector databases are super hot, and there

448
00:31:12.839 --> 00:31:15.119
are a lot of them out there
now and they're getting a lot of attention,

449
00:31:15.359 --> 00:31:21.000
and they're very important to building efficient
workloads on these alboraks got an implementation

450
00:31:21.079 --> 00:31:25.000
of a vector store inside of it
now or will they will? Yeah,

451
00:31:25.000 --> 00:31:27.920
So they've been doing a brute force
thing lately. So you just basically put

452
00:31:27.920 --> 00:31:32.279
an array of vectors into a into
a into a column and then call a

453
00:31:32.359 --> 00:31:36.359
cosign function on that thing til you
can get basically it's it's an exact match,

454
00:31:36.400 --> 00:31:38.200
right, or a brute force not
doing approximate nearest neighbor. So I

455
00:31:38.240 --> 00:31:41.759
got a story for it towards the
beginning of the year, when you know,

456
00:31:41.799 --> 00:31:45.680
before any of this was available and
nobody even knew how to make a

457
00:31:45.920 --> 00:31:51.440
vector database or what they were.
I was approached by a colleague to put

458
00:31:51.480 --> 00:31:53.720
together some training on AI and put
you know, how to use chat,

459
00:31:53.759 --> 00:31:59.319
GPT, how to use the tools, the APIs and and and it was

460
00:31:59.400 --> 00:32:02.359
just because of was such a hot
topic. And I said, after a

461
00:32:02.400 --> 00:32:06.160
while when things changed so rapidly,
It's like, you know, this stuff

462
00:32:06.200 --> 00:32:08.359
is changing so fast, this is
not the time. We just got to

463
00:32:08.400 --> 00:32:13.359
wait, got to wait this out
and see what major tools shake out,

464
00:32:13.400 --> 00:32:15.799
because they will be available. And
turns out I was right, Yeah,

465
00:32:16.000 --> 00:32:19.880
yeah, it only gets easier.
Yeah, all these things that we had

466
00:32:19.920 --> 00:32:23.519
to Can you imagine going into a
training class like in I don't know,

467
00:32:23.720 --> 00:32:27.519
right before Windows came out, and
somebody's teaching you how to write your own

468
00:32:27.559 --> 00:32:30.839
windowing system, right, and the
Windows comes out, It's like, well,

469
00:32:30.880 --> 00:32:34.839
what the hell was all that then? You mean like prior to like

470
00:32:34.920 --> 00:32:37.880
Jeff Richter's book or something like that, Like, please give me some MFC.

471
00:32:38.160 --> 00:32:42.880
Yeah, I'm old me too with
you. It's been crazy for the

472
00:32:42.920 --> 00:32:45.799
last eighteen months. The everything,
all the APIs for open Ai and everything

473
00:32:45.799 --> 00:32:50.279
built on top of it and around
it, whether it's things like a semantic

474
00:32:50.319 --> 00:32:53.640
kernel or a lying chamber law index, these things are changing like weekly.

475
00:32:53.960 --> 00:32:58.039
They would go and push new builds
and you'd break half of everything that's right

476
00:32:58.039 --> 00:33:02.880
there. And a lot of customers
I was working with were frustrated because there's

477
00:33:02.920 --> 00:33:07.200
a lot of center of gravity around
using these orchestration SDKs for llms right,

478
00:33:07.200 --> 00:33:10.799
like, they do provide a good
kind of single sheene if you will try

479
00:33:10.839 --> 00:33:15.519
and help connect all these pieces together. But man, they were changing so

480
00:33:15.640 --> 00:33:17.960
fast, so fast that it was
a lot of customers are like, you

481
00:33:19.000 --> 00:33:21.839
know what, I'm just going to
set those aside for a bit because I'm

482
00:33:21.839 --> 00:33:25.079
trying to get something built here and
if my billd breaks every single day because

483
00:33:25.079 --> 00:33:29.079
you guys are changing, then I
need to kind of take my own ownership

484
00:33:29.079 --> 00:33:31.039
of that. Ryan McKay and I
were doing a YouTube show called The AI

485
00:33:31.119 --> 00:33:35.039
Bought Show, and it just kind
of was like that, you know,

486
00:33:35.119 --> 00:33:39.039
he would and in fact, he
would go and test some things on against

487
00:33:39.160 --> 00:33:42.799
I don't know if it was chat
Gypt or just something in open AI.

488
00:33:42.920 --> 00:33:45.519
Maybe it was like the you know, the playground, I think it's called

489
00:33:45.599 --> 00:33:51.200
right, and he would test it
all and then get the response, and

490
00:33:51.200 --> 00:33:55.559
then we'd record the next day and
the response was completely dead, and it's

491
00:33:55.640 --> 00:33:59.640
like, oh, they fixed this
because he was showing like how to break

492
00:33:59.680 --> 00:34:02.559
it or whatever. Now it doesn't
break. And the next day it was,

493
00:34:02.720 --> 00:34:07.720
oh, well this kind of didn't
work yesterday. It's amazing. It's

494
00:34:07.759 --> 00:34:09.239
just just goes to show you,
you know, just calm down. This

495
00:34:09.280 --> 00:34:15.440
is a good time right now to
investigate what Microsoft is doing because they they

496
00:34:15.480 --> 00:34:17.400
are the tool builders. They are
the tool buildings. I'll pull some links

497
00:34:17.400 --> 00:34:22.440
for like lang chain and the other
semantic kernel. This is something that we

498
00:34:22.480 --> 00:34:25.159
haven't really talked about all that much
on dot net rocks. Maybe we could

499
00:34:25.840 --> 00:34:30.360
just give us an elevator pitch for
what that is. Yeah, So Samanic

500
00:34:30.400 --> 00:34:36.320
kernel is just among kind of these
group of these orchestration SDKs for building l

501
00:34:36.599 --> 00:34:38.920
ms and kind of the equivalent of
these things that people may have heard of

502
00:34:38.920 --> 00:34:42.800
would be lang Chain. It's really
the big one I think out there.

503
00:34:43.480 --> 00:34:46.000
La Index is another one of these
things. And you know what they do

504
00:34:46.079 --> 00:34:51.559
is Python, right, Yeah,
they all support like Python and JavaScript for

505
00:34:51.920 --> 00:34:54.840
the most part, like lang chain
for sure. Samanic kernel offers a dot

506
00:34:54.920 --> 00:34:59.559
net sdk. They also have a
Python option in there as well. They

507
00:34:59.559 --> 00:35:02.000
may have a JavaScript also that they're
in there, but anyway, you know,

508
00:35:02.039 --> 00:35:05.480
these things are changing so fast,
they might have something else in there

509
00:35:05.480 --> 00:35:12.400
as well. But the value of
what these things do is they provide a

510
00:35:12.440 --> 00:35:15.519
way to easily kind of plug in
lots of different things. It could be

511
00:35:15.559 --> 00:35:20.039
different lams. You can build kind
of an agent's on top of these things.

512
00:35:20.079 --> 00:35:22.880
They all have these notions of kind
of planners or chainers within there,

513
00:35:22.920 --> 00:35:28.519
so you can really build kind of
these complex LLM workloads and do it in

514
00:35:28.599 --> 00:35:31.639
a kind of an easier abstracted interface, right, so you don't need to

515
00:35:31.679 --> 00:35:36.199
get down into the weeds of native
SDKs to connect to all of these different

516
00:35:36.519 --> 00:35:42.079
vector databases or llms or embedding models. You can just provide kind of that

517
00:35:42.159 --> 00:35:45.719
single user interface for that. That's
the promise of these things. The reality

518
00:35:45.719 --> 00:35:49.400
for the last year and a half
is they keep changing so fast that it's

519
00:35:49.440 --> 00:35:52.159
hard to keep them and use them. But that's their promise, and I

520
00:35:52.199 --> 00:35:58.880
think they do a good job of
doing that. They are starting to solidify,

521
00:35:59.239 --> 00:36:02.239
if you will, some level is
a semantic kernel after these things that

522
00:36:02.280 --> 00:36:07.480
were announced to build considered like a
low level tool compared to like I don't

523
00:36:07.519 --> 00:36:13.199
know, the co pilot studio or
any of these other high level tools for

524
00:36:13.199 --> 00:36:15.920
sure. I mean those are look
at the copilots too. Is kind of

525
00:36:15.920 --> 00:36:21.239
a low code way of going and
building these types of of applications, for

526
00:36:21.280 --> 00:36:23.679
sure. If you're going to go
and roll your own and you wanted to

527
00:36:23.760 --> 00:36:27.840
be able to bring together lots of
different bits and pieces of these things.

528
00:36:27.840 --> 00:36:31.239
You would use something like a semantic
kernel or maybe a combination of like native

529
00:36:31.360 --> 00:36:36.199
SDKs and semantic kernel to go and
build these types of things. So that's

530
00:36:36.239 --> 00:36:38.599
their value and being able to do
that provide that pluggable interface, if you

531
00:36:38.639 --> 00:36:45.079
will, for doing these things.
I can feel people listening, going agents,

532
00:36:45.519 --> 00:36:50.119
What what's that? Why do I
need one of those or a series

533
00:36:50.159 --> 00:36:55.360
of these? Are these like little
experts in a particular silo that maybe talk

534
00:36:55.440 --> 00:37:00.559
to each other or maybe have areas
of ex ortise. Yeah, it's exactly

535
00:37:00.599 --> 00:37:04.239
it it So let's just I mean, I could kind of give you some

536
00:37:04.280 --> 00:37:08.159
a rough scenarios. If I'm in
an e commerce type of application and I

537
00:37:08.239 --> 00:37:12.360
want to do i don't know,
product search or something or asked about products,

538
00:37:12.360 --> 00:37:15.280
I may have an agent specifically tailored
to doing product searches. Right.

539
00:37:15.599 --> 00:37:22.840
I may have another agent tailored specifically
to refunds or to some kind of customer

540
00:37:22.960 --> 00:37:25.480
profile or updates or anything, I
mean, anything that you need. Like,

541
00:37:27.039 --> 00:37:29.760
all of these things kind of operate
around the notion of you have a

542
00:37:29.840 --> 00:37:32.840
system prompt that kind of defines the
behavior and also grounds it to specific data.

543
00:37:34.199 --> 00:37:37.199
Right, And So the idea of
the agent as you've created this kind

544
00:37:37.199 --> 00:37:40.840
of encapsulated whole that takes inputs and
is specialized around a particular thing, maybe

545
00:37:40.840 --> 00:37:45.760
grounded to some specialized data, and
then provide specialized outputs for the thing that

546
00:37:45.840 --> 00:37:51.119
Richard hates the most is that's an
easy way to answer promorphize an expert software

547
00:37:51.400 --> 00:37:54.880
thing. You can give them their
own personalities and you can tell them to

548
00:37:54.960 --> 00:38:00.559
answer every question like a sixties stoner
or something. Yes, you know,

549
00:38:00.679 --> 00:38:05.559
okay, dude, let me tell
you what's going on. I did something

550
00:38:05.679 --> 00:38:09.000
very similar. I created a demo
that I've used at the Fabric conference that

551
00:38:09.119 --> 00:38:15.159
was at actually it was a night
last year, and it was built and

552
00:38:15.199 --> 00:38:19.920
grounded to the old old Adventure Works
twenty seventeen data based from SQL service.

553
00:38:19.920 --> 00:38:22.480
So it's like a bike store,
right. So I created this AI agent

554
00:38:22.679 --> 00:38:28.719
and I called him Wheelie, and
I went to the Being image generator and

555
00:38:28.760 --> 00:38:32.320
I created an image looked like it
looked like Clippy. Ironically, could have

556
00:38:32.400 --> 00:38:37.039
like a little like a little cartoon
avatar on a bike doing a big wheelie

557
00:38:37.079 --> 00:38:39.719
or whatever, and he had a
big smile on and stuff like that.

558
00:38:39.760 --> 00:38:43.719
So I created a whole persona around
this thing. The T shirt that said

559
00:38:43.800 --> 00:38:45.760
keep on truck, and I should
keep the T shirt for this thing keep

560
00:38:45.760 --> 00:38:50.519
on wheeling or biking or whatever.
But no, but it's a retail bike

561
00:38:50.559 --> 00:38:53.119
store, right, I want to
create an AI assistant that's really into biking.

562
00:38:53.159 --> 00:38:58.079
So the system prompt for this thing
is you were super enthusiastic about biking,

563
00:38:58.119 --> 00:39:00.679
and you really just want to help
people find all the biking and accessories

564
00:39:00.679 --> 00:39:04.480
that they need so they can go
have great biking adventures. Right, and

565
00:39:04.559 --> 00:39:07.599
you should have all this energy and
all that stuff. So what's interesting is,

566
00:39:07.840 --> 00:39:08.800
you know, I go when you
start testing this thing, and it's

567
00:39:08.800 --> 00:39:12.800
exactly what it comes back with this
And I find if in the prompts you

568
00:39:12.880 --> 00:39:16.800
use word like brilliant you know,
or just like master of you know,

569
00:39:17.000 --> 00:39:22.239
it will actually be smarter, right
in terms of you know, or the

570
00:39:22.360 --> 00:39:24.880
perception will be smarter. So you
can provide all of that stuff, you

571
00:39:24.880 --> 00:39:29.199
can give it that personality, you
can you know, it's a great way

572
00:39:29.239 --> 00:39:30.880
to represent your brand if a way, right, if you have kind of

573
00:39:30.880 --> 00:39:35.119
a specific vibe for who you are. As long as it doesn't tell you

574
00:39:35.159 --> 00:39:38.800
this refunds that don't exist. Yes, that's right. Accuracy is a feature

575
00:39:38.880 --> 00:39:45.679
too, and safety. Here's a
coupon. Yeah, it's it's interesting to

576
00:39:45.880 --> 00:39:47.840
you know, we did I did
this great show with Steph A. Warre

577
00:39:47.880 --> 00:39:52.760
as we talked about it. It's
a language computer. It fits out language

578
00:39:52.760 --> 00:39:55.719
for you based on your instructions.
Yep. Ye, And it's just humans

579
00:39:55.719 --> 00:40:01.280
that project understanding into that. Yes, you always have to remember your instructions

580
00:40:01.320 --> 00:40:05.280
and also the data you give it
as well. Right, it's only smart

581
00:40:05.400 --> 00:40:09.159
enough for whither what's been trained for
or the information that is provided. Well.

582
00:40:09.559 --> 00:40:15.079
Yeah, and it needs testing.
You know. The conversation over and

583
00:40:15.079 --> 00:40:19.719
over again is that you need experts
in the data sets to test it and

584
00:40:19.760 --> 00:40:22.599
say, oh that is correct,
that's incorrect, and sort of work your

585
00:40:22.599 --> 00:40:25.159
way through it. It's it's it's
certainly not a reason not to use it,

586
00:40:25.199 --> 00:40:29.559
but it's like it's just like if
you're gonna work in a dynamic language,

587
00:40:29.760 --> 00:40:32.639
you need testing around it. Right, you know, you you you

588
00:40:32.679 --> 00:40:36.599
have to do the whole thing,
You have to own the whole problem,

589
00:40:37.079 --> 00:40:40.599
and you can make these things work
and be incredible labor saving devices. You

590
00:40:40.599 --> 00:40:45.880
know, they talk about response times
dropping down to seconds and you know,

591
00:40:45.000 --> 00:40:50.639
making customers happy as long as it's
correct. I had this argument with a

592
00:40:50.679 --> 00:40:53.679
friend, you know, when I
was talking about hallucinations and stuff and wrong

593
00:40:53.760 --> 00:40:59.920
answers, and the argument was to
defend this behavior. Well, I know

594
00:41:00.079 --> 00:41:04.519
people like that too. It's like, yeah, my uncle Joe is a

595
00:41:04.719 --> 00:41:08.880
complete bs er, but I'm not
going to hire him to run my company.

596
00:41:09.639 --> 00:41:16.760
Joe's not processing my refund. No, those aren't the folks you use.

597
00:41:17.400 --> 00:41:20.960
So now fair enough, Like,
what do you want from your software?

598
00:41:21.000 --> 00:41:23.760
What are you expecting? I just
wonder for you know, trying to

599
00:41:23.800 --> 00:41:29.199
imagine the next couple of years in
the transformation of the user interface, like

600
00:41:29.519 --> 00:41:32.800
a lot less buttons and knobs and
things and a lot more just to free

601
00:41:32.840 --> 00:41:37.960
flowing texts. I think it's the
natural language processing is kind of the going

602
00:41:38.039 --> 00:41:42.480
to be the interface for these things, right, not typing your talking and

603
00:41:42.599 --> 00:41:45.719
learning. Yeah, I also wonder
about machine learning models for vision, Like

604
00:41:45.840 --> 00:41:49.360
I've always thought it would be great
to have an assessment of frustration on the

605
00:41:49.400 --> 00:41:52.480
operator's part, right, but the
software could see that you're struggling with it,

606
00:41:53.000 --> 00:41:55.519
just you mean, like feed in
a like a jiff of that guy

607
00:41:55.559 --> 00:42:00.159
banging the hell out of keyboard or
something anymore like most of these machines have

608
00:42:00.159 --> 00:42:05.440
a camera on already. Yeah,
Like, could I actually recognize your struggling

609
00:42:05.440 --> 00:42:08.480
to achieve something in the software and
then affect the software? Like do you

610
00:42:08.519 --> 00:42:12.559
need help? Can I put up
a prompt? You know? Or I've

611
00:42:12.559 --> 00:42:15.280
noticed you only use these six features? Could I put them front the center?

612
00:42:15.320 --> 00:42:19.360
Like? What if the UX was
dynamic to the way the user used

613
00:42:19.360 --> 00:42:22.079
it? Or please place that hamburger
in the bag before I call and keep

614
00:42:22.119 --> 00:42:27.119
this light for somebody to come over. Oh yeah, So I heard someone

615
00:42:27.320 --> 00:42:30.800
on in one of the keynotes,
and I can't remember who it was say

616
00:42:30.880 --> 00:42:35.719
that many people would rather talk to
an AI than a real person. That's

617
00:42:35.760 --> 00:42:39.719
the first time I had ever heard
that argument, because in my part of

618
00:42:39.760 --> 00:42:45.159
the world, most people don't want
to go to a website and chat with

619
00:42:45.239 --> 00:42:49.039
a bot, you know, they
want a real person. But is there

620
00:42:49.119 --> 00:42:52.480
this growing population of people who would
rather speak to an AI than a real

621
00:42:52.519 --> 00:42:57.679
person. I guess it depends on
the capabilities of that AAI. Let's start

622
00:42:57.679 --> 00:43:00.159
with the initial thing is would you
rather go to a website to get the

623
00:43:00.199 --> 00:43:04.360
information? Would rather call the company? Right? Like I tend to not

624
00:43:04.480 --> 00:43:07.440
want to pick up the phone anymore. Because it takes longer looking for the

625
00:43:07.519 --> 00:43:15.239
least amount of time to get the
things I need. And so you know,

626
00:43:15.559 --> 00:43:17.840
the reason you've been avoiding calling tech
support and things like that is it

627
00:43:17.880 --> 00:43:22.000
takes a while and you have to
keep explaining yourself in some ways. If

628
00:43:22.039 --> 00:43:27.039
the software is the interface for that, it's less frustrating and you're talking usually

629
00:43:27.079 --> 00:43:30.159
to someone who really doesn't understand what
you're doing. But it's just taking your

630
00:43:30.159 --> 00:43:34.199
answers and plugging them into an expert
system and anyway, you know. Anyway,

631
00:43:34.280 --> 00:43:36.920
so what you have as a transcribed
version of a chatbod, like,

632
00:43:36.960 --> 00:43:40.000
why is that absolutely right about that? Yeah? I think it's gonna whether

633
00:43:40.039 --> 00:43:43.280
they want to do it or not
is going to depend on how good the

634
00:43:43.760 --> 00:43:45.920
experience is. Okay, well,
here's a great example. Things that I

635
00:43:46.000 --> 00:43:52.280
used to Google for I now ask
chat gipt. So you basically believe in

636
00:43:52.280 --> 00:43:57.119
the I Feel Lucky button on Google
because you're just getting on answer. Yeah,

637
00:43:57.559 --> 00:44:00.360
you're talking about school search. It's
you know, you put in a

638
00:44:00.360 --> 00:44:01.760
search term, you look at the
array of answers, right, You're like,

639
00:44:01.800 --> 00:44:05.920
I'll let me rEFInd their search term, right, but I will ask

640
00:44:05.960 --> 00:44:09.840
a question like, you know,
is there a coin operated laundry facility at

641
00:44:09.840 --> 00:44:15.800
this hotel that I'm going to.
It's much faster and easier for chatting through

642
00:44:15.840 --> 00:44:17.800
a site for that, the calmbing
through a site and trying to find it,

643
00:44:19.280 --> 00:44:22.840
you know, or calling them or
definitely calling them. Yeah, I

644
00:44:22.960 --> 00:44:27.159
use the chatchipt on being like maybe
five six times a day. Yeah,

645
00:44:27.480 --> 00:44:31.159
it's replaced my search. Yeah,
it's also replacing things like Google Translate,

646
00:44:31.280 --> 00:44:36.039
for example, because now with four
to oh and not for zero, but

647
00:44:36.079 --> 00:44:39.199
four oh chpt four oh. You
know, you can use your voice and

648
00:44:39.400 --> 00:44:44.880
you can just talk to somebody and
it will say, all right, translate

649
00:44:45.119 --> 00:44:49.440
the English to Spanish, the Spanish
English. We'll just do that. Yep.

650
00:44:50.280 --> 00:44:53.719
It's powerful. It's powerful. Stuff's
actually I always had a conversation with

651
00:44:53.840 --> 00:44:59.920
someone's adjacent but not the same thing. Whose husband is waiting for a cock

652
00:45:00.000 --> 00:45:01.039
clear implant. His hearing has gone
that bad. He says, I don't

653
00:45:01.079 --> 00:45:04.239
even want to talk to him or
I have to shout and I always sound

654
00:45:04.280 --> 00:45:07.559
angry. And I pulled out Live
Trends, I grabbed her phone, installed

655
00:45:07.559 --> 00:45:09.960
Live Transcribe on it, and then
we just kept talking and she's like the

656
00:45:10.000 --> 00:45:13.159
words are coming out. It's like
just put this in front of him,

657
00:45:13.159 --> 00:45:15.000
like, what are you doing?
You've had the tool in your pocket the

658
00:45:15.039 --> 00:45:19.079
whole time and you didn't know.
Isn't that funny? Yeah, But the

659
00:45:19.159 --> 00:45:22.679
fact the idea of walking into a
shop in France when your frendsh is bad,

660
00:45:22.800 --> 00:45:28.079
my friend is bad, and being
able to just have it spew frenchise

661
00:45:28.199 --> 00:45:37.320
Frenches just slightly off. Yeah.
They maybe bring the world closer together.

662
00:45:37.440 --> 00:45:40.639
Yeah. Yeah. It was a
while ago that Google did some keynote thing

663
00:45:40.639 --> 00:45:46.159
where they were where they were doing
live transcription and translation and voice and and

664
00:45:46.239 --> 00:45:50.280
you supposed to get a product for
that, but it's really good. There's

665
00:45:50.320 --> 00:45:52.760
a browser plug in for Google.
Well that's the truth. I think it's

666
00:45:52.760 --> 00:45:54.880
now no longer you're not going to
buy dedicated hard for that. Your phone

667
00:45:54.920 --> 00:45:58.079
will do it. Yeah. It
just is a thing now, it's a

668
00:45:58.119 --> 00:46:00.519
thing, a new capability being added
to the phone again because it didn't stock

669
00:46:00.599 --> 00:46:05.119
like, it didn't do enough.
So the doomsayers will say, you know,

670
00:46:05.320 --> 00:46:09.320
all these things are being replaced by
a single app and a single interaction.

671
00:46:10.159 --> 00:46:15.880
What you know is everybody else doomed? You know, is this so

672
00:46:15.039 --> 00:46:20.920
disruptive that it's going to cause mayhem? I don't think it's anywhere disrupted than

673
00:46:20.920 --> 00:46:24.400
anything else. Yeah, I agree, you're appreciating the choir, But you

674
00:46:24.400 --> 00:46:28.119
know, there's certainly people out there
who were You know, the story of

675
00:46:28.159 --> 00:46:30.880
the lad Heites, you only go
as far as the Lades were actually a

676
00:46:30.920 --> 00:46:36.559
group of people who very technical people
by the way making They were hand manufacturing

677
00:46:36.559 --> 00:46:40.119
cloth, right with very simple tools. And in came the first steam powered

678
00:46:40.119 --> 00:46:44.760
looms and they smashed them up.
And the thing they never talked about after

679
00:46:44.760 --> 00:46:47.400
that is after that the employer came
back and they talked through how they were

680
00:46:47.400 --> 00:46:52.480
going to train, and all those
folks started running those automated looms. And

681
00:46:52.519 --> 00:46:53.960
the biggest thing to happen is,
yeah, you need a fewer people making

682
00:46:54.039 --> 00:46:59.039
cloth, But cloth became so much
less expensive that people bought more clothes,

683
00:46:59.199 --> 00:47:01.159
right, yeah, and then many
more people employed. Well, the term

684
00:47:01.199 --> 00:47:05.760
ludite is thrown around as someone who
doesn't understand or like technology, and that's

685
00:47:05.800 --> 00:47:08.119
not the case. The Luddites were
very technical. They were they were the

686
00:47:08.199 --> 00:47:13.079
high tech, but they were they
were frightened by the change, by the

687
00:47:13.159 --> 00:47:15.840
change. I have a more recent
example, and that is just the kind

688
00:47:15.880 --> 00:47:19.440
of the emergence of cloud I used
to see a similar kind of reaction from

689
00:47:19.679 --> 00:47:22.559
your old I T pro guys that
were out there in the loading dot grabbing

690
00:47:22.559 --> 00:47:27.079
all those racks of hardware and then
going and racking and loading all that stuff

691
00:47:27.079 --> 00:47:29.280
in, and then they're like,
wait a minute, now that's my job.

692
00:47:29.320 --> 00:47:31.679
My job is doing that. Now
you got some guy with a web

693
00:47:31.679 --> 00:47:37.239
page pushing a button. You have
friends that are fit that I think you

694
00:47:37.280 --> 00:47:39.239
know, I'm talking. We have
several front and I told him, I'm

695
00:47:39.280 --> 00:47:44.079
like, look, I go that
piece goes away. But there's a whole

696
00:47:44.119 --> 00:47:45.800
ton of other stuff now that you
were going to learn and do, and

697
00:47:46.159 --> 00:47:49.920
you were getting to the bottom of
your to do list, right, That's

698
00:47:50.000 --> 00:47:52.440
true. It's not a thing.
It's not a thing. There's so many

699
00:47:52.480 --> 00:47:55.639
more problems to solve now. I
got to I say this on every dot

700
00:47:55.639 --> 00:47:59.079
and I rocks show we've done since
we've been here. And I'll say it

701
00:47:59.079 --> 00:48:04.559
again. The chances of you being
replaced you as a developer being replaced by

702
00:48:04.559 --> 00:48:07.159
an AI are slim to none.
But the chances of you being replaced by

703
00:48:07.159 --> 00:48:15.239
a developer that uses it are high. Not high maybe, but significant enough

704
00:48:15.840 --> 00:48:20.639
so. And there's no excuse for
developers there's no you know, there are

705
00:48:20.639 --> 00:48:24.840
no safety concerns about using an AI
to help you write code, to look

706
00:48:24.840 --> 00:48:29.320
things up, to do research.
You know, they just don't ask it.

707
00:48:29.480 --> 00:48:31.400
Whether you should ask your boss for
a raise, you know, that's

708
00:48:32.280 --> 00:48:36.480
that's not ken If you want it's
just the you still have to live with

709
00:48:36.519 --> 00:48:40.360
the consequences, that's right. Yeah, you may get bad advice, but

710
00:48:40.760 --> 00:48:44.280
you won't get bad code. And
if you get bad code, just ask

711
00:48:44.360 --> 00:48:46.480
again. Yeah, try it again. I've been here's a trick, ask

712
00:48:46.519 --> 00:48:51.320
it to comment your code that it
generates. I'm all in. Yeah,

713
00:48:51.440 --> 00:48:53.880
the last eighteen months I even used
it, and the good HELB copilot is

714
00:48:53.920 --> 00:48:59.719
a great example. I needed to
I needed to retrain learning Python. Yeah.

715
00:49:00.119 --> 00:49:02.480
I've been a c sharp developer for
you know, as long as it's

716
00:49:02.480 --> 00:49:06.239
been around in two thousand and two, I guess right, and even before

717
00:49:06.280 --> 00:49:08.679
then, of course other Microsoft technologies, and I go back to VB back

718
00:49:08.679 --> 00:49:13.519
in the nineties, but me too. This AI space has put a lot

719
00:49:13.519 --> 00:49:16.440
of focus on Python right because,
and I see this with the customers.

720
00:49:16.480 --> 00:49:21.559
A lot of these projects will start
within kind of the data engineering and machine

721
00:49:21.599 --> 00:49:23.800
learning space because it seems to be
that's the center of gravity for a lot

722
00:49:23.800 --> 00:49:28.119
of this machine learning and this space. It is a great language, but

723
00:49:28.159 --> 00:49:30.960
I didn't I was not very fluent
in it, but I needed to learn

724
00:49:30.000 --> 00:49:34.920
it. And I've been using gethub, copilot and the tools in visual Studio

725
00:49:34.920 --> 00:49:37.760
and vis code and elsewhere to help
me retrain, to help me retool myself

726
00:49:37.800 --> 00:49:42.320
so that I could be more productive
writing Python. So you have this assistant

727
00:49:42.360 --> 00:49:45.880
effectively, that's coaching you on writing
your running better. Take this C sharp

728
00:49:45.880 --> 00:49:49.880
code converted Python. Yeah, tell
me comment it, tell me what it's

729
00:49:50.000 --> 00:49:52.920
it's actually briant. You know what
I do now is I write a comment

730
00:49:52.960 --> 00:49:54.760
as to what I wanted to do, and then the Python comes out,

731
00:49:54.880 --> 00:49:59.199
and then it shoots out Python.
I'm like, yeah, that's great.

732
00:49:59.320 --> 00:50:00.840
Yeah. Yeah. I can write
the code and have it commented, or

733
00:50:00.840 --> 00:50:04.920
I can write the comment. It'll
write the code. Yeah, you have

734
00:50:04.960 --> 00:50:07.440
a choice. Is that like schema
first versus code first? Yeah. I

735
00:50:08.440 --> 00:50:13.599
write the comment and it writes code
that also has comments. Yeah, ma'am,

736
00:50:13.920 --> 00:50:15.920
I used it, and I told
you this. I used it for

737
00:50:15.639 --> 00:50:22.000
you know. It would spit out
link statements that were some not readable by

738
00:50:22.039 --> 00:50:25.800
my customer, and so I basically
asked it to you know, split this

739
00:50:25.840 --> 00:50:30.920
out into multiple for loops or whatever
and comment it. And I took that,

740
00:50:30.320 --> 00:50:35.360
commented it. Yeah, and so
you know, above the liuery,

741
00:50:35.440 --> 00:50:37.280
above the link query, this is
what this link query does. Great,

742
00:50:38.079 --> 00:50:43.719
So not only is it solving a
problem, but it's educating my customers,

743
00:50:43.760 --> 00:50:47.639
right. Better documenting, yeah,
much better documentation. Yeah. I think

744
00:50:47.639 --> 00:50:52.519
it was twenty twenty two. My
GitHub annual reports that the primary language I

745
00:50:52.519 --> 00:50:54.199
was writing in that year was Python. Really, I didn't think I was

746
00:50:54.199 --> 00:50:58.159
writing that much Python. As you
know, I munch a lot of data

747
00:50:58.159 --> 00:51:00.960
in my life and buy golly pythons
a bunch of data and so just you

748
00:51:00.960 --> 00:51:04.719
know, use the tool of them. I mean, the second was YAML,

749
00:51:04.760 --> 00:51:07.920
which makes me sadder, and the
third was c sharp. Thank goodness.

750
00:51:07.159 --> 00:51:12.320
Yeah, I'm sorry for your YAML. Yeah. You know, I

751
00:51:12.480 --> 00:51:15.920
run a lot of infrastructure too,
So Yamil's my friends there, you go,

752
00:51:15.199 --> 00:51:19.239
that's a good job. Yeah,
oh well I got I got that

753
00:51:19.239 --> 00:51:21.920
they complain about. It's all good, right. And then it's also so

754
00:51:22.039 --> 00:51:24.639
this reality, it's like you are
not the language you programming, right,

755
00:51:24.719 --> 00:51:28.679
You're the person who solves problems,
and you know, the more tools y

756
00:51:28.719 --> 00:51:32.320
am your toolbox the easier gets that
is the key is a ye. Yeah,

757
00:51:32.480 --> 00:51:37.519
yeah, I'm It's been a long
time since I cared what language I

758
00:51:37.559 --> 00:51:39.039
was working. I'm just trying to
get to the bottom of the problem.

759
00:51:39.079 --> 00:51:44.239
And now the tooling is super good
at helping me. You know, why

760
00:51:44.280 --> 00:51:46.320
am I struggling with this? You
know? And and it'll it'll get you

761
00:51:46.320 --> 00:51:50.280
over the hurdles. This is why
developers, if for no other reason,

762
00:51:50.320 --> 00:51:52.519
should embrace this. Yeah, right, because it's a great robber duck.

763
00:51:52.639 --> 00:51:55.519
Holy man, it's such a good
rubberd to make so much at very least,

764
00:51:55.679 --> 00:51:59.800
yeah, so much more productive.
Yeah, I spent much time testing,

765
00:52:00.079 --> 00:52:04.280
less time just debugging stuff. I'm
getting it just front to end.

766
00:52:04.440 --> 00:52:07.000
It's getting done faster. And here's
the thing, like, you know,

767
00:52:07.000 --> 00:52:09.039
I don't be doomsday, but you
know, if you don't embrace it,

768
00:52:10.239 --> 00:52:15.519
you may it may be to your
detriment. So why not we work in

769
00:52:15.559 --> 00:52:17.800
technology? Why should we not be
embracing that? Sure? Why are you

770
00:52:17.920 --> 00:52:22.360
using an it like you could just
be? When you got into this gig,

771
00:52:22.480 --> 00:52:23.760
you knew it was going to be
changing fast, right, that's what

772
00:52:23.760 --> 00:52:27.239
got you excited about it? Well, yeah, here it is again.

773
00:52:27.320 --> 00:52:30.159
We're turning the crank and it's changing
fast. Using your chromium tip tweezers to

774
00:52:30.280 --> 00:52:36.880
light up electrons anymore either, right, like listen, shout out to right.

775
00:52:38.480 --> 00:52:43.920
Not organizing electrons one at a time
anymore. I can hold B zero

776
00:52:44.000 --> 00:52:50.320
THEREO one zero one zero zero,
just another tool, more automation, more

777
00:52:50.360 --> 00:52:52.400
productivity. Right, and you do. Maybe we'll get a little further down

778
00:52:52.400 --> 00:52:54.559
that list. The joke of courses. Every time we get these things,

779
00:52:54.679 --> 00:52:58.400
list gets longer. Yeah, there's
more to do. There's so much more

780
00:52:58.400 --> 00:53:00.800
to do. Mark Brown, thank
you. It's been a great pleasure talking

781
00:53:00.840 --> 00:53:04.880
to you, and this is great
stuff. I love talking to you guys.

782
00:53:05.039 --> 00:53:07.679
Thanks for having me back on.
I'm glad I could be your closer

783
00:53:07.760 --> 00:53:12.679
for this build for it absolutely.
Thank you friend, all right, and

784
00:53:12.719 --> 00:53:37.679
we'll talk to you next time on
dot net rocks. Dot net rocks is

785
00:53:37.679 --> 00:53:42.639
brought to you by Franklin's Net and
produced by Pop Studios, a full service

786
00:53:42.719 --> 00:53:46.719
audio, video and post production facility
located physically in New London, Connecticut,

787
00:53:46.920 --> 00:53:52.159
and of course in the cloud online
at PW O P dot com. Visit

788
00:53:52.159 --> 00:53:55.440
our website at d O T N
E t R O c K S dot

789
00:53:55.440 --> 00:54:00.719
com for r s S feeds,
downloads, mobile app comments, and access

790
00:54:00.760 --> 00:54:06.159
to the full archives going back to
show number one, recorded in September two

791
00:54:06.239 --> 00:54:08.800
thousand and two. And make sure
you check out our sponsors. They keep

792
00:54:08.880 --> 00:54:13.519
us in business. Now go write
some code. See you next time.

793
00:54:14.400 --> 00:54:22.000
You got jad middle Vans the

