How'd you like to listen to dot NetRocks with no ads? Easy? Become
a patron For just five dollars a month you get access to a private RSS
feed where all the shows have no ads. Twenty dollars a month will get
you that and a special dot NetRocks patron mug. Sign up now at Patreon
dot dot NetRocks dot com. Hey, Carl and Richard here with your twenty
twenty four NDC schedule. Will be at as many NDC conferences as possible this
year, and you should consider it tending no matter what. Ndcoslow is happening
June tenth through the fourteenth. Get your tickets at ndcoslow dot com. The
Copenhagen Developers Festival happens August twenty sixth through the thirtieth. Early bird discount ends
April twenty sixth. Tickets at Cphdevfest dot com. Ndcporto is happening October fourteenth
through the eighteenth. The early bird discount ends June fourteenth. Tickets at Ndcporto
dot com. And we'll see you there, we hope. Hey, welcome
back to dot net rocks. I'm Carl Franklin, an amateur campbell we are
gearing up for some stuff here are we not? This is definitely some stuff.
The conferences is coming on again, right, like we have here there
and Yon it's spring, right, you have an announcement about dev Intersection,
do you know? Oh? Yes, dev Intersection got moved. We were
supposed to be the second week of May and now we're down in the second
week of September. So we had some opportunities there and to do some more
announcement related things. So it was like, hey, if we could just
move it to September, and we were able to make a deal with the
MGM Grand So Teta. I know it's frustrating for a few folks. We've
been trying to help everyone else to be comfortable and make it reasonable and fair.
But yeah, I'm what it does to the contents, Dac, you're
gonna be really excited. Yeah, I'm glad we were able to do this,
so it'd be a much better show in the fall, I think,
so and so dev intersection dot com. Yeah, all right, Well let's
roll the crazy music for better no Framework awesome? Alright, man, what
do you got right? This one came from Appy Next alumni, those trouble
Makers troublemakers Brian McKay, who's always looking for new AI stuff, as you
know. So this is a an AI uh enabled or empowered command terminal called
WARP. Go to warp dot dev. Great you are ol holy man.
How about that? Huh warp dot dev. And so it says WARP is
the terminal reimagine with AI and collaborative tools for better productivity, and it does
doesn't exist yet. You have to join the Windows wait list. Oh,
I see you if you're on Windows. But just take a just gander for
a few seconds at what they're doing there in the terminal. It's like an
animated gift for a little video or something. Yeah, I just wonder how
real is that? Like I could make cool texts few out, but I
have to go on the wait list. Yeah yeah, and get this built
with Rust well Orsinovich approves. You know, it's a pretty low level language.
You know, it sort of straddles the line a little more safer than
C plus plus, but still that kind of performance. So I'm laughing because
Rust is making the news. Every once in a while I see news stories
that Microsoft is not abandoning C sharp for Rust. You heard it here first
because there was some you know, there was just some rumors and stuff that,
oh no, there was some c sharp services in Azure that we're being
rewritten in Rust. Yeah, because you think about it from Microsoft's perspective,
those services, the less compute they consume, the less it costs Microsoft to
operate, Right, we should be thanking them. Well, they could have
rewritten them in C plus plus, but it would just cost more, So
they rewrite them and Rust. And it just goes to show you there's a
language for everything out there, right, yeah. Yeah, and for macro
you know, super scale cloud stuff where you can see utilization so high that
every cycle counts, that's worth doing a rewrite like that. It's just funny
how people react, you know, Oh my god, Sea sharp is going
away. Yeah, it's not. There's not one language for exactly all right,
Well that's what I got warped at dev and check it out at warp
speed on your own time. Now back to you, Richard, who's talking
to us Grady coppin te for show eighteen ninety two, pretty recent, the
one we did with Michelle Duke talking about get Hub co pilot. I think
we'll have a little AI conversation today and so you know, get hubgup pilot.
It's sort of the original for devs and Aaron Morgan wrote a bit of
a missive I'm not going to hold that against you, Eric, because I
thought it was very intelligent, But he said, I really enjoyed this episode
with Sheell's great is always and I love the call out to jet Brain's Rider,
as it's often not mentioned when Microsoft Stack is being discussed. I got
nothing bad to say about jet Brains or a Rider. They're great. A
large part of my works out of soci comes from creating a solution from whole
cloth and figuring out the problems as I go. I'm not a developer because
it pays well, but the fun of it, the challenge of it,
prompting an AI to generate my vision doesn't have the same appeal. Although I'm
sure went to my employer since it means faster delivery, I feel like more
time to be creative. Argument is a bit of a crock. No employer
is going to say great work or complete debt. Piece of work early.
Now, think creatively on something else for the next week and stead it'll be
here's the next task, Get on with it. I do pay for GPD
for and have basically used it as a drop in replacement for stack overflow.
I've heard that before. Yeah, also, as I'm not great with complex
EQL queries and the ability to describe tables to get a full query back as
a massive time saver, I also use sveelt, and to Carl's point,
I know just not to ask for anything on sveelt because it's of the project.
But the twenty twenty one is largely they have no use of me today.
Yep. But I sit here having refactored a JavaScript function that I couldn't
find the solution to using Google. After dropping in the function signature, GPT
said that I needed to use a type alias and gave an example. So
I've learned what a type alias is typescript. The code is tidier and more
maintainable, and I don't feel like I didn't code the method. I think
this is the crux of it. I enjoy learning new development things, and
this aspect of work being diminished with AI auto prompting. Yeah, I don't
see how it was diminished at all. I think you had a very polite
rubber duck helping you there. Yeah. Well, the problem comes when chat
GPT offers solutions that are old, right, and you go and you look,
and I just did this the other day. It offered a solution and
I went and I checked it out, checked out the nugat packages that it
suggested, and they've been deprecated. And so I said, hey, these
packages have been deprecated. Is there anything else? And it's like, oh,
yes, more modern design. Would you use this? You know?
Okay, why didn't you tell me that in the first place, you idiot.
So Aaron wraps up with I want to use AI like a pod of
nearby co workers that don't mind being interrupted. Beautiful description, But I don't
want to use AI like I'm a project manager directing a team of devs who'll
do my bidding, but ultimately reading disconnected for the process of development. I
feel like in the long run, AI coding will be a bit of a
pyrrhic victory to the personal satisfaction and sense of fulfillment we get from working as
software engineers. I don't know, you know, in the end, I
was trying to get to the solution too, you know. I'm not opposed
to power apps for the same reason A lot of people go, oh my
god, no code Are you crazy. It's like I'm just trying to deliver
results, man, right, that's what's important. Yep, So Aerin,
thank you so much for your comment. A copy of music codey is on
its way to you. And if you'd like a copy of music Code by
I read a comment on the website at don at Rocks dot com or on
the facebooks. We publish every show there and if you comment there and a
reading on the show, we'll send you copy of music Code. And we
definitely like to see you on Twitter. Of course, we've been there for
a long time or x or whatever it is today, but the real cool
kids are hanging out. I'm Mastodon. I'm at Carl Franklin at tech hub
dot social, at average Campbell at Masodon dot social, and of course you
can find all the ways you can contact me at Carl Franklin dot com.
Okay, let's get to our guest today. Really excited to have Carl guides
on. He is a freelance software architect and developer owner of Kobasoft GmbH.
Is Carl. Is there an acronym way to say that? Do you say
gumba or do you just say GmbH? Ohh okay, like we say inc
for incorporated r LLC. All right, So that's at Kobasoft dot Net Coba
s o ft dot net building advanced applications for their clients with c sharp,
SQL and web technologies. He has been working for Microsoft, Siemens Carl Zeis
microscopy, banks and industry. His main topics are c sharp web standards,
generators, performance and accessibility. He's currently working on an IoT project with sensor
data, flexible calculations and the ClickHouse database, and a large in house application
for an industrial client with asp net SQL server, CRM document Management, product
planning, materials and management. He's author of cobosoft log, a fast and
easy to use logging library and log viewer, and he's using naturally speaking intensely.
He's been since two thousand and two. Welcome Carl, and you're a
longtime dot net rocks listener, are you not, Yes, it's about two
thousand and six. My started programing with Fishop about two thousand and two two
thousand and three, and later I discovered your podcast and then enjoyed it a
lot. Yeah, and the kind of things that you're into, you're kind
of a generalist. It looks like you know, you're all over the map.
You do a lot of things. Yes, yeah, very cool.
So we're talking about AI in speech and all of that stuff, and you've
been it says you've been using Dragon Naturally Speaking, which you know isn't.
I don't know if it was, it'd be considered AI. But it's certainly
been around a long time and did a really really good job, and I
guess still does. Does Naturally Speaking use AI on the back end? Now,
yes, it is the two versions. So it's a testa person and
so cloud version and so Cloud version is AI based, but it is more
an AI targeted to voice recognition. It's not like a check chippity, it's
just to improve the quality. Right. Remember that story I told of the
African gray parrot named Timmy that we wired up at the X ten that was
a Dragon Naturally Speaking board in the in the nineties hard hardware. Yeah cool.
Yeah, So he doesn't know that story, but basically Richard had a
parrot with his friends and they they taught it to, you know, shut
the blinds and turn on the TV with the naturally speaking turn off its own
on its own lights. So you know, you just wanted to let the
parent have control of environment. We just didn't know the parrot like to go
to bed early. He'd shut everything off at like seven, and if you
try to turn it back off, he'd turned it back off again. I
remember you saying he used to do the car alarm. Oh yeah, he
need car alarms perfectly because didn't matter what time of the day or night.
If he did the car alarm, you got up. Very cool, So,
Jimmy, yeah, you could do the same with the naturally Speaking.
You could do your house automation and connective access to it and so on,
because it's programma a programma. So yeah, So you use naturally speaking because
it's the best thing that has been out there, or you've been using it
a long time or both both. Yes, I hadn't RSI a long time
ago, say about two thousand and four, and then I started using speech
input. I later solved this problem, but did the speech input proved to
be very helpful to me. And so, as you know, you can
use it for basic dictator, but it is also possible to use it for
programming, for example, And this is what I do in a lot.
I'm using it together, like for example, the chet chippyt say, I've
got my chet chippydy window here open, and instead tape of typing all the
long prompts, I can just dictate the prompts right, And so it's way
faster. It's like it's more like community communication. Yes, I've telled it
something presenter, it responds. You could even let it read the response,
but I'm not using it. It would take longer. Yeah, yeah,
I think we can read faster than we can listen, right a lot.
Yeah. Interestingly, Mark Miller was spent the weekend at my house this last
weekend and he was showing me something he's going to show off at build in
Code Rush, which is basically speech commands, like you hold down the control
key televisual studio what you want to do, and it does it, and
you can even there's even macros to write code and things like that. It's
just unbelievable. I've heard about this, But naturally speaking is much more flexible.
You can use it for any application, so you could control Windows or
text processing or even visual studio or whatever you like. And so I've got
a lot of commands, like thousands or so, and i can controlling nearly
everything like when I start when I'm using visual Studio, I can say okay,
build solution, and it will just build my solution. Yeah, and
so on. Or if I want to insert the statement, if statement,
I say the properate command and we'll just type it and it doesn't matter if
it's one line or one hundred lines. So are you actually speaking code or
you're giving commands the studio both. It's it's completely flexible. Say the simplest
use would be the just for documentation. Say I've got a summary head above
my method, and I would just dictate the summary instead of typing it out.
The moves my hands and it's way faster. It's really as fast as
we are talking right now. Probably write longer comments that way because because the
other side of this is you're also effectively manifesting what you're going to code by
describing it. Yeah, exactly. I got a question about microphones. I
noticed that you're using like a dictation kind of microphone with you know, the
MC comes over to your mouth headset, but I use the I have an
Amazon Echo here and it's been pretty good about being able to pick up things
across the room. You can even whisper to it. And I never had
that experience with any Windows based kind of you know, just using a regular
microphone. Do you think that there's like stuff in there to cancel noise and
you know, figure out exactly what I mean. That's the thing that's great
about Echo. Do you do you always use this headset or have you found
other microphones that work with ambients, you know, like an ambient microphone.
I think it's exactly as you say, so AMASO and Alexa will have some
noise canceling and additional tools to improve the noise quality. But the big difference
is that Alexa has to listen to say hundreds of words, and naturally speaking
vocabularies about hundreds of thousands of words, so there's some much bigger risk for
errors. So it's easily to confuse a personal name with the standard world and
so on. And I've noticed the same thing with that girl. Yeah yeah,
yeah, yeah. Ask it a question and it gives you an answer
based on something you didn't even say. Okay, yeah, but it answers
enthusiastically, oh yeah, correctly, and it won't stop. I brought it
into the house and Kelly got used to it. But after a while,
you know, when I say a she starts to give it the keyword and
then stop to stop barking. Kelly says, shut up, and it works.
But hearing lies the real issue. I find what you know, watching
voice systems being used in general, people don't mind it if it works the
first time, but as soon as it doesn't work the first time, then
they feel done using it, so they don't want to use it anymore.
Yeah, you're right. This was the case like ten years ago or fifteen
years ago. When you started dictation, you really had to this is my
next sentence. You know, you had to be very except on your pronunciation
and gaps between the words. Nowadays it just like talking. It would it
would normally transcribe what we are saying. Now you can just record it and
it would transcribe the text. And so so they've actually changed the underlying model
in naturally speaking, to use the more contemporary libraries. Yeah, nearly every
version, say, whenever you got a new version from twelve to thirteen or
fourteen, fifteen sixteen, it always improved recognition quality because I remember having to
train a dragon board back in the day, and then you know that just
sort of went away almost a decade ago when you think about Siri and so
forth, like training was longer needed. Yeah, you're right when theow speech
wants you to train it to speak the paragraphs and stuff, and all of
these things now that are cloud based, like even Google Speech recognition is great.
I mean it just uses the cloud, but it doesn't doesn't require training.
Do you have a keyword that you say, like when I use the
Amazon Echo or do you just press a particular button when you want to give
a command? No, it's normally it's turned on when I'm working. So
I have a special keyboard button, but it's really you can define any buttons
as this button. So I've got a keyboard button. When I press it,
it will turn onto microphone. And then when it's running, you can
say okay, microphone off, and then it's off and you have to press
the button again. But you can say okay, go to sleep, then
continue listening. They say okay, wake up. Then it will come back
again. So it's more less like I say, but when I'm really working,
it's turned on all the time. Are you worried that somebody's gonna like
barge into the room and say, you know, order five thousand pounds of
cement from Amazon. You know, it doesn't have this kind of connection.
It just will type it out. Has that ever happened to you, though?
Has somebody like gotten in the room and tried to screw everything up for
you as a joke? No, Once I met a big error. I
dictated in English a Trauman text and this was very bad. Oh that must
be interesting and that without checking it okay, but we're not never do it
again. That's pretty funny. Well, do you know there's another aspect of
this that I'm that appeals to me, which is that visual studio is a
difficult application to navigate. You know, it's like the cockpit of a seven
forty seven in there and then and the number of times I know it can
do this thing, I just can't find the menu item. So the idea
that I could say this is what I want to do it and the speech
control system that can navigate the tool for me, that's very compelling. Like
that's a ton of time saved rather than flailing around in MANYUS. Yeah,
that's exactly the point. Say I would say okay, synchronized class feew and
it would pop up the class feel for the current class or method and similar
stuff. Okay, show Solution Explorer it would show the solution SPRA or debugging
Locals it would show the debugging Locals window. So it's like I've wrote it
in my email. It's like a third hand. Keep my right hand on
the mouth and the left hand on the function keys for example, and all
the typing would be done by naturally speaking by the voice. How where did
those hooks come from? Did you do that or is that already available?
It depends on what you're doing. Say if you were a writer and would
write a book, you would have thousands of commands already available, like make
that boat or make that italic and go to the top, go to the
bottom, select word. All of this is pretty fined and it's working fine.
And let's say Microsoft Word and word Pad. But when you're having specific
programs, like let's say Visual Studio, you have to define your own commands.
There's no there are no pre build commands. But on the other hand,
it's very easy to do. It's like a huge shortcut manager. You
can you can write or dictate a command name and the end. Then for
example, you assign keystrokes and it would just repeat the keystrokes, but it's
a little bit advanced though. You can say okay, press all a,
then wait half a second, then press Charlie and so on, so it's
like a huge keystroke macro manager. But you you don't have to remember remember
any keystrokes for triggering it. You just say the command once you've done it,
once you have. Have you ever had the situation where a new version
of visual Studio remaps key strokes or changes them. I've got my own mapping,
which are usually key but yes, but it's easy to adapt. It's
a matter of seconds you've adapted it. So you don't find that managing naturally
speaking takes more time than you think it should. No, not at all,
not at all. There's a command browser. You can see all the
commands. Basically, you've got two lists of commands. You've got you've got
the build in commands, and there's a browser for these, and you've got
your own commands, and there's also a browser, and it's very easy to
manage. I bet with co pilot this makes a killer combination, right because
now you can just speak a comment and then Copilot will actually write the code
and you don't have to sit there going for each blah blah blah. Right,
yeah, but for each statements are a micro for me, I just
say okay, state for each and it will inserts a complete forage statement.
And that's with other stuff as well, So like if statements or standard HTML
marker or on any of this stuff I've got on a command. But your
macros don't know anything about the code that you're writing. The co pilot does.
Yeah, so are you finding yourself using co pilot with naturally speaking more?
Now, I'm saying when code pilot presensive solution to me, I have
to think about his suggestions and normally it takes more time than to just write
it down because I'm very fast. I'm doing this for many years. Now.
Do you have any videos of yourself writing code with naturally speaking that we
can see? I don't have any. I'm really really my interest is peaked
here. I could create one. Wow. Okay, well, if you
create one, we'll put a link to it in the show notes. Okay,
it's fascinating. Just yeah, like you said, one hand on the
function keys, one hand on the mouse, and all the texts you're just
saying it. Yeah, So it's you know, you literally have a separate
tool now to to keep these movies or your hands aren't bouncing back and forth.
Yeah, and it's much faster. I'm a quite fast typist. I'm
not slow, but this thing is still a lot faster. Instead of typing
single characters, you get complete words, right, all right, So how
would you say? How would you say, use a link statement to pull
a variable out from this list where this property value is between this value and
that value. I would more less dictate it as it's written, like a
state variable index, equal sign, dictionary, empty brackets and so on.
Okay, so you really are writing, So there is a point where you
have to dictate character by character code, Yes, depending on what I'm doing.
Yes, what about moving the cursor around like you've got to go back
and change your phrase? I guess that's the mouse's job. You can still
do that with keyboard with that barron, left, arrow and tab. And
yes, I'm using the mouse and a keyboard as usually, but it is
possible to control the mouths and the keyboard with naturally speaking, you can say,
okay, go left five, or say you want to go ten lines,
go down ten, and so it's easier than pressing the Donkey ten times
for sure. Yeah. So here's another question, but not by much.
Here's another question. Do you sell your macro library like your mappings? No?
Would you want to? Because I think people listen to this want to
mind, Yes, sir, why not? Now you're into the accessibility space
in general, which is screen readers and like hardware dedicated for folks that have
limitations in certain areas. Are you using any of that in your own work?
Yes, I've been using it. I had a rs I U many
years ago, as I said previously, Yeah, and for some time I
really was using naturally speaking to control everything just to save your wrists. Yeah,
and I couldn't even shower. It was very bad. And you had
bad rs I. Friend, that's serious, like it hurts all the time.
Okay, can you just explain what RSI is repetitive stress? Insure you're
okay? So again, our friend Mark Miller was very big on always wearing
the races to reduce This is essentially caused by the tendons in your hand a
brady against the sheaths in your wrist to the point where they inflame and puff
up enough that they burn all the time. It's it's agonized Wow. So
I know, as a guitar player, if I write a lot of code,
if I'm coding all week, right, and then I go try to
play without practicing or warming up, my fingers don't know what to do.
And so you know it kind of is appealing to me. But does it
hurt like this, No, it doesn't hurt. But they just don't do
what you want them to do, Like they don't move. You know,
your brain isn't used to sending the signals to play a scale. It's used
to sending the signals to spell your name or your email chests. It's a
very different motion. But and I would argue, because you switch between those
different motions, your hands are in better shape. Yeah, you're probably right,
right. The problem with typing, all this typing all the time is
it's the same motions over and over. It's repetitive. Right. Plus there's
also a whole conversation about wrist angles and and keyboard heights related to the table
to share heights, like that ergonomics of minimizing stress on your rest because once
you go down that inflammation path forever, will it haunt your destiny? Like
as soon as as soon as your wrists start to be inflamed. Like everything,
it gets worse and worse and worse. Yeah, there are two points,
so and you mentioned one of them already. At this time I had
the PIT twelve deficiency and it was measured and a lap and so I substituted
it. And it improves the situation a lot because pit twelve goes on all
the sheds like nerve, fair and shes and and you know it's it causes
inflammation when it's missing. Yeah, and the other point is missing plot flow.
So the hands are not exercised enough. It's this repetitive, repetitive movement
which all it's the same, but it doesn't really use the hands. And
so so as a solution for me was to do some training, heavy weights
training, and this helped a lot. This really hap It will hurt initially.
It will hurt initially because there's an inflammation, but on so long run
it will improve. That's a flow of blood and lymph fluid, and so
I don't have this problem anymore. Physiologically, typing is bizarre. It is
kind of right to just flex the tendons while not moving the arm almost at
all, Like it's very your body wasn't built for this. This is crazy,
So I mean the whole I'm a big Pomadoro fan like that. Twenty
minutes, get up, move around, and so forth. That's about just
making your blood move right, arms over your head, arms down like that.
All that's making blood move, which does not happen when you're hovering over
the keyboard. The problem is you get in the groove and four hours go
by, yep, and you're a couple of happy exactly where you're sitting.
The moment you move in any way, you're like, I'm in agony,
like everything hurts you get up and you didn't realize your assert that much and
now I'm struggling to get up right and because you just you've been in the
zone. Are there situations where you're using software apart from visual Studio software that
you're trying to automate and there are things that are only menu options or buttons
that you have to click. There are no keyboard shortcuts. What do you
do in that situation? If it has no keyboard trot cut at all,
it's a little bit harder. But there's the second way. The program can
recognize certain screen elements like, for example, standard buttons or proser buttons and
everything. They say. All of these are recognized by naturally just speaking itself,
or by its plugins. So when you're in a standard Windows program,
you can say okay, click open, click safe, click order, and
when you're on a Prouse or you can all. There are also commands,
for example to list all links, or list all buttons and so on,
and suse okay, click five or or click one, and so it will
navigate. But if it's graphics only, application becomes very hard, say a
game, for example, if there are no standard Windows elements, it's nearly
impossible. Nearly impossible. Yeah, yeah, interesting, interesting problems. So
just dart a solution to everything. But this is also where you get into
that accessibility part. Good software has multiple ways to do a given task because
different people have different abilities. Yeah, exactly, And this is what we're
doing. There are you will know, semantic markup in HTML and this is
the first step. Then there are all these area at tags and other messets
to get it accessible. And I've been doing this for some time and know
some more experts in this area. And then you get the website which is
completely can be navigated by voice, you can its content, you can everything
by voice. That's cool. We've and we've done that show right, like
we've talked about access building with both sides. Okay, hey guys, let's
continue the conversation after this quick break for some very important messages. We'll be
right backed and we're back. It's dot Net Rocks. I'm Carl Franklin.
That's Richard Campbell. How do you And we're talking to Carl geist about doing
everything with speech that you can do with your hands almost. I do like
the mix. There's some things that are served well by the hands, and
some things were served well by the voice, like writing a longer comment because
I can go on and on makes a lot of sense. Yeah, or
writing a book on the history of dot net, for example, that might
be a good thing to use. I don't know the absolutely did I say
something wrong Richard? Anyway? So so let's talk about some of the practical
things that you're using this for within visual studio itself. I imagine you've piqued
the interest of our listeners, especially those you know who might have limited hand
movement. So just give us a quick example of something that you You mentioned
a couple of macros in the way that you set up projects and things,
but what are the give us a run through the how you would typically go
about programming a new app web app. Let's say, like how do you
drag and drop elements from one window to another? For example? What are
some of the more challenging things for drag and drop? I have to use
some mouse, so that's maybe not the way you can put control of the
mouse by voice, but it's it's very hard to do it very slow.
And then normally, say when I would start debugging, I would say okay,
dee buck run and then it would start debugging. Or I would say
okay, let's say de buck breake pund and would set the breakpoint. And
then I've got different variations. You might know the safe we web tools have
different keyboard short cuts, so I've got different keyboard short cuts like for a
browser and the development and environment, and that's safe for for running commands.
And then when I want to dictate a statement, for example, I would
say okay, state for each and it would just write the complete for each
statement, and or you have to fill in the values obviously for each what
you know, yeah, but it's it will normally trigger a snippet of visually
snippet and the stimple will place the curse on the right location. So I'm
combining these two. I've I've got balance snippets. I've got the standard snippets
and many times and triggering snippets by using voice commands. So I've got one
little more flexibility. And if you're at a breakpoint, can you examine the
value of a variable without using your hands? Normally I would say okay,
deva locals and it will would show the locals window, or deebug inspect it
will show this F nine variable inspection window and so on, wow and so
or I've got one debug variables which should which you all like locals watch and
whatever. It would show multiple windows. And then let's say, look up
this exception value on with chat BT. Can you you could? I've got
miracles, say yeah, Say but I've got a micro for example, where
I can select the text and say look up that, and it would open
the browser and look up this this code. Cool, And so I'm I'm
saving say twenty keystrocks or so I swear to god you could sell this library
of macros. I wouldn't mind. I've been selling share before, so yeah,
be a problem. Say there's one statement like source block, it would
select the complete if statement, and so variations which would select the if statement
and some surrounding statements or only the inner part of the if statement and so
on, and so I'm saving a lot of time. Sometimes it's like twenty
keystrucks so more. Or like you're looking for record expression, say this typical
record expression for identifiers like a too set zero to nine underscore blah blah,
and this would be regas expression a recas identifier, and it would select.
It would just type it out. And you might notice that I'm using kind
of reverse notation, so I say debug run or yeah, it's always reverse,
And this is intentionally so I can find all debugging commands. And by
doing this, it's also possible over a remote desktop connection for example. Sure
it doesn't mind. Say I can go to an RDP session use my same
commands as before without any problems. You don't have to install anything on the
RDP on the VM. You mean, I think you mentioned this when you
when you're navigating menus, you can just literally read what's on the screen,
right, You can say menu file or something like that, and then you
know, like if there isn't a keyboard shortcut, but there's a menu shortcut.
Yes, you could say file blah blah blah blah blah blah, and
whatever you see on the screen, you can read right and it will select
it if it's recognizable. Say there are some Windows accessibility features, and if
the target program supports you can say, okay, click file, click open,
click tools, click settings. This is possible. If it's like a
graphics only application, it's not possible. It's the program you cannot recognize anything.
But most Windows menus usually have a keyboard hot key associated with it,
so you could just say press A, press B whatever exactly as you say.
You could say, okay, press all, control print screen, This
is possible, press chift, control entro. It's also possible. Bring up
notepad, paste video, run paste clipboard. I'm always done how many times
I run notead given day, still to this day, Like, Yeah,
it's just it's the bok place I put things. You know what you use
it for. I use it as a text filter, Like you pull something
off of the of a website and before you paste it into email, you
want to remove all the formatting. You just ASKI by you, I think
you would already expect it. But I've got a micro for this. Yeah,
of course you do. We're going into business a paste text micro and
if we just remove all the garbage, it's paste text. Wow. Yeah,
it's a good. Wow. That's cool. Yeah. How many times
you've been copied a URL and found out you don't have it? You don't
actually have that ur ur l you have fifteen trackers that eventually lead to URL.
Perhaps maybe Yeah, all right, let's we gotta go. We gotta
keep going with your awesome macros. Here tell us that some of the other
really productivity enhancing macros you have, whether visual studio or not. Let's say
I'm also controlling Outlook, and say there are two ways to control other applications.
One option is to have a plug in, like, for example,
there's an exit blocking or word plugging or Outlook plugin and so on. There
are other options to write your own macros. And so I've got a lot
of micros, for example, for Outlook to switch the text language. Say
I'm dictating in say two three different languages, and so I've got a macro
for just switching the languages. You know, how I control Outlook? I
use Gmail. That's how okay. Could I say that out loud? Yeah
okay? Or say, I've got templates for the ciffix of a letter,
the prefix of a letter, all kinds of salutations and so on, So
I don't have the type okay, dear sir or madam. Now I just
say it wow, and it will write it for me. You know this
laurum ipsum text template all the people are using in the web, I've got
it. Macro texts yeah, lower mid some and say, I've also got
to say text templates for say you want to test text, test an input,
feel if it's if you can fit one one hundred characters. So I've
got templates which create like small rulers from Escui characters and it is exactly one
hundred characters, and you can see if it fits or not. And I've
got one for one thousand characters and so on, and so it's it's very
handy for testing. Sure, it allows repetitions. For example, as I
told you, you can say okay, go up one hundred. But you
can also have your own macros repeat. So if you've got one macro and
then you can have another one and say okay, repeat it twenty times.
And it will repeat the macro twenty times. Wow, I'm stunned. They
just yeah, And I can see how you just gradually accumulate these. You
write a macro once and then you get to keep reusing. It saves you
a lot of work, a lot of you can because it's it's basic.
It's programmable, programmable in the basic language. So it has a very old,
very small basic in the inside, and you can write all kinds of
clip statements. You can access the clipboard, you can access your last dictation
words and so on. So it's it's very flexible. And so like I
mentioned, I'm also of the coples of logging library. And so when I
say okay, lockdow world both, it will insert the lock for both statement.
When I say okay lock doot warning, it will insert the warning statement.
But only log dot is a fixed part and the last part is flexible.
It's it it's accessing the word I said, And so you have lots
of possibilities here. And as I told you, it's it's like a third
hand. I've I've got my hand on the mouth and the function keys and
so on, and most of the typing is being done by by voice.
You just don't have to deal with it. I know it's I say,
I love to see the video because it definitely is a rhythm, you know,
of a flow right to what that would look like? Yeah, I
mentioned flow, you mentioned the debugger, but where does that end up going?
Like ultimately, I guess you're getting back to a piece of code you
need to correct. At least, I didn't understand the question, like when
you when you're I'm just thinking about the debugging workflow. It's different from the
coding workflow. You certainly can start the debugger, you set a break point,
you run, you drop to the break point. Now you're checking values,
maybe tweaking some code and continuing. Yes, that's right, Yeah,
but it's this has the same statements. I've got lots of say, seventy
debugging statements, and I'm running them all the time, like looking at variables
or showing certain windows and so on, continuing breaking whatever, set next statement.
Okay, so but that's a normal process. Step step step step step.
Okay, that gets old. I've I've got my fingers on the keyboard
and I'm using the function keys for this, right, But talking talking about
the flow, say, writing a longer comment would get you out of flow
when programming. But when you when you type it, when you say it,
when you say it, when you're talking to the machine, it's way
faster. And as you mentioned before, it's like talking to myself. I
repeat my programming ideas in a different language, meaning a natural human language,
and so I can reflect on what I'm writing here. And sometimes I'm doing
this very excessively, say oh, I've got normally I've got some wordpat open
or word open, and I write my concepts down by using speech and collect
them and arrange them, and then I start writing code. So it's useful
on this part too. And what I also can do you you know,
all of you. You know pentot net. This is pending application, and
it's also possible to automate thee is like for inside for example, for inserting
a picture and song. All of this is possible by voice commands or say
many times a day. You have to write the current date and time,
or say only the date, like for example when opening a kit branch or
giving a file name or whatever it's on a macro. I've got a macro,
or say different six or eight which insert current date time in different formats
and then I've got all my posonial information like street or address, or or
phone number or whatever. It's also on macros, so when I'm filling out
the form, I just don't worry. I've got my street correct, my
phone number correct, and so on. But there's one point where you have
to be careful because you're writing an email by voice. There will be no
typos because this system will just take the words from its dictionary and insert them.
But sometimes it gets the words completely wrong. So it's a spell checker
will not find anything, but if you'll still be wrong right, And that's
the point where you have to be careful always, or tool like grammarly would
catch that better than the spell checker will. Yeah. So here's a quick
question, and I think you touched on this before, but are you more
confident about using any web site in a browser than if you, for example,
download a new Windows application. Now you have to figure out all the
keyboard shortcuts because it's in the browser. Does that help, like you feel
more confident go into any site and being able to manipulate it and do what
you want to do with naturally speaking, then it would be getting a new
program. No, I'm not using naturally speaking a lot for websites, it
is possible, but it's say, for me, it's not necessary. I
can use my hands and so I'm not using a lot. But what you're
saying, it's right saying I'm doing it. I'm doing a lot of user
interface and usability and so on. And I've seen that many people are more
confident when using the mouse or touch screens and so on, so it's easier
just point and click and test it. It's you don't have to remember any
shortcuts. That's that's fair. Yeah, But on in my client base,
you clearly see different users, kinds of users. Some are using the mouse
all of the time and some and some really want keyboard short cuts because they
want to work fast, and so you can support both. There's no problem
at all. It's you can support keyboard short but touch voice input all at
the same time. And getting back to the better know framework, which was
the warp command line thing, I imagine that command line interfaces are a lot
easier to use a Dragon interface just because of the nature of you know,
your text in text out easy. Yeah, you're right, so PowerShell maybe,
Yeah, it depends on what you're writing, like write a push REQUI
write a pull request in the command line to gethub with your voice. That's
a lot of dashes and well macros right, macros y micro create for the
data. You can even have macros with prompts. You could have a base
macro and it prompts you in the middle for some argument and it would complete
the same Yeah, what's the thing you want here? Exactly? Yeah,
but I do get it. You know, things that command line tools,
they have a lot of arguments like f FM PEG or any kind of you
know, get new face piping and power show type. Yeah. Right,
that's why you need a macro. Yeah, but I've got one example that's
really working fine in sequel. Sequel is a language which can be spoken very
well. So I've got some like siquel select. I've got such a statement
which will write out a base a sickle select segment and then I can okay
sequel from sequel to a sequel like and it would just in a very very
high speed out to command. So and I used to use use some some
Microsoft Cycle commands. You know, if it's a command land utility and it's
using speech, is very very outfoot here. You know, you talk about
that English has a funny order to things that you want to say debug run
not run debug it. Certainly SQL has that problem where really you want the
from clause first, you want to tell you these are the tables I want
to play with. Then this is what I want to fetch from it?
Then they here are the filters or the restrictions on what chipo. Yeah,
you got to always write the wear clause before the delete clause, right,
that's me now, I know, yeah, sure, yeah, you know,
you're right. You could do the from, You could do the from
and the where before you've even decided in my retrieving data, deleting data,
updated data like its own separate things. You're stuck with this. You just
have to break those pieces of part. We are stuck with this. It's
a standard and we have to just get the custom Yes, yeah, but
I mean, you know it's interesting when you think that way is as you
get those conditionals in play, it could be queery and telling you how many
rose that's going to be all along before you've even actually said okay, well
now show me this or take this action on that set. But you know
the shape of the set just by describing it. Yeah, but what I'm
I'm just thinking chat. I'll say I've got cheat schippd all most of the
time, and it is very good at creating sick with statements nice. So
you can say, okay, I've got fist sea shop class here, and
you past the sea shop class and say, hey, please write a select
segment for fift sea shop class nice normally do it without errors. And I'm
using the clickouse database right now, and here's the same. So I can
ask, okay, give me a creat table statement for this sea shop class
and it will do it nominally. You know, chat gipt does better with
languages other than English, doesn't it. It does, And what I mean
it's a sea sharp programming languages SEQL. It tends to get those things better
more accurately than it does. I mean, of course the grammar and is
stuff is fine, but you know, Lisa's not trying to mix facts with
language. It's astonishingly could say I asked it today for a TOSK command.
It got it right. Normally, it gets a secret statements right most of
the time. It gets a c shop statements right. And the good thing
is it will output say you formulate a prompt for the stuff you need and
it will out puts a complete code. I want to ask it for some
binary coding stuff. It was very good. I wanted to work it all,
but it was very cool. On the other hand, you know,
I was listening to an old Soul Live record today. The guitar players sounded
very familiar. It sounded like John Schofield, and I looked at the name
of the tune and I asked j gpt as John Scofield ever played on the
Soul Live tune blah blah blah, and said, no, that was the
original guitar player blah blah blah. I looked on Wikipedi. No, I
was right, it was go. It was recognized his hand. I recognize
that sound. So yeah, that's what I mean. I mean, you
know, with English queries it has to get facts and mix that in with
the language. It can give you the wrong answer in a very eloquent and
beautiful way. But with programming languages, sequel languages, there's really only one
answer, you know, and the compiler always gets to say, which is
pretty useful. I've been thinking now that to Aaron's comment as well, like,
is this unsatisfying that you didn't write the query yourself and I think describing
the goal and having the tool assembled the bits like we've always done this,
there's always been a library you're recalling to. I mean, and I want
you hit this right early on Carl Franklin because we have two Carls of the
show. Doesn't make this more difficult then writing a good comment with then you
have something good Hub Copile, Like half the time it's going to spew the
code from the comment anyway, Is that unsatisfying? I don't think it is.
Is like, yeah, that's what I was thinking. Wouldn't go and
tweak it for me? For me, if this is okay, why should
I write a complete secret statement when it can do it for me. Yeah,
it's just yeah, I know, you know, it's like using a
manual thrill or an elective elective trill. You want the hold, you want
to hold, yes, and the machine is doing it. So what it's
okay, it's okay. The thing that wouldn't be it wouldn't be satisfying is
if I didn't understand what it was saying, right, if it if I
didn't understand the output. And you know, that's the thing, like we
all grew up doing these things by hand. We learned how they work,
we learned how sequel works, and then when something does it for us,
we're delighted because we know exactly what it says. But somebody who just you
know, asks CHTGBT for a sequel statement and they plug in and it magically
works. That's to me, would be scary if I didn't know. There's
a lot of discussion going on about the risks of just copy and pasting generated
code into programs, the security different from stack overflow and every other way that
we've gotten code that we didn't write. Stack overflow, you kind of they
explain it though, you can read through the narrative of the problem, and
somebody, yeah, well when it works well, and chat GPT does a
good job of explaining code too, it's just always correct correct, just like
the folks on stack overflow. Yeah, yeah, fair point. Anyway,
So what's next for you, Carl? What's in your inbox? What are
you working on? I will continue working on this IoT application, and this
is my manual application occupation right now. I'm there designing data structures and say
a very flexible computation kernel which can be changed on the fly. So as
as a code can be changed on the fly, so it is doing some
background compilation of c sharp and on Zaza. And I'm still in my big
industrial application where we've implemented a very large solution for our clients and say different
consulting tasks around like I'm doing consulting regarding naturally speaking for some client, lots
of stuff. Very good. Well, yeah, definitely, let's talk offline
about making that your your macro library available because I imagine that people would really
be interested in that. And also if we don't have it in your bio,
how can people get in touch with you? Easiest way would be email
address, but you have to provide it to you first. There's a commanding
feature on my website. Yeah, reclue the link to cobasoft and there is
a contact page there. Yeah, we'll do that. Very good, Carl
Geets, thank you very much. This has been very very enlightening. Yes,
you're welcome, all right, and we'll talk to you next time on
dot net rocks. Dot net rocks is brought to you by Franklin's Net and
produced by Pop Studios, a full service audio, video and post production facility
located physically in New London, Connecticut. And of course in the cloud online
at pwop dot com. Visit our website at d O T N E t
R O c k S dot com for RSS feeds, downloads, mobile apps,
comments, and access to the full archives going back to show number one,
recorded in September two thousand and two. And make sure you check out
our sponsors. They keep us in business. Now go write some code,
See you next time. You got javans and