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
