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:10.519
a patron For just five dollars a
month you get access to a private RSS

3
00:00:10.560 --> 00:00:14.560
feed where all the shows have no
ads. Twenty dollars a month will get

4
00:00:14.599 --> 00:00:19.640
you that and a special dot NetRocks
patron mug. Sign up now at Patreon

5
00:00:19.879 --> 00:00:24.280
dot dot NetRocks dot com. Hey, Carl and Richard here with your twenty

6
00:00:24.359 --> 00:00:28.920
twenty four NDC schedule. Will be
at as many NDC conferences as possible this

7
00:00:29.000 --> 00:00:33.359
year, and you should consider it
tending no matter what. Ndcoslow is happening

8
00:00:33.479 --> 00:00:38.600
June tenth through the fourteenth. Get
your tickets at ndcoslow dot com. The

9
00:00:38.679 --> 00:00:43.679
Copenhagen Developers Festival happens August twenty sixth
through the thirtieth. Early bird discount ends

10
00:00:43.719 --> 00:00:51.520
April twenty sixth. Tickets at Cphdevfest
dot com. Ndcporto is happening October fourteenth

11
00:00:51.600 --> 00:00:57.840
through the eighteenth. The early bird
discount ends June fourteenth. Tickets at Ndcporto

12
00:00:57.960 --> 00:01:14.280
dot com. And we'll see you
there, we hope. Hey, welcome

13
00:01:14.319 --> 00:01:17.480
back to dot net rocks. I'm
Carl Franklin, an amateur campbell we are

14
00:01:18.040 --> 00:01:23.359
gearing up for some stuff here are
we not? This is definitely some stuff.

15
00:01:23.519 --> 00:01:26.760
The conferences is coming on again,
right, like we have here there

16
00:01:26.760 --> 00:01:30.120
and Yon it's spring, right,
you have an announcement about dev Intersection,

17
00:01:30.200 --> 00:01:34.040
do you know? Oh? Yes, dev Intersection got moved. We were

18
00:01:34.079 --> 00:01:38.599
supposed to be the second week of
May and now we're down in the second

19
00:01:38.680 --> 00:01:45.560
week of September. So we had
some opportunities there and to do some more

20
00:01:45.640 --> 00:01:48.400
announcement related things. So it was
like, hey, if we could just

21
00:01:48.519 --> 00:01:51.879
move it to September, and we
were able to make a deal with the

22
00:01:52.120 --> 00:01:55.680
MGM Grand So Teta. I know
it's frustrating for a few folks. We've

23
00:01:55.920 --> 00:01:59.640
been trying to help everyone else to
be comfortable and make it reasonable and fair.

24
00:02:00.120 --> 00:02:02.359
But yeah, I'm what it does
to the contents, Dac, you're

25
00:02:02.359 --> 00:02:05.959
gonna be really excited. Yeah,
I'm glad we were able to do this,

26
00:02:06.040 --> 00:02:07.680
so it'd be a much better show
in the fall, I think,

27
00:02:07.759 --> 00:02:13.719
so and so dev intersection dot com. Yeah, all right, Well let's

28
00:02:13.759 --> 00:02:23.439
roll the crazy music for better no
Framework awesome? Alright, man, what

29
00:02:23.439 --> 00:02:30.400
do you got right? This one
came from Appy Next alumni, those trouble

30
00:02:30.479 --> 00:02:36.479
Makers troublemakers Brian McKay, who's always
looking for new AI stuff, as you

31
00:02:36.520 --> 00:02:46.680
know. So this is a an
AI uh enabled or empowered command terminal called

32
00:02:46.759 --> 00:02:50.639
WARP. Go to warp dot dev. Great you are ol holy man.

33
00:02:50.840 --> 00:02:54.280
How about that? Huh warp dot
dev. And so it says WARP is

34
00:02:54.319 --> 00:03:00.000
the terminal reimagine with AI and collaborative
tools for better productivity, and it does

35
00:03:00.000 --> 00:03:02.360
doesn't exist yet. You have to
join the Windows wait list. Oh,

36
00:03:02.400 --> 00:03:07.759
I see you if you're on Windows. But just take a just gander for

37
00:03:07.800 --> 00:03:12.400
a few seconds at what they're doing
there in the terminal. It's like an

38
00:03:12.439 --> 00:03:15.719
animated gift for a little video or
something. Yeah, I just wonder how

39
00:03:15.759 --> 00:03:17.840
real is that? Like I could
make cool texts few out, but I

40
00:03:17.840 --> 00:03:22.639
have to go on the wait list. Yeah yeah, and get this built

41
00:03:22.680 --> 00:03:29.520
with Rust well Orsinovich approves. You
know, it's a pretty low level language.

42
00:03:29.639 --> 00:03:32.280
You know, it sort of straddles
the line a little more safer than

43
00:03:32.319 --> 00:03:37.039
C plus plus, but still that
kind of performance. So I'm laughing because

44
00:03:37.439 --> 00:03:43.039
Rust is making the news. Every
once in a while I see news stories

45
00:03:43.080 --> 00:03:46.960
that Microsoft is not abandoning C sharp
for Rust. You heard it here first

46
00:03:47.120 --> 00:03:51.400
because there was some you know,
there was just some rumors and stuff that,

47
00:03:51.719 --> 00:03:57.120
oh no, there was some c
sharp services in Azure that we're being

48
00:03:57.159 --> 00:04:00.080
rewritten in Rust. Yeah, because
you think about it from Microsoft's perspective,

49
00:04:00.159 --> 00:04:05.840
those services, the less compute they
consume, the less it costs Microsoft to

50
00:04:05.919 --> 00:04:09.599
operate, Right, we should be
thanking them. Well, they could have

51
00:04:09.599 --> 00:04:12.479
rewritten them in C plus plus,
but it would just cost more, So

52
00:04:12.520 --> 00:04:14.960
they rewrite them and Rust. And
it just goes to show you there's a

53
00:04:15.240 --> 00:04:17.839
language for everything out there, right, yeah. Yeah, and for macro

54
00:04:17.959 --> 00:04:23.560
you know, super scale cloud stuff
where you can see utilization so high that

55
00:04:23.720 --> 00:04:27.920
every cycle counts, that's worth doing
a rewrite like that. It's just funny

56
00:04:27.920 --> 00:04:30.839
how people react, you know,
Oh my god, Sea sharp is going

57
00:04:30.879 --> 00:04:34.279
away. Yeah, it's not.
There's not one language for exactly all right,

58
00:04:34.279 --> 00:04:38.800
Well that's what I got warped at
dev and check it out at warp

59
00:04:38.879 --> 00:04:42.680
speed on your own time. Now
back to you, Richard, who's talking

60
00:04:42.680 --> 00:04:45.439
to us Grady coppin te for show
eighteen ninety two, pretty recent, the

61
00:04:45.480 --> 00:04:47.519
one we did with Michelle Duke talking
about get Hub co pilot. I think

62
00:04:47.560 --> 00:04:50.800
we'll have a little AI conversation today
and so you know, get hubgup pilot.

63
00:04:50.839 --> 00:04:54.879
It's sort of the original for devs
and Aaron Morgan wrote a bit of

64
00:04:54.920 --> 00:04:57.319
a missive I'm not going to hold
that against you, Eric, because I

65
00:04:57.319 --> 00:05:00.519
thought it was very intelligent, But
he said, I really enjoyed this episode

66
00:05:00.560 --> 00:05:03.399
with Sheell's great is always and I
love the call out to jet Brain's Rider,

67
00:05:03.560 --> 00:05:06.800
as it's often not mentioned when Microsoft
Stack is being discussed. I got

68
00:05:06.800 --> 00:05:11.079
nothing bad to say about jet Brains
or a Rider. They're great. A

69
00:05:11.160 --> 00:05:14.279
large part of my works out of
soci comes from creating a solution from whole

70
00:05:14.319 --> 00:05:17.079
cloth and figuring out the problems as
I go. I'm not a developer because

71
00:05:17.079 --> 00:05:19.920
it pays well, but the fun
of it, the challenge of it,

72
00:05:20.079 --> 00:05:24.959
prompting an AI to generate my vision
doesn't have the same appeal. Although I'm

73
00:05:25.000 --> 00:05:29.279
sure went to my employer since it
means faster delivery, I feel like more

74
00:05:29.319 --> 00:05:30.839
time to be creative. Argument is
a bit of a crock. No employer

75
00:05:30.879 --> 00:05:33.399
is going to say great work or
complete debt. Piece of work early.

76
00:05:33.439 --> 00:05:36.560
Now, think creatively on something else
for the next week and stead it'll be

77
00:05:36.800 --> 00:05:41.199
here's the next task, Get on
with it. I do pay for GPD

78
00:05:41.279 --> 00:05:44.680
for and have basically used it as
a drop in replacement for stack overflow.

79
00:05:44.879 --> 00:05:47.879
I've heard that before. Yeah,
also, as I'm not great with complex

80
00:05:47.920 --> 00:05:51.800
EQL queries and the ability to describe
tables to get a full query back as

81
00:05:51.839 --> 00:05:56.800
a massive time saver, I also
use sveelt, and to Carl's point,

82
00:05:57.079 --> 00:06:00.639
I know just not to ask for
anything on sveelt because it's of the project.

83
00:06:00.680 --> 00:06:02.040
But the twenty twenty one is largely
they have no use of me today.

84
00:06:02.199 --> 00:06:06.399
Yep. But I sit here having
refactored a JavaScript function that I couldn't

85
00:06:06.399 --> 00:06:11.759
find the solution to using Google.
After dropping in the function signature, GPT

86
00:06:11.839 --> 00:06:14.959
said that I needed to use a
type alias and gave an example. So

87
00:06:15.000 --> 00:06:18.319
I've learned what a type alias is
typescript. The code is tidier and more

88
00:06:18.360 --> 00:06:21.680
maintainable, and I don't feel like
I didn't code the method. I think

89
00:06:21.680 --> 00:06:25.560
this is the crux of it.
I enjoy learning new development things, and

90
00:06:25.600 --> 00:06:29.720
this aspect of work being diminished with
AI auto prompting. Yeah, I don't

91
00:06:29.720 --> 00:06:32.079
see how it was diminished at all. I think you had a very polite

92
00:06:32.160 --> 00:06:36.519
rubber duck helping you there. Yeah. Well, the problem comes when chat

93
00:06:36.560 --> 00:06:43.720
GPT offers solutions that are old,
right, and you go and you look,

94
00:06:43.800 --> 00:06:46.879
and I just did this the other
day. It offered a solution and

95
00:06:46.920 --> 00:06:49.079
I went and I checked it out, checked out the nugat packages that it

96
00:06:49.160 --> 00:06:54.279
suggested, and they've been deprecated.
And so I said, hey, these

97
00:06:54.360 --> 00:06:57.399
packages have been deprecated. Is there
anything else? And it's like, oh,

98
00:06:57.480 --> 00:07:01.240
yes, more modern design. Would
you use this? You know?

99
00:07:01.279 --> 00:07:03.800
Okay, why didn't you tell me
that in the first place, you idiot.

100
00:07:04.439 --> 00:07:09.160
So Aaron wraps up with I want
to use AI like a pod of

101
00:07:09.240 --> 00:07:13.879
nearby co workers that don't mind being
interrupted. Beautiful description, But I don't

102
00:07:13.879 --> 00:07:15.720
want to use AI like I'm a
project manager directing a team of devs who'll

103
00:07:15.759 --> 00:07:19.439
do my bidding, but ultimately reading
disconnected for the process of development. I

104
00:07:19.480 --> 00:07:23.759
feel like in the long run,
AI coding will be a bit of a

105
00:07:23.759 --> 00:07:28.279
pyrrhic victory to the personal satisfaction and
sense of fulfillment we get from working as

106
00:07:28.319 --> 00:07:30.000
software engineers. I don't know,
you know, in the end, I

107
00:07:30.040 --> 00:07:34.839
was trying to get to the solution
too, you know. I'm not opposed

108
00:07:34.879 --> 00:07:38.319
to power apps for the same reason
A lot of people go, oh my

109
00:07:38.360 --> 00:07:41.199
god, no code Are you crazy. It's like I'm just trying to deliver

110
00:07:41.279 --> 00:07:44.560
results, man, right, that's
what's important. Yep, So Aerin,

111
00:07:44.560 --> 00:07:46.040
thank you so much for your comment. A copy of music codey is on

112
00:07:46.079 --> 00:07:48.000
its way to you. And if
you'd like a copy of music Code by

113
00:07:48.000 --> 00:07:50.839
I read a comment on the website
at don at Rocks dot com or on

114
00:07:50.879 --> 00:07:54.000
the facebooks. We publish every show
there and if you comment there and a

115
00:07:54.079 --> 00:07:56.600
reading on the show, we'll send
you copy of music Code. And we

116
00:07:56.720 --> 00:07:59.759
definitely like to see you on Twitter. Of course, we've been there for

117
00:07:59.800 --> 00:08:03.680
a long time or x or whatever
it is today, but the real cool

118
00:08:03.759 --> 00:08:07.439
kids are hanging out. I'm Mastodon. I'm at Carl Franklin at tech hub

119
00:08:07.480 --> 00:08:09.879
dot social, at average Campbell at
Masodon dot social, and of course you

120
00:08:09.920 --> 00:08:13.480
can find all the ways you can
contact me at Carl Franklin dot com.

121
00:08:15.240 --> 00:08:18.879
Okay, let's get to our guest
today. Really excited to have Carl guides

122
00:08:20.000 --> 00:08:26.319
on. He is a freelance software
architect and developer owner of Kobasoft GmbH.

123
00:08:26.879 --> 00:08:30.839
Is Carl. Is there an acronym
way to say that? Do you say

124
00:08:30.879 --> 00:08:37.039
gumba or do you just say GmbH? Ohh okay, like we say inc

125
00:08:37.320 --> 00:08:41.519
for incorporated r LLC. All right, So that's at Kobasoft dot Net Coba

126
00:08:41.759 --> 00:08:46.080
s o ft dot net building advanced
applications for their clients with c sharp,

127
00:08:46.200 --> 00:08:52.200
SQL and web technologies. He has
been working for Microsoft, Siemens Carl Zeis

128
00:08:52.200 --> 00:08:58.600
microscopy, banks and industry. His
main topics are c sharp web standards,

129
00:08:58.679 --> 00:09:03.759
generators, performance and accessibility. He's
currently working on an IoT project with sensor

130
00:09:03.879 --> 00:09:09.480
data, flexible calculations and the ClickHouse
database, and a large in house application

131
00:09:09.600 --> 00:09:16.639
for an industrial client with asp net
SQL server, CRM document Management, product

132
00:09:16.679 --> 00:09:20.720
planning, materials and management. He's
author of cobosoft log, a fast and

133
00:09:20.759 --> 00:09:26.879
easy to use logging library and log
viewer, and he's using naturally speaking intensely.

134
00:09:28.480 --> 00:09:33.879
He's been since two thousand and two. Welcome Carl, and you're a

135
00:09:33.919 --> 00:09:35.919
longtime dot net rocks listener, are
you not, Yes, it's about two

136
00:09:35.960 --> 00:09:41.799
thousand and six. My started programing
with Fishop about two thousand and two two

137
00:09:41.840 --> 00:09:46.440
thousand and three, and later I
discovered your podcast and then enjoyed it a

138
00:09:46.440 --> 00:09:48.919
lot. Yeah, and the kind
of things that you're into, you're kind

139
00:09:48.919 --> 00:09:52.639
of a generalist. It looks like
you know, you're all over the map.

140
00:09:52.080 --> 00:09:54.879
You do a lot of things.
Yes, yeah, very cool.

141
00:09:56.000 --> 00:10:01.200
So we're talking about AI in speech
and all of that stuff, and you've

142
00:10:01.240 --> 00:10:05.879
been it says you've been using Dragon
Naturally Speaking, which you know isn't.

143
00:10:05.039 --> 00:10:09.399
I don't know if it was,
it'd be considered AI. But it's certainly

144
00:10:09.240 --> 00:10:13.720
been around a long time and did
a really really good job, and I

145
00:10:13.720 --> 00:10:18.080
guess still does. Does Naturally Speaking
use AI on the back end? Now,

146
00:10:18.519 --> 00:10:22.960
yes, it is the two versions. So it's a testa person and

147
00:10:22.039 --> 00:10:28.480
so cloud version and so Cloud version
is AI based, but it is more

148
00:10:28.480 --> 00:10:33.600
an AI targeted to voice recognition.
It's not like a check chippity, it's

149
00:10:33.759 --> 00:10:37.559
just to improve the quality. Right. Remember that story I told of the

150
00:10:37.840 --> 00:10:41.879
African gray parrot named Timmy that we
wired up at the X ten that was

151
00:10:41.919 --> 00:10:48.799
a Dragon Naturally Speaking board in the
in the nineties hard hardware. Yeah cool.

152
00:10:50.320 --> 00:10:52.360
Yeah, So he doesn't know that
story, but basically Richard had a

153
00:10:52.399 --> 00:10:56.720
parrot with his friends and they they
taught it to, you know, shut

154
00:10:56.759 --> 00:11:01.519
the blinds and turn on the TV
with the naturally speaking turn off its own

155
00:11:01.919 --> 00:11:05.080
on its own lights. So you
know, you just wanted to let the

156
00:11:05.240 --> 00:11:07.840
parent have control of environment. We
just didn't know the parrot like to go

157
00:11:07.879 --> 00:11:11.919
to bed early. He'd shut everything
off at like seven, and if you

158
00:11:11.919 --> 00:11:13.200
try to turn it back off,
he'd turned it back off again. I

159
00:11:13.240 --> 00:11:16.120
remember you saying he used to do
the car alarm. Oh yeah, he

160
00:11:16.679 --> 00:11:20.120
need car alarms perfectly because didn't matter
what time of the day or night.

161
00:11:20.159 --> 00:11:24.600
If he did the car alarm,
you got up. Very cool, So,

162
00:11:24.919 --> 00:11:28.320
Jimmy, yeah, you could do
the same with the naturally Speaking.

163
00:11:28.440 --> 00:11:33.879
You could do your house automation and
connective access to it and so on,

164
00:11:33.919 --> 00:11:37.919
because it's programma a programma. So
yeah, So you use naturally speaking because

165
00:11:39.039 --> 00:11:41.080
it's the best thing that has been
out there, or you've been using it

166
00:11:41.120 --> 00:11:46.039
a long time or both both.
Yes, I hadn't RSI a long time

167
00:11:46.080 --> 00:11:50.759
ago, say about two thousand and
four, and then I started using speech

168
00:11:50.840 --> 00:11:54.879
input. I later solved this problem, but did the speech input proved to

169
00:11:54.919 --> 00:11:58.639
be very helpful to me. And
so, as you know, you can

170
00:11:58.759 --> 00:12:03.480
use it for basic dictator, but
it is also possible to use it for

171
00:12:03.559 --> 00:12:07.720
programming, for example, And this
is what I do in a lot.

172
00:12:09.200 --> 00:12:11.759
I'm using it together, like for
example, the chet chippyt say, I've

173
00:12:11.799 --> 00:12:16.679
got my chet chippydy window here open, and instead tape of typing all the

174
00:12:16.759 --> 00:12:20.840
long prompts, I can just dictate
the prompts right, And so it's way

175
00:12:20.879 --> 00:12:28.679
faster. It's like it's more like
community communication. Yes, I've telled it

176
00:12:28.759 --> 00:12:33.440
something presenter, it responds. You
could even let it read the response,

177
00:12:33.759 --> 00:12:37.960
but I'm not using it. It
would take longer. Yeah, yeah,

178
00:12:37.000 --> 00:12:41.159
I think we can read faster than
we can listen, right a lot.

179
00:12:41.600 --> 00:12:46.559
Yeah. Interestingly, Mark Miller was
spent the weekend at my house this last

180
00:12:46.559 --> 00:12:50.600
weekend and he was showing me something
he's going to show off at build in

181
00:12:50.759 --> 00:12:56.679
Code Rush, which is basically speech
commands, like you hold down the control

182
00:12:56.759 --> 00:12:58.759
key televisual studio what you want to
do, and it does it, and

183
00:12:58.840 --> 00:13:05.240
you can even there's even macros to
write code and things like that. It's

184
00:13:05.279 --> 00:13:11.080
just unbelievable. I've heard about this, But naturally speaking is much more flexible.

185
00:13:11.240 --> 00:13:15.759
You can use it for any application, so you could control Windows or

186
00:13:16.279 --> 00:13:20.399
text processing or even visual studio or
whatever you like. And so I've got

187
00:13:20.440 --> 00:13:26.159
a lot of commands, like thousands
or so, and i can controlling nearly

188
00:13:26.200 --> 00:13:30.039
everything like when I start when I'm
using visual Studio, I can say okay,

189
00:13:30.360 --> 00:13:33.679
build solution, and it will just
build my solution. Yeah, and

190
00:13:33.720 --> 00:13:35.879
so on. Or if I want
to insert the statement, if statement,

191
00:13:37.000 --> 00:13:41.200
I say the properate command and we'll
just type it and it doesn't matter if

192
00:13:41.240 --> 00:13:46.080
it's one line or one hundred lines. So are you actually speaking code or

193
00:13:46.080 --> 00:13:52.720
you're giving commands the studio both.
It's it's completely flexible. Say the simplest

194
00:13:52.799 --> 00:13:58.039
use would be the just for documentation. Say I've got a summary head above

195
00:13:58.120 --> 00:14:03.480
my method, and I would just
dictate the summary instead of typing it out.

196
00:14:03.600 --> 00:14:07.960
The moves my hands and it's way
faster. It's really as fast as

197
00:14:07.960 --> 00:14:13.000
we are talking right now. Probably
write longer comments that way because because the

198
00:14:13.039 --> 00:14:16.480
other side of this is you're also
effectively manifesting what you're going to code by

199
00:14:16.519 --> 00:14:20.320
describing it. Yeah, exactly.
I got a question about microphones. I

200
00:14:20.360 --> 00:14:24.759
noticed that you're using like a dictation
kind of microphone with you know, the

201
00:14:24.840 --> 00:14:31.799
MC comes over to your mouth headset, but I use the I have an

202
00:14:31.879 --> 00:14:37.840
Amazon Echo here and it's been pretty
good about being able to pick up things

203
00:14:37.840 --> 00:14:41.320
across the room. You can even
whisper to it. And I never had

204
00:14:41.360 --> 00:14:46.000
that experience with any Windows based kind
of you know, just using a regular

205
00:14:46.039 --> 00:14:52.840
microphone. Do you think that there's
like stuff in there to cancel noise and

206
00:14:52.080 --> 00:14:56.440
you know, figure out exactly what
I mean. That's the thing that's great

207
00:14:56.440 --> 00:15:00.679
about Echo. Do you do you
always use this headset or have you found

208
00:15:00.759 --> 00:15:05.879
other microphones that work with ambients,
you know, like an ambient microphone.

209
00:15:05.240 --> 00:15:09.600
I think it's exactly as you say, so AMASO and Alexa will have some

210
00:15:09.639 --> 00:15:15.720
noise canceling and additional tools to improve
the noise quality. But the big difference

211
00:15:15.799 --> 00:15:22.559
is that Alexa has to listen to
say hundreds of words, and naturally speaking

212
00:15:22.679 --> 00:15:30.440
vocabularies about hundreds of thousands of words, so there's some much bigger risk for

213
00:15:30.600 --> 00:15:35.200
errors. So it's easily to confuse
a personal name with the standard world and

214
00:15:35.240 --> 00:15:39.120
so on. And I've noticed the
same thing with that girl. Yeah yeah,

215
00:15:39.200 --> 00:15:41.480
yeah, yeah. Ask it a
question and it gives you an answer

216
00:15:41.519 --> 00:15:43.919
based on something you didn't even say. Okay, yeah, but it answers

217
00:15:45.000 --> 00:15:50.279
enthusiastically, oh yeah, correctly,
and it won't stop. I brought it

218
00:15:50.320 --> 00:15:54.639
into the house and Kelly got used
to it. But after a while,

219
00:15:54.679 --> 00:15:58.159
you know, when I say a
she starts to give it the keyword and

220
00:15:58.200 --> 00:16:04.600
then stop to stop barking. Kelly
says, shut up, and it works.

221
00:16:04.799 --> 00:16:07.840
But hearing lies the real issue.
I find what you know, watching

222
00:16:07.919 --> 00:16:11.600
voice systems being used in general,
people don't mind it if it works the

223
00:16:11.600 --> 00:16:15.720
first time, but as soon as
it doesn't work the first time, then

224
00:16:15.759 --> 00:16:18.879
they feel done using it, so
they don't want to use it anymore.

225
00:16:18.440 --> 00:16:22.399
Yeah, you're right. This was
the case like ten years ago or fifteen

226
00:16:22.440 --> 00:16:26.600
years ago. When you started dictation, you really had to this is my

227
00:16:26.919 --> 00:16:32.120
next sentence. You know, you
had to be very except on your pronunciation

228
00:16:32.279 --> 00:16:38.399
and gaps between the words. Nowadays
it just like talking. It would it

229
00:16:38.440 --> 00:16:42.559
would normally transcribe what we are saying. Now you can just record it and

230
00:16:42.639 --> 00:16:47.960
it would transcribe the text. And
so so they've actually changed the underlying model

231
00:16:48.159 --> 00:16:52.960
in naturally speaking, to use the
more contemporary libraries. Yeah, nearly every

232
00:16:52.039 --> 00:16:56.720
version, say, whenever you got
a new version from twelve to thirteen or

233
00:16:56.720 --> 00:17:02.799
fourteen, fifteen sixteen, it always
improved recognition quality because I remember having to

234
00:17:02.879 --> 00:17:07.240
train a dragon board back in the
day, and then you know that just

235
00:17:07.240 --> 00:17:10.640
sort of went away almost a decade
ago when you think about Siri and so

236
00:17:10.720 --> 00:17:14.119
forth, like training was longer needed. Yeah, you're right when theow speech

237
00:17:14.160 --> 00:17:18.079
wants you to train it to speak
the paragraphs and stuff, and all of

238
00:17:18.119 --> 00:17:22.759
these things now that are cloud based, like even Google Speech recognition is great.

239
00:17:22.839 --> 00:17:27.000
I mean it just uses the cloud, but it doesn't doesn't require training.

240
00:17:27.640 --> 00:17:33.119
Do you have a keyword that you
say, like when I use the

241
00:17:33.119 --> 00:17:36.920
Amazon Echo or do you just press
a particular button when you want to give

242
00:17:36.920 --> 00:17:41.200
a command? No, it's normally
it's turned on when I'm working. So

243
00:17:41.759 --> 00:17:45.880
I have a special keyboard button,
but it's really you can define any buttons

244
00:17:47.000 --> 00:17:49.400
as this button. So I've got
a keyboard button. When I press it,

245
00:17:49.319 --> 00:17:53.240
it will turn onto microphone. And
then when it's running, you can

246
00:17:53.240 --> 00:17:57.039
say okay, microphone off, and
then it's off and you have to press

247
00:17:57.039 --> 00:18:00.039
the button again. But you can
say okay, go to sleep, then

248
00:18:00.400 --> 00:18:03.319
continue listening. They say okay,
wake up. Then it will come back

249
00:18:03.319 --> 00:18:07.599
again. So it's more less like
I say, but when I'm really working,

250
00:18:07.599 --> 00:18:11.359
it's turned on all the time.
Are you worried that somebody's gonna like

251
00:18:11.440 --> 00:18:15.279
barge into the room and say,
you know, order five thousand pounds of

252
00:18:15.319 --> 00:18:19.400
cement from Amazon. You know,
it doesn't have this kind of connection.

253
00:18:19.480 --> 00:18:22.680
It just will type it out.
Has that ever happened to you, though?

254
00:18:22.720 --> 00:18:26.559
Has somebody like gotten in the room
and tried to screw everything up for

255
00:18:26.640 --> 00:18:29.839
you as a joke? No,
Once I met a big error. I

256
00:18:29.920 --> 00:18:34.000
dictated in English a Trauman text and
this was very bad. Oh that must

257
00:18:34.039 --> 00:18:38.759
be interesting and that without checking it
okay, but we're not never do it

258
00:18:38.759 --> 00:18:42.119
again. That's pretty funny. Well, do you know there's another aspect of

259
00:18:42.119 --> 00:18:45.839
this that I'm that appeals to me, which is that visual studio is a

260
00:18:45.960 --> 00:18:51.119
difficult application to navigate. You know, it's like the cockpit of a seven

261
00:18:51.240 --> 00:18:55.240
forty seven in there and then and
the number of times I know it can

262
00:18:55.319 --> 00:18:59.640
do this thing, I just can't
find the menu item. So the idea

263
00:18:59.640 --> 00:19:03.400
that I could say this is what
I want to do it and the speech

264
00:19:03.440 --> 00:19:07.279
control system that can navigate the tool
for me, that's very compelling. Like

265
00:19:07.319 --> 00:19:12.000
that's a ton of time saved rather
than flailing around in MANYUS. Yeah,

266
00:19:12.160 --> 00:19:17.279
that's exactly the point. Say I
would say okay, synchronized class feew and

267
00:19:17.319 --> 00:19:21.559
it would pop up the class feel
for the current class or method and similar

268
00:19:21.599 --> 00:19:26.599
stuff. Okay, show Solution Explorer
it would show the solution SPRA or debugging

269
00:19:26.640 --> 00:19:30.279
Locals it would show the debugging Locals
window. So it's like I've wrote it

270
00:19:30.319 --> 00:19:33.640
in my email. It's like a
third hand. Keep my right hand on

271
00:19:33.680 --> 00:19:37.279
the mouth and the left hand on
the function keys for example, and all

272
00:19:37.400 --> 00:19:41.680
the typing would be done by naturally
speaking by the voice. How where did

273
00:19:41.720 --> 00:19:45.160
those hooks come from? Did you
do that or is that already available?

274
00:19:47.200 --> 00:19:49.920
It depends on what you're doing.
Say if you were a writer and would

275
00:19:49.920 --> 00:19:55.559
write a book, you would have
thousands of commands already available, like make

276
00:19:55.640 --> 00:19:59.160
that boat or make that italic and
go to the top, go to the

277
00:19:59.200 --> 00:20:03.759
bottom, select word. All of
this is pretty fined and it's working fine.

278
00:20:03.759 --> 00:20:08.200
And let's say Microsoft Word and word
Pad. But when you're having specific

279
00:20:08.559 --> 00:20:14.920
programs, like let's say Visual Studio, you have to define your own commands.

280
00:20:15.079 --> 00:20:18.359
There's no there are no pre build
commands. But on the other hand,

281
00:20:18.400 --> 00:20:22.599
it's very easy to do. It's
like a huge shortcut manager. You

282
00:20:22.640 --> 00:20:29.119
can you can write or dictate a
command name and the end. Then for

283
00:20:29.200 --> 00:20:33.640
example, you assign keystrokes and it
would just repeat the keystrokes, but it's

284
00:20:33.680 --> 00:20:37.559
a little bit advanced though. You
can say okay, press all a,

285
00:20:37.000 --> 00:20:41.440
then wait half a second, then
press Charlie and so on, so it's

286
00:20:41.519 --> 00:20:48.920
like a huge keystroke macro manager.
But you you don't have to remember remember

287
00:20:48.039 --> 00:20:53.279
any keystrokes for triggering it. You
just say the command once you've done it,

288
00:20:53.279 --> 00:20:57.720
once you have. Have you ever
had the situation where a new version

289
00:20:57.759 --> 00:21:03.359
of visual Studio remaps key strokes or
changes them. I've got my own mapping,

290
00:21:03.400 --> 00:21:07.759
which are usually key but yes,
but it's easy to adapt. It's

291
00:21:08.319 --> 00:21:12.279
a matter of seconds you've adapted it. So you don't find that managing naturally

292
00:21:12.319 --> 00:21:15.519
speaking takes more time than you think
it should. No, not at all,

293
00:21:15.880 --> 00:21:22.039
not at all. There's a command
browser. You can see all the

294
00:21:22.079 --> 00:21:26.680
commands. Basically, you've got two
lists of commands. You've got you've got

295
00:21:26.720 --> 00:21:30.480
the build in commands, and there's
a browser for these, and you've got

296
00:21:30.480 --> 00:21:33.799
your own commands, and there's also
a browser, and it's very easy to

297
00:21:33.960 --> 00:21:40.400
manage. I bet with co pilot
this makes a killer combination, right because

298
00:21:40.440 --> 00:21:44.279
now you can just speak a comment
and then Copilot will actually write the code

299
00:21:44.279 --> 00:21:47.839
and you don't have to sit there
going for each blah blah blah. Right,

300
00:21:47.920 --> 00:21:49.920
yeah, but for each statements are
a micro for me, I just

301
00:21:51.000 --> 00:21:53.319
say okay, state for each and
it will inserts a complete forage statement.

302
00:21:53.880 --> 00:21:59.519
And that's with other stuff as well, So like if statements or standard HTML

303
00:21:59.640 --> 00:22:03.920
marker or on any of this stuff
I've got on a command. But your

304
00:22:03.920 --> 00:22:08.039
macros don't know anything about the code
that you're writing. The co pilot does.

305
00:22:10.519 --> 00:22:14.440
Yeah, so are you finding yourself
using co pilot with naturally speaking more?

306
00:22:14.480 --> 00:22:19.440
Now, I'm saying when code pilot
presensive solution to me, I have

307
00:22:19.519 --> 00:22:25.680
to think about his suggestions and normally
it takes more time than to just write

308
00:22:25.680 --> 00:22:29.440
it down because I'm very fast.
I'm doing this for many years. Now.

309
00:22:29.480 --> 00:22:33.079
Do you have any videos of yourself
writing code with naturally speaking that we

310
00:22:33.119 --> 00:22:37.440
can see? I don't have any. I'm really really my interest is peaked

311
00:22:37.480 --> 00:22:41.519
here. I could create one.
Wow. Okay, well, if you

312
00:22:41.559 --> 00:22:44.000
create one, we'll put a link
to it in the show notes. Okay,

313
00:22:44.119 --> 00:22:47.000
it's fascinating. Just yeah, like
you said, one hand on the

314
00:22:47.000 --> 00:22:49.319
function keys, one hand on the
mouse, and all the texts you're just

315
00:22:49.359 --> 00:22:52.880
saying it. Yeah, So it's
you know, you literally have a separate

316
00:22:53.279 --> 00:22:57.279
tool now to to keep these movies
or your hands aren't bouncing back and forth.

317
00:22:57.480 --> 00:23:02.559
Yeah, and it's much faster.
I'm a quite fast typist. I'm

318
00:23:02.599 --> 00:23:07.400
not slow, but this thing is
still a lot faster. Instead of typing

319
00:23:07.440 --> 00:23:10.680
single characters, you get complete words, right, all right, So how

320
00:23:10.680 --> 00:23:15.039
would you say? How would you
say, use a link statement to pull

321
00:23:15.079 --> 00:23:18.200
a variable out from this list where
this property value is between this value and

322
00:23:18.240 --> 00:23:25.440
that value. I would more less
dictate it as it's written, like a

323
00:23:25.519 --> 00:23:32.039
state variable index, equal sign,
dictionary, empty brackets and so on.

324
00:23:32.519 --> 00:23:34.160
Okay, so you really are writing, So there is a point where you

325
00:23:34.240 --> 00:23:37.839
have to dictate character by character code, Yes, depending on what I'm doing.

326
00:23:37.920 --> 00:23:41.960
Yes, what about moving the cursor
around like you've got to go back

327
00:23:41.000 --> 00:23:45.759
and change your phrase? I guess
that's the mouse's job. You can still

328
00:23:45.799 --> 00:23:48.240
do that with keyboard with that barron, left, arrow and tab. And

329
00:23:48.680 --> 00:23:52.359
yes, I'm using the mouse and
a keyboard as usually, but it is

330
00:23:52.400 --> 00:23:57.079
possible to control the mouths and the
keyboard with naturally speaking, you can say,

331
00:23:57.079 --> 00:24:03.119
okay, go left five, or
say you want to go ten lines,

332
00:24:03.279 --> 00:24:07.839
go down ten, and so it's
easier than pressing the Donkey ten times

333
00:24:07.079 --> 00:24:11.519
for sure. Yeah. So here's
another question, but not by much.

334
00:24:11.160 --> 00:24:17.400
Here's another question. Do you sell
your macro library like your mappings? No?

335
00:24:18.559 --> 00:24:22.480
Would you want to? Because I
think people listen to this want to

336
00:24:22.480 --> 00:24:26.680
mind, Yes, sir, why
not? Now you're into the accessibility space

337
00:24:26.720 --> 00:24:30.720
in general, which is screen readers
and like hardware dedicated for folks that have

338
00:24:30.839 --> 00:24:34.240
limitations in certain areas. Are you
using any of that in your own work?

339
00:24:34.440 --> 00:24:40.440
Yes, I've been using it.
I had a rs I U many

340
00:24:40.519 --> 00:24:44.000
years ago, as I said previously, Yeah, and for some time I

341
00:24:44.039 --> 00:24:48.519
really was using naturally speaking to control
everything just to save your wrists. Yeah,

342
00:24:48.559 --> 00:24:52.960
and I couldn't even shower. It
was very bad. And you had

343
00:24:52.000 --> 00:24:56.799
bad rs I. Friend, that's
serious, like it hurts all the time.

344
00:24:56.920 --> 00:25:00.480
Okay, can you just explain what
RSI is repetitive stress? Insure you're

345
00:25:00.519 --> 00:25:04.599
okay? So again, our friend
Mark Miller was very big on always wearing

346
00:25:04.599 --> 00:25:10.799
the races to reduce This is essentially
caused by the tendons in your hand a

347
00:25:10.920 --> 00:25:15.559
brady against the sheaths in your wrist
to the point where they inflame and puff

348
00:25:15.680 --> 00:25:19.960
up enough that they burn all the
time. It's it's agonized Wow. So

349
00:25:21.039 --> 00:25:22.720
I know, as a guitar player, if I write a lot of code,

350
00:25:22.839 --> 00:25:26.599
if I'm coding all week, right, and then I go try to

351
00:25:26.640 --> 00:25:30.079
play without practicing or warming up,
my fingers don't know what to do.

352
00:25:30.000 --> 00:25:33.559
And so you know it kind of
is appealing to me. But does it

353
00:25:33.640 --> 00:25:37.480
hurt like this, No, it
doesn't hurt. But they just don't do

354
00:25:37.559 --> 00:25:38.839
what you want them to do,
Like they don't move. You know,

355
00:25:38.880 --> 00:25:42.839
your brain isn't used to sending the
signals to play a scale. It's used

356
00:25:42.839 --> 00:25:47.640
to sending the signals to spell your
name or your email chests. It's a

357
00:25:47.720 --> 00:25:51.559
very different motion. But and I
would argue, because you switch between those

358
00:25:51.599 --> 00:25:56.200
different motions, your hands are in
better shape. Yeah, you're probably right,

359
00:25:56.279 --> 00:25:59.720
right. The problem with typing,
all this typing all the time is

360
00:25:59.720 --> 00:26:03.119
it's the same motions over and over. It's repetitive. Right. Plus there's

361
00:26:03.119 --> 00:26:08.640
also a whole conversation about wrist angles
and and keyboard heights related to the table

362
00:26:08.720 --> 00:26:14.640
to share heights, like that ergonomics
of minimizing stress on your rest because once

363
00:26:14.680 --> 00:26:19.119
you go down that inflammation path forever, will it haunt your destiny? Like

364
00:26:19.920 --> 00:26:25.200
as soon as as soon as your
wrists start to be inflamed. Like everything,

365
00:26:25.279 --> 00:26:27.480
it gets worse and worse and worse. Yeah, there are two points,

366
00:26:27.480 --> 00:26:32.319
so and you mentioned one of them
already. At this time I had

367
00:26:32.319 --> 00:26:37.079
the PIT twelve deficiency and it was
measured and a lap and so I substituted

368
00:26:37.119 --> 00:26:41.200
it. And it improves the situation
a lot because pit twelve goes on all

369
00:26:41.279 --> 00:26:48.000
the sheds like nerve, fair and
shes and and you know it's it causes

370
00:26:48.039 --> 00:26:52.480
inflammation when it's missing. Yeah,
and the other point is missing plot flow.

371
00:26:52.759 --> 00:26:59.400
So the hands are not exercised enough. It's this repetitive, repetitive movement

372
00:26:59.480 --> 00:27:02.799
which all it's the same, but
it doesn't really use the hands. And

373
00:27:02.839 --> 00:27:07.400
so so as a solution for me
was to do some training, heavy weights

374
00:27:07.440 --> 00:27:12.000
training, and this helped a lot. This really hap It will hurt initially.

375
00:27:12.039 --> 00:27:17.279
It will hurt initially because there's an
inflammation, but on so long run

376
00:27:17.359 --> 00:27:22.440
it will improve. That's a flow
of blood and lymph fluid, and so

377
00:27:22.279 --> 00:27:26.960
I don't have this problem anymore.
Physiologically, typing is bizarre. It is

378
00:27:27.039 --> 00:27:33.240
kind of right to just flex the
tendons while not moving the arm almost at

379
00:27:33.279 --> 00:27:37.680
all, Like it's very your body
wasn't built for this. This is crazy,

380
00:27:37.160 --> 00:27:41.839
So I mean the whole I'm a
big Pomadoro fan like that. Twenty

381
00:27:41.920 --> 00:27:44.559
minutes, get up, move around, and so forth. That's about just

382
00:27:44.599 --> 00:27:48.920
making your blood move right, arms
over your head, arms down like that.

383
00:27:48.200 --> 00:27:52.039
All that's making blood move, which
does not happen when you're hovering over

384
00:27:52.079 --> 00:27:57.400
the keyboard. The problem is you
get in the groove and four hours go

385
00:27:57.519 --> 00:28:00.680
by, yep, and you're a
couple of happy exactly where you're sitting.

386
00:28:00.880 --> 00:28:04.039
The moment you move in any way, you're like, I'm in agony,

387
00:28:04.119 --> 00:28:08.759
like everything hurts you get up and
you didn't realize your assert that much and

388
00:28:08.839 --> 00:28:14.160
now I'm struggling to get up right
and because you just you've been in the

389
00:28:14.279 --> 00:28:19.640
zone. Are there situations where you're
using software apart from visual Studio software that

390
00:28:19.680 --> 00:28:26.680
you're trying to automate and there are
things that are only menu options or buttons

391
00:28:26.720 --> 00:28:30.839
that you have to click. There
are no keyboard shortcuts. What do you

392
00:28:30.880 --> 00:28:34.000
do in that situation? If it
has no keyboard trot cut at all,

393
00:28:34.039 --> 00:28:38.640
it's a little bit harder. But
there's the second way. The program can

394
00:28:38.759 --> 00:28:44.839
recognize certain screen elements like, for
example, standard buttons or proser buttons and

395
00:28:44.880 --> 00:28:49.480
everything. They say. All of
these are recognized by naturally just speaking itself,

396
00:28:49.559 --> 00:28:52.839
or by its plugins. So when
you're in a standard Windows program,

397
00:28:52.839 --> 00:28:57.279
you can say okay, click open, click safe, click order, and

398
00:28:57.400 --> 00:29:00.000
when you're on a Prouse or you
can all. There are also commands,

399
00:29:00.000 --> 00:29:03.880
for example to list all links,
or list all buttons and so on,

400
00:29:03.920 --> 00:29:07.960
and suse okay, click five or
or click one, and so it will

401
00:29:08.039 --> 00:29:15.640
navigate. But if it's graphics only, application becomes very hard, say a

402
00:29:15.680 --> 00:29:19.640
game, for example, if there
are no standard Windows elements, it's nearly

403
00:29:19.640 --> 00:29:23.359
impossible. Nearly impossible. Yeah,
yeah, interesting, interesting problems. So

404
00:29:23.720 --> 00:29:27.519
just dart a solution to everything.
But this is also where you get into

405
00:29:27.519 --> 00:29:32.839
that accessibility part. Good software has
multiple ways to do a given task because

406
00:29:32.839 --> 00:29:36.759
different people have different abilities. Yeah, exactly, And this is what we're

407
00:29:36.799 --> 00:29:41.519
doing. There are you will know, semantic markup in HTML and this is

408
00:29:41.519 --> 00:29:45.680
the first step. Then there are
all these area at tags and other messets

409
00:29:45.759 --> 00:29:51.559
to get it accessible. And I've
been doing this for some time and know

410
00:29:51.680 --> 00:29:55.720
some more experts in this area.
And then you get the website which is

411
00:29:55.759 --> 00:30:00.920
completely can be navigated by voice,
you can its content, you can everything

412
00:30:00.920 --> 00:30:06.000
by voice. That's cool. We've
and we've done that show right, like

413
00:30:06.079 --> 00:30:10.079
we've talked about access building with both
sides. Okay, hey guys, let's

414
00:30:10.119 --> 00:30:14.240
continue the conversation after this quick break
for some very important messages. We'll be

415
00:30:14.279 --> 00:30:21.920
right backed and we're back. It's
dot Net Rocks. I'm Carl Franklin.

416
00:30:22.119 --> 00:30:26.720
That's Richard Campbell. How do you
And we're talking to Carl geist about doing

417
00:30:26.759 --> 00:30:32.039
everything with speech that you can do
with your hands almost. I do like

418
00:30:32.079 --> 00:30:33.759
the mix. There's some things that
are served well by the hands, and

419
00:30:33.839 --> 00:30:37.559
some things were served well by the
voice, like writing a longer comment because

420
00:30:37.599 --> 00:30:41.519
I can go on and on makes
a lot of sense. Yeah, or

421
00:30:41.599 --> 00:30:44.680
writing a book on the history of
dot net, for example, that might

422
00:30:44.720 --> 00:30:49.240
be a good thing to use.
I don't know the absolutely did I say

423
00:30:49.279 --> 00:31:00.319
something wrong Richard? Anyway? So
so let's talk about some of the practical

424
00:31:00.839 --> 00:31:03.599
things that you're using this for within
visual studio itself. I imagine you've piqued

425
00:31:03.599 --> 00:31:11.119
the interest of our listeners, especially
those you know who might have limited hand

426
00:31:11.160 --> 00:31:17.960
movement. So just give us a
quick example of something that you You mentioned

427
00:31:18.000 --> 00:31:19.839
a couple of macros in the way
that you set up projects and things,

428
00:31:19.880 --> 00:31:26.559
but what are the give us a
run through the how you would typically go

429
00:31:26.880 --> 00:31:30.880
about programming a new app web app. Let's say, like how do you

430
00:31:30.960 --> 00:31:34.799
drag and drop elements from one window
to another? For example? What are

431
00:31:34.799 --> 00:31:40.319
some of the more challenging things for
drag and drop? I have to use

432
00:31:40.359 --> 00:31:45.440
some mouse, so that's maybe not
the way you can put control of the

433
00:31:45.440 --> 00:31:48.680
mouse by voice, but it's it's
very hard to do it very slow.

434
00:31:48.480 --> 00:31:52.960
And then normally, say when I
would start debugging, I would say okay,

435
00:31:52.960 --> 00:31:56.240
dee buck run and then it would
start debugging. Or I would say

436
00:31:56.240 --> 00:32:00.759
okay, let's say de buck breake
pund and would set the breakpoint. And

437
00:32:00.839 --> 00:32:06.839
then I've got different variations. You
might know the safe we web tools have

438
00:32:06.880 --> 00:32:10.680
different keyboard short cuts, so I've
got different keyboard short cuts like for a

439
00:32:10.759 --> 00:32:16.599
browser and the development and environment,
and that's safe for for running commands.

440
00:32:17.240 --> 00:32:21.920
And then when I want to dictate
a statement, for example, I would

441
00:32:21.920 --> 00:32:24.799
say okay, state for each and
it would just write the complete for each

442
00:32:24.799 --> 00:32:30.200
statement, and or you have to
fill in the values obviously for each what

443
00:32:30.519 --> 00:32:34.640
you know, yeah, but it's
it will normally trigger a snippet of visually

444
00:32:34.640 --> 00:32:37.640
snippet and the stimple will place the
curse on the right location. So I'm

445
00:32:37.680 --> 00:32:42.759
combining these two. I've I've got
balance snippets. I've got the standard snippets

446
00:32:43.319 --> 00:32:46.960
and many times and triggering snippets by
using voice commands. So I've got one

447
00:32:47.000 --> 00:32:51.160
little more flexibility. And if you're
at a breakpoint, can you examine the

448
00:32:51.240 --> 00:32:53.440
value of a variable without using your
hands? Normally I would say okay,

449
00:32:53.480 --> 00:32:58.960
deva locals and it will would show
the locals window, or deebug inspect it

450
00:32:59.039 --> 00:33:04.359
will show this F nine variable inspection
window and so on, wow and so

451
00:33:05.440 --> 00:33:09.880
or I've got one debug variables which
should which you all like locals watch and

452
00:33:09.960 --> 00:33:16.319
whatever. It would show multiple windows. And then let's say, look up

453
00:33:16.319 --> 00:33:23.079
this exception value on with chat BT. Can you you could? I've got

454
00:33:23.200 --> 00:33:31.480
miracles, say yeah, Say but
I've got a micro for example, where

455
00:33:31.480 --> 00:33:36.440
I can select the text and say
look up that, and it would open

456
00:33:36.480 --> 00:33:39.640
the browser and look up this this
code. Cool, And so I'm I'm

457
00:33:39.799 --> 00:33:45.200
saving say twenty keystrocks or so I
swear to god you could sell this library

458
00:33:45.200 --> 00:33:52.559
of macros. I wouldn't mind.
I've been selling share before, so yeah,

459
00:33:52.680 --> 00:33:57.319
be a problem. Say there's one
statement like source block, it would

460
00:33:57.359 --> 00:34:01.279
select the complete if statement, and
so variations which would select the if statement

461
00:34:01.359 --> 00:34:06.440
and some surrounding statements or only the
inner part of the if statement and so

462
00:34:06.480 --> 00:34:10.079
on, and so I'm saving a
lot of time. Sometimes it's like twenty

463
00:34:10.119 --> 00:34:16.320
keystrucks so more. Or like you're
looking for record expression, say this typical

464
00:34:16.480 --> 00:34:22.280
record expression for identifiers like a too
set zero to nine underscore blah blah,

465
00:34:22.360 --> 00:34:27.679
and this would be regas expression a
recas identifier, and it would select.

466
00:34:27.840 --> 00:34:31.960
It would just type it out.
And you might notice that I'm using kind

467
00:34:32.000 --> 00:34:40.719
of reverse notation, so I say
debug run or yeah, it's always reverse,

468
00:34:42.320 --> 00:34:45.440
And this is intentionally so I can
find all debugging commands. And by

469
00:34:45.480 --> 00:34:51.320
doing this, it's also possible over
a remote desktop connection for example. Sure

470
00:34:51.719 --> 00:34:55.440
it doesn't mind. Say I can
go to an RDP session use my same

471
00:34:55.480 --> 00:35:00.519
commands as before without any problems.
You don't have to install anything on the

472
00:35:00.599 --> 00:35:06.079
RDP on the VM. You mean, I think you mentioned this when you

473
00:35:06.119 --> 00:35:08.960
when you're navigating menus, you can
just literally read what's on the screen,

474
00:35:09.079 --> 00:35:14.000
right, You can say menu file
or something like that, and then you

475
00:35:14.000 --> 00:35:16.039
know, like if there isn't a
keyboard shortcut, but there's a menu shortcut.

476
00:35:16.239 --> 00:35:20.239
Yes, you could say file blah
blah blah blah blah blah, and

477
00:35:20.400 --> 00:35:22.880
whatever you see on the screen,
you can read right and it will select

478
00:35:22.880 --> 00:35:29.280
it if it's recognizable. Say there
are some Windows accessibility features, and if

479
00:35:29.320 --> 00:35:32.760
the target program supports you can say, okay, click file, click open,

480
00:35:34.320 --> 00:35:37.920
click tools, click settings. This
is possible. If it's like a

481
00:35:37.960 --> 00:35:43.519
graphics only application, it's not possible. It's the program you cannot recognize anything.

482
00:35:43.639 --> 00:35:49.119
But most Windows menus usually have a
keyboard hot key associated with it,

483
00:35:49.199 --> 00:35:52.039
so you could just say press A, press B whatever exactly as you say.

484
00:35:52.119 --> 00:35:55.440
You could say, okay, press
all, control print screen, This

485
00:35:55.599 --> 00:36:00.199
is possible, press chift, control
entro. It's also possible. Bring up

486
00:36:00.199 --> 00:36:06.800
notepad, paste video, run paste
clipboard. I'm always done how many times

487
00:36:06.840 --> 00:36:08.559
I run notead given day, still
to this day, Like, Yeah,

488
00:36:08.599 --> 00:36:12.599
it's just it's the bok place I
put things. You know what you use

489
00:36:12.639 --> 00:36:15.599
it for. I use it as
a text filter, Like you pull something

490
00:36:15.639 --> 00:36:19.480
off of the of a website and
before you paste it into email, you

491
00:36:19.519 --> 00:36:28.159
want to remove all the formatting.
You just ASKI by you, I think

492
00:36:28.159 --> 00:36:30.800
you would already expect it. But
I've got a micro for this. Yeah,

493
00:36:30.880 --> 00:36:36.760
of course you do. We're going
into business a paste text micro and

494
00:36:36.800 --> 00:36:39.760
if we just remove all the garbage, it's paste text. Wow. Yeah,

495
00:36:39.800 --> 00:36:42.760
it's a good. Wow. That's
cool. Yeah. How many times

496
00:36:42.800 --> 00:36:45.079
you've been copied a URL and found
out you don't have it? You don't

497
00:36:45.079 --> 00:36:49.239
actually have that ur ur l you
have fifteen trackers that eventually lead to URL.

498
00:36:49.280 --> 00:36:52.199
Perhaps maybe Yeah, all right,
let's we gotta go. We gotta

499
00:36:52.280 --> 00:36:54.519
keep going with your awesome macros.
Here tell us that some of the other

500
00:36:54.760 --> 00:37:00.000
really productivity enhancing macros you have,
whether visual studio or not. Let's say

501
00:37:00.559 --> 00:37:06.920
I'm also controlling Outlook, and say
there are two ways to control other applications.

502
00:37:07.639 --> 00:37:08.880
One option is to have a plug
in, like, for example,

503
00:37:09.039 --> 00:37:14.480
there's an exit blocking or word plugging
or Outlook plugin and so on. There

504
00:37:14.480 --> 00:37:17.199
are other options to write your own
macros. And so I've got a lot

505
00:37:17.239 --> 00:37:22.280
of micros, for example, for
Outlook to switch the text language. Say

506
00:37:22.280 --> 00:37:27.320
I'm dictating in say two three different
languages, and so I've got a macro

507
00:37:27.400 --> 00:37:30.960
for just switching the languages. You
know, how I control Outlook? I

508
00:37:30.039 --> 00:37:37.840
use Gmail. That's how okay.
Could I say that out loud? Yeah

509
00:37:38.199 --> 00:37:44.400
okay? Or say, I've got
templates for the ciffix of a letter,

510
00:37:44.480 --> 00:37:47.440
the prefix of a letter, all
kinds of salutations and so on, So

511
00:37:47.679 --> 00:37:51.800
I don't have the type okay,
dear sir or madam. Now I just

512
00:37:51.840 --> 00:37:54.280
say it wow, and it will
write it for me. You know this

513
00:37:54.639 --> 00:37:59.800
laurum ipsum text template all the people
are using in the web, I've got

514
00:37:59.840 --> 00:38:06.719
it. Macro texts yeah, lower
mid some and say, I've also got

515
00:38:06.719 --> 00:38:09.840
to say text templates for say you
want to test text, test an input,

516
00:38:09.920 --> 00:38:15.199
feel if it's if you can fit
one one hundred characters. So I've

517
00:38:15.199 --> 00:38:22.719
got templates which create like small rulers
from Escui characters and it is exactly one

518
00:38:22.760 --> 00:38:25.920
hundred characters, and you can see
if it fits or not. And I've

519
00:38:25.920 --> 00:38:30.519
got one for one thousand characters and
so on, and so it's it's very

520
00:38:30.519 --> 00:38:35.199
handy for testing. Sure, it
allows repetitions. For example, as I

521
00:38:35.320 --> 00:38:38.079
told you, you can say okay, go up one hundred. But you

522
00:38:38.079 --> 00:38:43.039
can also have your own macros repeat. So if you've got one macro and

523
00:38:43.079 --> 00:38:46.880
then you can have another one and
say okay, repeat it twenty times.

524
00:38:46.880 --> 00:38:51.840
And it will repeat the macro twenty
times. Wow, I'm stunned. They

525
00:38:52.000 --> 00:38:54.920
just yeah, And I can see
how you just gradually accumulate these. You

526
00:38:55.199 --> 00:39:00.320
write a macro once and then you
get to keep reusing. It saves you

527
00:39:00.360 --> 00:39:02.519
a lot of work, a lot
of you can because it's it's basic.

528
00:39:04.800 --> 00:39:07.960
It's programmable, programmable in the basic
language. So it has a very old,

529
00:39:08.119 --> 00:39:12.880
very small basic in the inside,
and you can write all kinds of

530
00:39:12.880 --> 00:39:17.880
clip statements. You can access the
clipboard, you can access your last dictation

531
00:39:19.519 --> 00:39:22.960
words and so on. So it's
it's very flexible. And so like I

532
00:39:23.000 --> 00:39:28.840
mentioned, I'm also of the coples
of logging library. And so when I

533
00:39:28.840 --> 00:39:32.199
say okay, lockdow world both,
it will insert the lock for both statement.

534
00:39:32.320 --> 00:39:37.440
When I say okay lock doot warning, it will insert the warning statement.

535
00:39:37.920 --> 00:39:42.719
But only log dot is a fixed
part and the last part is flexible.

536
00:39:42.880 --> 00:39:46.000
It's it it's accessing the word I
said, And so you have lots

537
00:39:46.000 --> 00:39:50.960
of possibilities here. And as I
told you, it's it's like a third

538
00:39:51.000 --> 00:39:52.719
hand. I've I've got my hand
on the mouth and the function keys and

539
00:39:52.760 --> 00:39:57.360
so on, and most of the
typing is being done by by voice.

540
00:39:57.519 --> 00:40:00.320
You just don't have to deal with
it. I know it's I say,

541
00:40:00.360 --> 00:40:04.280
I love to see the video because
it definitely is a rhythm, you know,

542
00:40:04.360 --> 00:40:07.280
of a flow right to what that
would look like? Yeah, I

543
00:40:07.360 --> 00:40:12.360
mentioned flow, you mentioned the debugger, but where does that end up going?

544
00:40:12.480 --> 00:40:15.239
Like ultimately, I guess you're getting
back to a piece of code you

545
00:40:15.280 --> 00:40:17.760
need to correct. At least,
I didn't understand the question, like when

546
00:40:17.800 --> 00:40:22.559
you when you're I'm just thinking about
the debugging workflow. It's different from the

547
00:40:22.599 --> 00:40:25.480
coding workflow. You certainly can start
the debugger, you set a break point,

548
00:40:25.559 --> 00:40:30.599
you run, you drop to the
break point. Now you're checking values,

549
00:40:30.280 --> 00:40:34.920
maybe tweaking some code and continuing.
Yes, that's right, Yeah,

550
00:40:34.960 --> 00:40:38.199
but it's this has the same statements. I've got lots of say, seventy

551
00:40:38.599 --> 00:40:44.760
debugging statements, and I'm running them
all the time, like looking at variables

552
00:40:44.840 --> 00:40:52.960
or showing certain windows and so on, continuing breaking whatever, set next statement.

553
00:40:53.199 --> 00:40:59.000
Okay, so but that's a normal
process. Step step step step step.

554
00:40:59.119 --> 00:41:05.119
Okay, that gets old. I've
I've got my fingers on the keyboard

555
00:41:05.159 --> 00:41:09.880
and I'm using the function keys for
this, right, But talking talking about

556
00:41:09.920 --> 00:41:15.400
the flow, say, writing a
longer comment would get you out of flow

557
00:41:15.440 --> 00:41:19.920
when programming. But when you when
you type it, when you say it,

558
00:41:20.000 --> 00:41:22.960
when you say it, when you're
talking to the machine, it's way

559
00:41:22.000 --> 00:41:27.960
faster. And as you mentioned before, it's like talking to myself. I

560
00:41:28.000 --> 00:41:32.079
repeat my programming ideas in a different
language, meaning a natural human language,

561
00:41:32.599 --> 00:41:37.840
and so I can reflect on what
I'm writing here. And sometimes I'm doing

562
00:41:37.960 --> 00:41:44.079
this very excessively, say oh,
I've got normally I've got some wordpat open

563
00:41:44.239 --> 00:41:50.119
or word open, and I write
my concepts down by using speech and collect

564
00:41:50.159 --> 00:41:52.840
them and arrange them, and then
I start writing code. So it's useful

565
00:41:52.960 --> 00:41:57.239
on this part too. And what
I also can do you you know,

566
00:41:57.280 --> 00:42:00.360
all of you. You know pentot
net. This is pending application, and

567
00:42:00.400 --> 00:42:06.079
it's also possible to automate thee is
like for inside for example, for inserting

568
00:42:06.079 --> 00:42:12.880
a picture and song. All of
this is possible by voice commands or say

569
00:42:13.239 --> 00:42:15.039
many times a day. You have
to write the current date and time,

570
00:42:15.239 --> 00:42:20.559
or say only the date, like
for example when opening a kit branch or

571
00:42:21.320 --> 00:42:23.840
giving a file name or whatever it's
on a macro. I've got a macro,

572
00:42:24.119 --> 00:42:30.760
or say different six or eight which
insert current date time in different formats

573
00:42:30.199 --> 00:42:35.480
and then I've got all my posonial
information like street or address, or or

574
00:42:35.800 --> 00:42:38.320
phone number or whatever. It's also
on macros, so when I'm filling out

575
00:42:38.320 --> 00:42:42.960
the form, I just don't worry. I've got my street correct, my

576
00:42:43.079 --> 00:42:46.079
phone number correct, and so on. But there's one point where you have

577
00:42:46.119 --> 00:42:52.480
to be careful because you're writing an
email by voice. There will be no

578
00:42:52.599 --> 00:42:57.639
typos because this system will just take
the words from its dictionary and insert them.

579
00:42:58.280 --> 00:43:01.639
But sometimes it gets the words completely
wrong. So it's a spell checker

580
00:43:01.599 --> 00:43:06.000
will not find anything, but if
you'll still be wrong right, And that's

581
00:43:06.000 --> 00:43:08.960
the point where you have to be
careful always, or tool like grammarly would

582
00:43:08.960 --> 00:43:14.679
catch that better than the spell checker
will. Yeah. So here's a quick

583
00:43:14.760 --> 00:43:19.440
question, and I think you touched
on this before, but are you more

584
00:43:21.119 --> 00:43:28.039
confident about using any web site in
a browser than if you, for example,

585
00:43:28.400 --> 00:43:30.159
download a new Windows application. Now
you have to figure out all the

586
00:43:30.239 --> 00:43:36.599
keyboard shortcuts because it's in the browser. Does that help, like you feel

587
00:43:36.599 --> 00:43:38.880
more confident go into any site and
being able to manipulate it and do what

588
00:43:38.920 --> 00:43:44.320
you want to do with naturally speaking, then it would be getting a new

589
00:43:44.360 --> 00:43:47.880
program. No, I'm not using
naturally speaking a lot for websites, it

590
00:43:47.920 --> 00:43:52.280
is possible, but it's say,
for me, it's not necessary. I

591
00:43:52.280 --> 00:43:57.360
can use my hands and so I'm
not using a lot. But what you're

592
00:43:57.519 --> 00:44:00.000
saying, it's right saying I'm doing
it. I'm doing a lot of user

593
00:44:00.039 --> 00:44:05.800
interface and usability and so on.
And I've seen that many people are more

594
00:44:05.920 --> 00:44:09.519
confident when using the mouse or touch
screens and so on, so it's easier

595
00:44:09.679 --> 00:44:14.679
just point and click and test it. It's you don't have to remember any

596
00:44:14.760 --> 00:44:20.039
shortcuts. That's that's fair. Yeah, But on in my client base,

597
00:44:20.679 --> 00:44:24.519
you clearly see different users, kinds
of users. Some are using the mouse

598
00:44:24.559 --> 00:44:29.639
all of the time and some and
some really want keyboard short cuts because they

599
00:44:29.679 --> 00:44:34.480
want to work fast, and so
you can support both. There's no problem

600
00:44:34.480 --> 00:44:38.679
at all. It's you can support
keyboard short but touch voice input all at

601
00:44:38.719 --> 00:44:43.320
the same time. And getting back
to the better know framework, which was

602
00:44:44.559 --> 00:44:50.079
the warp command line thing, I
imagine that command line interfaces are a lot

603
00:44:50.159 --> 00:44:53.679
easier to use a Dragon interface just
because of the nature of you know,

604
00:44:53.960 --> 00:44:59.280
your text in text out easy.
Yeah, you're right, so PowerShell maybe,

605
00:44:59.360 --> 00:45:02.280
Yeah, it depends on what you're
writing, like write a push REQUI

606
00:45:02.559 --> 00:45:07.639
write a pull request in the command
line to gethub with your voice. That's

607
00:45:07.679 --> 00:45:13.880
a lot of dashes and well macros
right, macros y micro create for the

608
00:45:14.000 --> 00:45:16.039
data. You can even have macros
with prompts. You could have a base

609
00:45:16.119 --> 00:45:20.920
macro and it prompts you in the
middle for some argument and it would complete

610
00:45:20.960 --> 00:45:23.239
the same Yeah, what's the thing
you want here? Exactly? Yeah,

611
00:45:23.239 --> 00:45:27.239
but I do get it. You
know, things that command line tools,

612
00:45:27.239 --> 00:45:30.320
they have a lot of arguments like
f FM PEG or any kind of you

613
00:45:30.360 --> 00:45:36.000
know, get new face piping and
power show type. Yeah. Right,

614
00:45:37.079 --> 00:45:39.440
that's why you need a macro.
Yeah, but I've got one example that's

615
00:45:39.440 --> 00:45:45.519
really working fine in sequel. Sequel
is a language which can be spoken very

616
00:45:45.519 --> 00:45:50.519
well. So I've got some like
siquel select. I've got such a statement

617
00:45:50.559 --> 00:45:53.880
which will write out a base a
sickle select segment and then I can okay

618
00:45:53.880 --> 00:45:59.320
sequel from sequel to a sequel like
and it would just in a very very

619
00:45:59.360 --> 00:46:04.239
high speed out to command. So
and I used to use use some some

620
00:46:04.320 --> 00:46:08.639
Microsoft Cycle commands. You know,
if it's a command land utility and it's

621
00:46:09.360 --> 00:46:13.280
using speech, is very very outfoot
here. You know, you talk about

622
00:46:13.400 --> 00:46:16.360
that English has a funny order to
things that you want to say debug run

623
00:46:16.400 --> 00:46:20.920
not run debug it. Certainly SQL
has that problem where really you want the

624
00:46:21.000 --> 00:46:23.559
from clause first, you want to
tell you these are the tables I want

625
00:46:23.599 --> 00:46:27.920
to play with. Then this is
what I want to fetch from it?

626
00:46:28.119 --> 00:46:31.320
Then they here are the filters or
the restrictions on what chipo. Yeah,

627
00:46:31.320 --> 00:46:35.639
you got to always write the wear
clause before the delete clause, right,

628
00:46:37.320 --> 00:46:40.360
that's me now, I know,
yeah, sure, yeah, you know,

629
00:46:40.679 --> 00:46:45.079
you're right. You could do the
from, You could do the from

630
00:46:45.400 --> 00:46:49.039
and the where before you've even decided
in my retrieving data, deleting data,

631
00:46:49.119 --> 00:46:51.639
updated data like its own separate things. You're stuck with this. You just

632
00:46:51.719 --> 00:46:53.679
have to break those pieces of part. We are stuck with this. It's

633
00:46:53.719 --> 00:46:58.840
a standard and we have to just
get the custom Yes, yeah, but

634
00:46:59.079 --> 00:47:00.519
I mean, you know it's interesting
when you think that way is as you

635
00:47:00.599 --> 00:47:05.280
get those conditionals in play, it
could be queery and telling you how many

636
00:47:05.320 --> 00:47:08.599
rose that's going to be all along
before you've even actually said okay, well

637
00:47:08.639 --> 00:47:13.199
now show me this or take this
action on that set. But you know

638
00:47:13.239 --> 00:47:15.599
the shape of the set just by
describing it. Yeah, but what I'm

639
00:47:15.880 --> 00:47:19.960
I'm just thinking chat. I'll say
I've got cheat schippd all most of the

640
00:47:20.039 --> 00:47:24.719
time, and it is very good
at creating sick with statements nice. So

641
00:47:25.320 --> 00:47:29.440
you can say, okay, I've
got fist sea shop class here, and

642
00:47:29.519 --> 00:47:31.960
you past the sea shop class and
say, hey, please write a select

643
00:47:31.960 --> 00:47:38.199
segment for fift sea shop class nice
normally do it without errors. And I'm

644
00:47:38.280 --> 00:47:43.679
using the clickouse database right now,
and here's the same. So I can

645
00:47:43.760 --> 00:47:47.480
ask, okay, give me a
creat table statement for this sea shop class

646
00:47:49.519 --> 00:47:52.559
and it will do it nominally.
You know, chat gipt does better with

647
00:47:52.920 --> 00:47:58.440
languages other than English, doesn't it. It does, And what I mean

648
00:47:58.480 --> 00:48:04.400
it's a sea sharp programming languages SEQL. It tends to get those things better

649
00:48:04.840 --> 00:48:07.320
more accurately than it does. I
mean, of course the grammar and is

650
00:48:07.440 --> 00:48:10.840
stuff is fine, but you know, Lisa's not trying to mix facts with

651
00:48:12.039 --> 00:48:15.920
language. It's astonishingly could say I
asked it today for a TOSK command.

652
00:48:16.320 --> 00:48:21.039
It got it right. Normally,
it gets a secret statements right most of

653
00:48:21.079 --> 00:48:23.679
the time. It gets a c
shop statements right. And the good thing

654
00:48:23.719 --> 00:48:28.719
is it will output say you formulate
a prompt for the stuff you need and

655
00:48:28.760 --> 00:48:31.320
it will out puts a complete code. I want to ask it for some

656
00:48:31.920 --> 00:48:37.639
binary coding stuff. It was very
good. I wanted to work it all,

657
00:48:37.760 --> 00:48:38.880
but it was very cool. On
the other hand, you know,

658
00:48:39.000 --> 00:48:45.440
I was listening to an old Soul
Live record today. The guitar players sounded

659
00:48:45.559 --> 00:48:49.760
very familiar. It sounded like John
Schofield, and I looked at the name

660
00:48:49.760 --> 00:48:52.840
of the tune and I asked j
gpt as John Scofield ever played on the

661
00:48:52.960 --> 00:48:57.079
Soul Live tune blah blah blah,
and said, no, that was the

662
00:48:57.119 --> 00:49:00.800
original guitar player blah blah blah.
I looked on Wikipedi. No, I

663
00:49:00.960 --> 00:49:04.960
was right, it was go.
It was recognized his hand. I recognize

664
00:49:05.000 --> 00:49:08.519
that sound. So yeah, that's
what I mean. I mean, you

665
00:49:08.559 --> 00:49:13.920
know, with English queries it has
to get facts and mix that in with

666
00:49:13.960 --> 00:49:16.400
the language. It can give you
the wrong answer in a very eloquent and

667
00:49:16.440 --> 00:49:22.320
beautiful way. But with programming languages, sequel languages, there's really only one

668
00:49:22.360 --> 00:49:24.880
answer, you know, and the
compiler always gets to say, which is

669
00:49:24.920 --> 00:49:30.760
pretty useful. I've been thinking now
that to Aaron's comment as well, like,

670
00:49:30.960 --> 00:49:36.400
is this unsatisfying that you didn't write
the query yourself and I think describing

671
00:49:36.440 --> 00:49:39.960
the goal and having the tool assembled
the bits like we've always done this,

672
00:49:40.000 --> 00:49:44.719
there's always been a library you're recalling
to. I mean, and I want

673
00:49:44.760 --> 00:49:47.199
you hit this right early on Carl
Franklin because we have two Carls of the

674
00:49:47.199 --> 00:49:52.199
show. Doesn't make this more difficult
then writing a good comment with then you

675
00:49:52.239 --> 00:49:54.719
have something good Hub Copile, Like
half the time it's going to spew the

676
00:49:54.719 --> 00:50:00.159
code from the comment anyway, Is
that unsatisfying? I don't think it is.

677
00:50:00.159 --> 00:50:01.840
Is like, yeah, that's what
I was thinking. Wouldn't go and

678
00:50:01.880 --> 00:50:05.960
tweak it for me? For me, if this is okay, why should

679
00:50:06.000 --> 00:50:08.119
I write a complete secret statement when
it can do it for me. Yeah,

680
00:50:08.159 --> 00:50:12.840
it's just yeah, I know,
you know, it's like using a

681
00:50:12.880 --> 00:50:15.920
manual thrill or an elective elective trill. You want the hold, you want

682
00:50:15.920 --> 00:50:19.960
to hold, yes, and the
machine is doing it. So what it's

683
00:50:19.960 --> 00:50:22.960
okay, it's okay. The thing
that wouldn't be it wouldn't be satisfying is

684
00:50:22.000 --> 00:50:25.000
if I didn't understand what it was
saying, right, if it if I

685
00:50:25.039 --> 00:50:29.199
didn't understand the output. And you
know, that's the thing, like we

686
00:50:29.239 --> 00:50:30.920
all grew up doing these things by
hand. We learned how they work,

687
00:50:31.000 --> 00:50:34.880
we learned how sequel works, and
then when something does it for us,

688
00:50:34.880 --> 00:50:38.679
we're delighted because we know exactly what
it says. But somebody who just you

689
00:50:38.719 --> 00:50:44.400
know, asks CHTGBT for a sequel
statement and they plug in and it magically

690
00:50:44.440 --> 00:50:47.800
works. That's to me, would
be scary if I didn't know. There's

691
00:50:47.800 --> 00:50:53.280
a lot of discussion going on about
the risks of just copy and pasting generated

692
00:50:53.360 --> 00:51:00.119
code into programs, the security different
from stack overflow and every other way that

693
00:51:00.159 --> 00:51:05.280
we've gotten code that we didn't write. Stack overflow, you kind of they

694
00:51:05.360 --> 00:51:08.480
explain it though, you can read
through the narrative of the problem, and

695
00:51:08.559 --> 00:51:12.960
somebody, yeah, well when it
works well, and chat GPT does a

696
00:51:12.960 --> 00:51:16.440
good job of explaining code too,
it's just always correct correct, just like

697
00:51:16.440 --> 00:51:22.039
the folks on stack overflow. Yeah, yeah, fair point. Anyway,

698
00:51:22.239 --> 00:51:24.679
So what's next for you, Carl? What's in your inbox? What are

699
00:51:24.719 --> 00:51:30.000
you working on? I will continue
working on this IoT application, and this

700
00:51:30.079 --> 00:51:37.400
is my manual application occupation right now. I'm there designing data structures and say

701
00:51:37.400 --> 00:51:40.239
a very flexible computation kernel which can
be changed on the fly. So as

702
00:51:40.320 --> 00:51:44.320
as a code can be changed on
the fly, so it is doing some

703
00:51:44.360 --> 00:51:49.239
background compilation of c sharp and on
Zaza. And I'm still in my big

704
00:51:51.280 --> 00:51:57.639
industrial application where we've implemented a very
large solution for our clients and say different

705
00:51:57.800 --> 00:52:04.679
consulting tasks around like I'm doing consulting
regarding naturally speaking for some client, lots

706
00:52:04.719 --> 00:52:09.199
of stuff. Very good. Well, yeah, definitely, let's talk offline

707
00:52:09.239 --> 00:52:15.320
about making that your your macro library
available because I imagine that people would really

708
00:52:15.360 --> 00:52:19.519
be interested in that. And also
if we don't have it in your bio,

709
00:52:19.679 --> 00:52:23.840
how can people get in touch with
you? Easiest way would be email

710
00:52:23.840 --> 00:52:29.079
address, but you have to provide
it to you first. There's a commanding

711
00:52:29.159 --> 00:52:31.840
feature on my website. Yeah,
reclue the link to cobasoft and there is

712
00:52:31.840 --> 00:52:37.280
a contact page there. Yeah,
we'll do that. Very good, Carl

713
00:52:37.320 --> 00:52:42.840
Geets, thank you very much.
This has been very very enlightening. Yes,

714
00:52:42.920 --> 00:52:45.719
you're welcome, all right, and
we'll talk to you next time on

715
00:52:45.800 --> 00:53:09.199
dot net rocks. Dot net rocks
is brought to you by Franklin's Net and

716
00:53:09.280 --> 00:53:15.599
produced by Pop Studios, a full
service audio, video and post production facility

717
00:53:15.880 --> 00:53:20.800
located physically in New London, Connecticut. And of course in the cloud online

718
00:53:20.840 --> 00:53:24.559
at pwop dot com. Visit our
website at d O T N E t

719
00:53:24.800 --> 00:53:30.679
R O c k S dot com
for RSS feeds, downloads, mobile apps,

720
00:53:30.840 --> 00:53:34.800
comments, and access to the full
archives going back to show number one,

721
00:53:35.320 --> 00:53:38.039
recorded in September two thousand and two. And make sure you check out

722
00:53:38.039 --> 00:53:42.880
our sponsors. They keep us in
business. Now go write some code,

723
00:53:43.239 --> 00:54:01.800
See you next time. You got
javans and

