Pricelessware nominee: AutoIt clone & hotkey scripting language

C

Chris Mallett

As the author, I respectfully submit AutoHotkey as a Pricelessware nominee.
In addition to being "easy on resources, and of small-size", it's also free
and open source. I realize it might take months or years before it's even
considered for acceptance, so bear with me while I explain why I think it's
good.

The main feature, besides scripting and hotkeys, is its nearly complete
backward compatibility with AutoIt2 scripts (I believe AutoIt2 is already on
the Pricelessware list). In addition to this, it offers enhanced syntax and
many new commands and features above and beyond those of AutoIt v2, some of
which are derived from the AutoIt v3 open source project.

Now, you may ask what distinguishes AutoHotkey from AutoIt v3. The first
thing is that it's simpler to learn and remember, since it's a simple
scripting syntax whereas AutoIt3 is much more like a programming language
(which is good thing, for some people). The second thing is its hotkey
features, some of which I believe are unique among freeware and payware
alike. Here they are:

Some of the easiest keys to reach on the keyboard are also the least
frequently used. Make these keys do something useful! For example, if you
rarely use the right ALT key, make it launch the thing you do most often:
RAlt::
MsgBox, This key is mine now.
return

You can even do the above without losing right-ALT's native function by
assigning Right-ALT to be a "prefix" for at least one other hotkey. In the
below example, Right-ALT has become a prefix, which automatically allows it
to modify *all* other keys as it normally would. But if you press and
release Right-Alt without having used it to modify another key, its hotkey
action (above) will take effect immediately:
RAlt & j::AltTab ; (this makes it a substitute for Alt-Tab)

Why be limited to using only CTRL, ALT, SHIFT, and WIN as modifiers when you
can combine any two keys or mouse buttons to form a custom hotkey? For
example: Hold down Numpad0 and press Numpad1 to launch a hotkey (syntax:
Numpad0 & Numpad1::); hold down CapsLock and press another key, or click a
mouse button (syntax: CapsLock & RButton::). In this case, the state of the
CapsLock key is not changed when it is used to launch the hotkey.

Make your hotkeys context-sensitive: Have your easiest-to-reach hotkeys
perform an action appropriate to the type of window you're working with. For
example:
RControl::
IfWinActive, Untitled - Notepad
{
WinMenuSelectItem, , , File, Save
}
else IfWinActive, Calculator
{
Send, ^c!{tab}
}
return


Create mouse hotkeys, including the mouse wheel button (MButton) and the
turning of the wheel up and down (WheelUp and WheelDown). You can also
combine a keyboard key with a mouse button. For example, control-left-button
would be expressed as ^LButton:: In addition, the wheel button can be made
to substitute entirely for Alt-tab (a great solution for sore left-hand
fingers).

Make a keyboard key *become* a mouse button, or have an action repeated
continuously while you're holding down a key or mouse button (see example in
GetKeyState at http://www.autohotkey.com/docs/commands/GetKeyState ).


Gamers, rejoice!:
Reduce wear & tear on your fingers by using virtually any key as a hotkey,
including single letters, arrow keys, Numpad keys, and even the modifier
keys themselves (CTRL/ALT/WIN/SHIFT).

Create "pass-through" hotkeys. For example, the left mouse button can
trigger a hotkey action even while the click itself is being sent into the
game normally (syntax: ~LButton::).

Use commands such as PixelSearch and PixelGetColor to automate game actions.

Have the option of using the keyboard hook to implement hotkeys, which might
be more responsive than other hotkey methods while the CPU is under load in
a game. The hook might also be able to override any restrictions a game may
have about which keys can be "mapped" to game actions.


Note: Most of the advanced features described above only work on Windows
NT/2000/XP and beyond. The more basic hotkey features also work on
Win95/98/ME.

----

Okay that's the promotional element. There's a summary of the other main
features and benefits at http://www.autohotkey.com

If you have any tips about how to increase the chances of AutoHotkey for
getting accepted as Pricelessware, or how else to promote it, I'd appreciate
them. All I want is for the maximum number users to find out about it, and
(if it's of interest to them) to benefit. Thanks for your time.

Chris Mallett
http://www.autohotkey.com
 
S

Susan Bugher

Chris said:
Okay that's the promotional element. There's a summary of the other main
features and benefits at http://www.autohotkey.com

If you have any tips about how to increase the chances of AutoHotkey for
getting accepted as Pricelessware, or how else to promote it, I'd appreciate
them. All I want is for the maximum number users to find out about it, and
(if it's of interest to them) to benefit. Thanks for your time.

Hello Chris,

ACF gets frequent requests for programs that can do _________

If you think AutoHotkey is the best program for the job post a response
to that effect. IMO that's the most effective way to promote it in this
newsgroup (and increase its chance of becoming Pricelessware).

HTH

Susan
 
H

Henk de Jong

Susan Bugher wrote on 18-2-2004 :
Hello Chris,

ACF gets frequent requests for programs that can do _________

If you think AutoHotkey is the best program for the job post a response to
that effect. IMO that's the most effective way to promote it in this
newsgroup (and increase its chance of becoming Pricelessware).

But please avoid the way of 'promoting' software like a 14-year old
fuzzy kid during the last months.

:)

With kind regards,

--
Henk de Jong
The Netherlands
(e-mail address removed) (Remove _NO_SPAM_)
'Links to Freeware'
http://www.linkstofreeware.vze.com/
http://home.hccnet.nl/hmdejong/
 
C

Chris Mallett

Thanks to both of you, good advice. I'll keep an eye out for relevant
queries and post discreetly in response to them.


Susan Bugher said:
ACF gets frequent requests for programs that can do _________

If you think AutoHotkey is the best program for the job post a response
to that effect. IMO that's the most effective way to promote it in this
newsgroup (and increase its chance of becoming Pricelessware).
 
J

John Fitzsimons

On Wed, 18 Feb 2004 20:07:08 GMT, "Chris Mallett"

Hi Chris,

If you have any tips about how to increase the chances of AutoHotkey for
getting accepted as Pricelessware,

The best program doesn't necessarily end up as Pricelessware. It is
the program that gets the most votes. As the autoit author constantly
promotes his program here that makes things difficult for you. Unless
you reply to every thread that he does.
or how else to promote it,

Well, obviously a mailing list of your own could be an idea. You could
also try to make it easier for "ordinary" (read non programmers) to
use.

For example, many ordinary people reading something like ;

"Loops, blocks, IFs, and ELSEs are given the memory addresses of their
related jump-points"

would probably leave your site immediately. Unless he/she was
interested in programming.
I'd appreciate
them. All I want is for the maximum number users to find out about it, and
(if it's of interest to them) to benefit. Thanks for your time.

Well, see if you can create an "activity" recorder that created a
"script" by recording what one had done and your popularity should
increase greatly. If, on the other hand, you think that ordinary
people are going to learn the many dozens of autoit commands, and
syntax, then IMO you have totally lost track of reality. Most people,
with no programming knowledge, would not be able to make sense of
something like ;

EnvSet("GUI.title","Computer Helper")
EnvSet("GUI.focus","2") ; tell GUI what OBJ is to have initial focus.
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; a label (text) OBJ defaults to position 0,0 and dynamically sized
; to fit the text
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EnvSet("OBJ1.type","picture")
EnvSet("OBJ1.file","pcrlogo.gif")
EnvSet("OBJ1.x","0")
EnvSet("OBJ1.y","0")
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; a button OBJ defaults to position 0,0 and dynamically sized
; to fit the text
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EnvSet("OBJ2.type","button")
EnvSet("OBJ2.text","&Close") ; ampersand prefix underlines letter
EnvSet("OBJ2.x","160") ; move the button over
EnvSet("OBJ2.y","250") ; move the button down
EnvSet("OBJ2.close","1") ; flags this OBJ to close the GUI

or

until $leapyear>$year

;msgbox(4096,"after checkleap leapyear leap year",$checkleap&
$leapyear& $leap& $year)

do

dircreate(@scriptdir&"\Dates\Year\"&$year&"\Jan\"&$day)

$day=$day+1

until $day>31

$day=1

do

dircreate(@scriptdir&"\Dates\Year\"&$year&"\Feb\"&$day)

$day=$day+1

until $day=$febdays+1


etc. etc.

Regards, John.
 
C

Chris Mallett

John Fitzsimons said:
The best program doesn't necessarily end up as Pricelessware. It is
the program that gets the most votes. As the autoit author constantly
promotes his program here that makes things difficult for you. Unless
you reply to every thread that he does.

It wasn't my intent to compete directly with AutoIt. The main reason I made
AutoHotkey was to give people the ultimate control over their keyboard and
mouse without having to learn to become programmers (the language is very
simple compared to AutoIt3, which I find to be nearly as complex as Visual
Basic).

Well, obviously a mailing list of your own could be an idea. You could
also try to make it easier for "ordinary" (read non programmers) to
use.

Someone set up one for me, it's at
http://groups.yahoo.com/group/AutoHotkey/join ... just a few members at the
moment. It sounds like you have a passing interest, so feel free to join.

For example, many ordinary people reading something like ;

"Loops, blocks, IFs, and ELSEs are given the memory addresses of their
related jump-points"

would probably leave your site immediately. Unless he/she was
interested in programming.

That quote is a little out of context. You only get sent there if you click
on "performance". Usually those sorts of people are technically oriented
and would be interested in such jargon.


Well, see if you can create an "activity" recorder that created a
"script" by recording what one had done and your popularity should
increase greatly.

That's a good idea and it's definitely something I'll add to the list as a
future enhancement. Thanks.


If, on the other hand, you think that ordinary
people are going to learn the many dozens of autoit commands, and
syntax, then IMO you have totally lost track of reality.

Perhaps, but even folks without any programming or scripting experience have
been able to pick up on AutoIt2 pretty quickly. And since AutoHotkey is
backward compatible with that language, it may be familar to some. Most
people might not even touch the hard stuff. Scripts and hotkeys can still
be very powerful without needing to spend hours studying the user manual.
For example, if you want Win-Z launch or activate notepad, it's this simple:

#z::
IfWinExist, Untitled - Notepad
WinActivate
else
Run, Notepad
return

Or how about if I want to raise the system's wave-out volume to max by
pressing Ctrl-Alt-Z:
^!z::SoundSetWaveVolume, 99

Not very hard stuff really, and almost all the commands come with simple
examples like the above.

Most people,
with no programming knowledge, would not be able to make sense of
something like ;

EnvSet("GUI.title","Computer Helper")
EnvSet("GUI.focus","2") ; tell GUI what OBJ is to have initial focus.

Yeah I don't do anything like the above myself and I'm a C++ programmer!
Most of my scripts are simple and right to the point: to automate stuff that
would take me many repetitive keystrokes and mouse clicks to do otherwise.
I use over 100 hotkeys myself, which is why this has been sort of a labor of
love for me. I'm now able to define keyboard and mouse hotkeys that were
impossible in any other automation app I've ever tried.

The AutoHotkey language uses the same philosophy: wherever possible: the
details are hidden from the user and only a very simple command with some
parameters is provided. For example, if I want to do a simple dialog window
with an OK button, it's just:

MsgBox, Press OK to continue.

And that's it.

Regards, John.

Thanks for your feedback. I've made some notes for improvements in the site
and the app.
Chris
 
J

John Fitzsimons


Hi Chris,
It wasn't my intent to compete directly with AutoIt. The main reason I made
AutoHotkey was to give people the ultimate control over their keyboard and
mouse without having to learn to become programmers (the language is very
simple compared to AutoIt3, which I find to be nearly as complex as Visual
Basic).

Nice to hear, but however "simple" it is it isn't as simple as a
"record/playback" program.

I suggest you take a look at Macroer (Groone's) at Alan's site :

http://www.sover.net/~wysiwygx/WinUtils3.html
Someone set up one for me, it's at
http://groups.yahoo.com/group/AutoHotkey/join ... just a few members at the
moment. It sounds like you have a passing interest, so feel free to join.

Thanks. Pleased to see that.

That's a good idea and it's definitely something I'll add to the list as a
future enhancement. Thanks.

That is pretty much how the above program works IIRC.

Scripts and hotkeys can still
be very powerful without needing to spend hours studying the user manual.
For example, if you want Win-Z launch or activate notepad, it's this simple:
#z::
IfWinExist, Untitled - Notepad
WinActivate
else
Run, Notepad
return

Everything is "simple" once you have mastered it. You seem to have
missed my point. Looking to find which "simple" example is the correct
one to use out of a list of eg. 70 different examples is tedious to
say the least. Then one has to not only decide if the found one is
right but also whether it needs modification.
Or how about if I want to raise the system's wave-out volume to max by
pressing Ctrl-Alt-Z:
^!z::SoundSetWaveVolume, 99
Not very hard stuff really, and almost all the commands come with simple
examples like the above.

Okay, but such things as eg ;

Example

FileSelectFile, SelectedFiles, 3, , Open a file, Text Documents
(*.txt)
if SelectedFiles =
MsgBox, The user didn't select anything.
else
MsgBox, The user selected the following:`n%SelectedFiles%

; MULTI-SELECT EXAMPLE:
FileSelectFile, files, 7 ; 7 = Multiselect existing files.
if files =
{
MsgBox, The user pressed cancel.
return
}
; The first newline marks the directory name in which all the files
the user selected reside:
StringGetPos, newline_pos, files, `n
if ErrorLevel <> 0
return
StringLeft, containing_dir, files, %newline_pos%
MsgBox, The files the user selected are all contained in
"%containing_dir%".
newline_pos++ ; Add one so that the next line will remove the newline
too.
StringTrimLeft, files, files, %newline_pos%
file_count = 0
Loop
{
StringGetPos, newline_pos, files, `n
if ErrorLevel <> 0 ; No more files
break
file_count++
StringLeft, next_file, files, %newline_pos%
newline_pos++ ; Add one so that the next line will remove the
newline too.
StringTrimLeft, files, files, %newline_pos%
MsgBox, 4, , File #%file_count% is "%next_file%". Continue?
IfMsgBox, NO
break
}
return

is NOT "Not very hard stuff really" for people who are not programmers
and/or not interested in programming.

The AutoHotkey language uses the same philosophy: wherever possible: the
details are hidden from the user

Totally hidden would be best. :)
and only a very simple command with some
parameters is provided. For example, if I want to do a simple dialog window
with an OK button, it's just:
MsgBox, Press OK to continue.
And that's it.

Again, simple if you know what you are doing. Not simple for people
who have no idea where to start on something like that.

A "logic" flow chart would probably be an idea.

You have done a very good job at attempting to explain things eg. on
your command reference page BUT if a "newbie" comes along and reads
something like ;

"Sets input focus to a given control on a window."

He/she will probably have no idea what you are talking about. The same
goes for ;

Sets a variable to the sum of itself plus the given value ....
Sets a variable to itself divided by the given value. ....
etc. etc.

Even simple comments like ;

"Compares a variable to a value" means nothing to "ordinary" people.

Why haven't you explained what a "variable" is ? Why haven't you
explained what a "value" is ?

The answer of course is that it is elementary school stuff to a
programmer. Not of much use to ordinary people however who have
never gone to elementary school (for programmers).

Test what I say. Go out in the street and ask a stranger what "Setting
a variable to the sum of itself plus the given value ...." means.

He/she will probably have no idea what you are talking about and
consider you a complete idiot IMO.
Thanks for your feedback. I've made some notes for improvements in the site
and the app.

Great. Thank you for the work you have already done to help people
with your program. I hope the above link/comments are of help to you.

Regards, John.

--
****************************************************
,-._|\ (A.C.F FAQ) http://clients.net2000.com.au/~johnf/faq.html
/ Oz \ John Fitzsimons - Melbourne, Australia.
\_,--.x/ http://www.vicnet.net.au/~johnf/welcome.htm
v http://clients.net2000.com.au/~johnf/
 
C

Chris Mallett

John Fitzsimons said:
I suggest you take a look at Macroer (Groone's) at Alan's site :

http://www.sover.net/~wysiwygx/WinUtils3.html

Thanks, I will. Actually, Larry of AutoIt fame has already made a "macro
recorder" that should work with AutoHotkey (since AutoHotkey is backward
compatible with AutoIt2). I think I'll ask him for permission to distribute
or link to it.

Looking to find which "simple" example is the correct
one to use out of a list of eg. 70 different examples is tedious to
say the least. Then one has to not only decide if the found one is
right but also whether it needs modification.

I think I'll include a "learn by examples" section with 5 or so carefully
chosen examples. However, AutoHotkey is clearly not intended for someone
who just wants a program launcher, mouse clicker, or simple key-sender
utility. There are tons of tools already out there far more user friendly
than mine. AutoHotkey stands out as being more powerful and flexible for
those users who crave highly-custom scripts and/or hotkeys, admittedly at
the expense of requiring more learning time up-front.

Okay, but such things as eg ; (examples omitted)
is NOT "Not very hard stuff really" for people who are not programmers
and/or not interested in programming.

Very true. But notice you quoted two examples. The first is a very basic
example, only a few lines long. The second is more advanced to show power
users how to do multi-select (something a basic level user probably wouldn't
be interested in, so could just skip over).

Again, simple if you know what you are doing. Not simple for people
who have no idea where to start on something like that.

A "logic" flow chart would probably be an idea.

Admittedly it doesn't come with a tutorial. So basically if you're new, you
have to work yourself through the manual, stopping at each command that
interests you. This is not as efficient as learning from a real "how-to"
book, which (hopefully someday soon) I'll have the chance to put together.
It sounds like you have some experience in teaching and/or documenting.
Perhaps you can give me some broad tips for how to write a tutorial for
novices, or maybe just clarify what you mean by a "logic" flow chart.

You have done a very good job at attempting to explain things eg. on
your command reference page BUT if a "newbie" comes along and reads
something like ;

"Sets input focus to a given control on a window."

All good points. Some of the documentation was taken directly out of the
AutoIt3 project, which is geared more toward "serious" scripters or
programmers. I'll try to make it more user friendly.

Why haven't you explained what a "variable" is ? Why haven't you
explained what a "value" is ?

Actually, I have explained it somewhat (though probably not well enough for
everyone). It's here:
http://www.autohotkey.com/docs/Variables.htm

I think what I need to do is hyperlink the word "variable" more often so
that users can click on it to get definition. I'm also going to clarify
what is meant by a "value". Thanks.

Go out in the street and ask a stranger what "Setting
a variable to the sum of itself plus the given value ...." means.

Yes, that's true. Currently, AutoHotkey is targetted toward users who have
experience with *something* technical, even if it's just running RegEdit,
making a simple Bat file, or changing the OS's Path environment variable.
Hopefully a tutorial suitable for those who are completely non-technical
will be written for it soon. Thanks for giving me some much-needed
perspective on what the average user sees when they look at AutoHotkey.

Chris
 
J

John Fitzsimons

Thanks, I will. Actually, Larry of AutoIt fame has already made a "macro
recorder" that should work with AutoHotkey (since AutoHotkey is backward
compatible with AutoIt2). I think I'll ask him for permission to distribute
or link to it.

Well, I would have a preference to see something coded by yourself. If
however you do that then please check that downloading/use work. I
have lost count of the times that autoit downloads did NOT work after
downloading.
I think I'll include a "learn by examples" section with 5 or so carefully
chosen examples.

Excellent. :)

Before that however a "What sort of things can be done" for "newbies"
would be an idea.
However, AutoHotkey is clearly not intended for someone
who just wants a program launcher, mouse clicker, or simple key-sender
utility.

Agreed. Very nice to see you admit that. A huge contrast to Larry, who
seems to think everyone is a programmer. Perhaps you should put such
comments at the top of your web page ?
There are tons of tools already out there far more user friendly
than mine. AutoHotkey stands out as being more powerful and flexible for
those users who crave highly-custom scripts and/or hotkeys, admittedly at
the expense of requiring more learning time up-front.

Yes, again a rather refreshing comment from you. Nice to see that you
haven't traveled of into "geekdome" so much that you have forgotten
there are "ordinary" users out there.
Very true. But notice you quoted two examples. The first is a very basic
example, only a few lines long. The second is more advanced to show power
users how to do multi-select (something a basic level user probably wouldn't
be interested in, so could just skip over).

Perhaps, but a "new user" generally has no idea which scripts are the
"basic" ones and which are the "advanced". Looking at the length of a
script is NOT IMO a certain way to be assess complexity.
Admittedly it doesn't come with a tutorial.

Another refreshing admission. So nice to see you are at least thinking
about non programmers. Unlike a certain person who I will not bother
naming.
So basically if you're new, you
have to work yourself through the manual, stopping at each command that
interests you. This is not as efficient as learning from a real "how-to"
book, which (hopefully someday soon) I'll have the chance to put together.

A "how to" and "examples" are definitely what is needed IMO. When I
first looked at programming back in the early 70s I was totally
stumped. I told the teacher that and he said. "What's the first thing
you need to do in this assignment ? Okay, now code that. Now, what do
you want to do next ? Okay, now do that...."

All pretty obvious really BUT it was sufficient for "the penny to
drop" (if you know what that means) and I found the class assignment
very interesting and worthwhile. As well as not overly difficult. I
doubt that I am the only one around here who has had/has a mental
block when asked to start writing scripts/code.
It sounds like you have some experience in teaching and/or documenting.

You psychic ? Yes, I have taught people things for many years now.
Perhaps you can give me some broad tips for how to write a tutorial for
novices, or maybe just clarify what you mean by a "logic" flow chart.

As above. When starting a script from scratch what are the steps
required to find, and/or code, from nothing an appropriate script.

For example, some scripts will do "A", some "B" and some "C". In a
list of 60 examples if one know which 20 do "A" and one wants to do
"A" then immediately things seem easier. About 2/3 less difficult.

"A" might be eg. program launching, adding text to a text processor,
searching a file for a user defined "string", start a program at a set
time etc.

What exactly can one do ? The first step in the flow chart would be to
be "Are you wanting to do an "A", "B" or "C" task ?

Obviously a list of a what can be done is best done by someone totally
familiar with the capabilities of your program. I suspect it can do
more than three different types of things. But how many ?
All good points. Some of the documentation was taken directly out of the
AutoIt3 project, which is geared more toward "serious" scripters or
programmers. I'll try to make it more user friendly.

Thanks. I am sure that many people will welcome that.
Actually, I have explained it somewhat (though probably not well enough for
everyone). It's here:
http://www.autohotkey.com/docs/Variables.htm
I think what I need to do is hyperlink the word "variable" more often so
that users can click on it to get definition. I'm also going to clarify
what is meant by a "value". Thanks.

Those were only a few random examples. Other words can/should IMO
be hyperlinked to a glossary and/or definitions. Just take all the
words on your page out to the street in front of where you work.
Then ask a few total strangers which "words" they understand. Those
they don't need defining.
Yes, that's true. Currently, AutoHotkey is targetted toward users who have
experience with *something* technical, even if it's just running RegEdit,
making a simple Bat file, or changing the OS's Path environment variable.
Hopefully a tutorial suitable for those who are completely non-technical
will be written for it soon. Thanks for giving me some much-needed
perspective on what the average user sees when they look at AutoHotkey.

Teaching people about computing is a handy way to find out what people
know/don't know and/or how they go about things.

Don't you have any "non nerdy" friends ? Find one. Tell him/her to do
a script to do some task. WITHOUT helping him/her. Then see how they
go. I think you will find an alarming number who are uncertain of even
what the "first step" should be.

That does of course require you to "bite your tongue" and to say
nothing while they try. Your next step would be to explain, step by
step, how a non nerd would do something. To a non nerd. WITHOUT
doing it yourself and WITHOUT pointing him/her to the correct example.
Then write down the steps/process/flow chart accordingly.

Regards, John.

--
****************************************************
,-._|\ (A.C.F FAQ) http://clients.net2000.com.au/~johnf/faq.html
/ Oz \ John Fitzsimons - Melbourne, Australia.
\_,--.x/ http://www.vicnet.net.au/~johnf/welcome.htm
v http://clients.net2000.com.au/~johnf/
 
C

Chris Mallett

John Fitzsimons said:
Excellent. :)

Before that however a "What sort of things can be done" for "newbies"
would be an idea.

Great idea, thanks. That's going near the top of the list.

Those were only a few random examples. Other words can/should IMO
be hyperlinked to a glossary and/or definitions. Just take all the
words on your page out to the street in front of where you work.
Then ask a few total strangers which "words" they understand. Those
they don't need defining.

Good, I'll try to go through it and define more of the obscure words and
phrases.

Tell him/her to do
a script to do some task. WITHOUT helping him/her. Then see how they
go. I think you will find an alarming number who are uncertain of even
what the "first step" should be.

Yes, that's a great technique and is quite an eye-opener. I've already
started using it with people who have e-mailed me for help, using their
questions and scripting attempts to refine the documentation.

That does of course require you to "bite your tongue" and to say
nothing while they try. Your next step would be to explain, step by
step, how a non nerd would do something. To a non nerd. WITHOUT
doing it yourself and WITHOUT pointing him/her to the correct example.
Then write down the steps/process/flow chart accordingly.

Maybe I can find a volunteer who knows nothing about scripting to help me
with the tutorial in the way you describe.

Thanks for your advice, which is a source of inspiration for how make the
software more accessible to the end user. You're explanation of the logic
flow chart is especially helpful.

Chris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top