Skip to Content

EdSharp 2.2 released

September 8, 2007 • Darrell Shandrow Hilliker

Version 2.2
Released September 8, 2007

This version adds advanced features related to snippets, regular
expressions, and user-defined tokens. It also strengthens the ability to
select and download files from a web page. Fixes and enhancements are
documented below.


Fixed the Replace with Regular Expression command (Control+Shift+R) not
interpreting standard tokens like \n in the substitution string. Fixed a
space not being inserted before an attribute name in an HTML snippet. Such
an attribute may now contain \n or other nonprinting tokens. It may be
commented out with a semicolon (;) as the first character of the line.

Added a check for whether the file in the current editing window has been
modified by another program since being loaded from disk. If so, you are
prompted whether to open it again (like what Alt+O does manually). If you
answer No, version checking on the current file stops until you save or
reload it.

The Print command (Control+P) now prints a file with a .rtf extension using
the associated program for this operation in the Windows registry (typically
Microsoft Word or WordPad). The Export command (Alt+Shift+E) now includes
options for ASCII format (characters with ANSI codes above 127 are removed),
Mac format (line break is \r), and Unix format (line break is \n).

Added more search commands. As before, Control+F or Control+Shift+F search
forward or backward for standard text. Alt+F3 or Alt+Shift+F3 search
forward or backward for either the chunk at the cursor or selected text.
Control+F3 or Control+Shift+F3 prompt for a regular expression for searching
forward or backward. F3 or Shift+F3 search forward or backward for the last
target, which may be either standard text or a regular expression.

Fixed problems with the Web Download command, and added more commands for
checking and navigation in this and other list-based dialogs (similar to the
FileDir application). Press Shift+DownArrow for check and Next, or
Shift+UpArrow for check and Previous. Press Shift+End for check to Bottom,
or Shift+Home for check to Top. Shift+NumPad5 checks the current item. F8
marks the start of a checking operation, completed with Shift+F8.

Adding the Alt modifier key performs the same action except for uncheckging
rather than checkging. Thus, Alt+Shift+NumPad5 unchecks the current item,
Alt+Shift+Home unchecks to the top of the list, Alt+Shift+End unchecks to
the bottom, Alt+Shift+DownArrow unchecks en route to the next item, and
Alt+Shift+UpArrow unchecks en route to the previous. F8 then Alt+Shift+F8
unchecks items in that range.

Other arrow keypad actions navigate among checkged items. Control+Home goes
to the top checkged item, and Control+End goes to the bottom one.
Control+DownArrow goes to the Next , and Control+UpArrow goes to the

Shift+Space tells you what items are currently checked. Alt+A says the
address of the current item in the list, e.g., 11 of 42.

A new section of EdSharp.ini is called Tokens. Each of these user-defined
tokens is an expression in Microsoft JScript .NET. Three examples are
currently provided in the configuration file. The CurrentDirectory token
illustrates a call to a static method in the .NET Framework Class Library
(FCL) — in this case, returning the current directory of the EdSharp
process. The Signature token shows syntax for a literal string — in this
case, a signature block with multiple lines. The Unordered List token
refers to a JScript file called ul.js that is provided in the HTML snippet

When EdSharp finds that a token refers to a file in the current snippet
folder, it interprets the content of that file as JScript. The ul.js
example creates an unordered list element in HTML after prompting for the
number of items to generate in the list. Its content is as follows:

[Begin Content of ul.js]
var iCount = Interaction.InputBox("Number of Items:", "Input", "0")
var sTag = "<ul>\n"
var i = 1
while (i <= iCount) {
sTag += "<li>Item" + i + "</li>\n"
sTag += "</ul>\n"
[End Content of ul.js]

User-defined tokens may be included in a snippet that has the "form" keyword
in its header. They may also be typed in a document being edited. As
before, the Evaluate Expression command, Control+Equals, evaluates the
current line or selected text as JScript code and places the result on the
line below. The new Replace Tokens command, Control+Shift+Equals, swaps
tokens with their computed results in all or selected text. Thus, you might
press Alt+Shift+M for Manual Options and define a signature token as

Signature=("Sincerely,\nJohn Doe\\n")

Then type %Signature% in your document where you want that to appear, and
use the Replace Tokens command to do it.

Added the Transform Files command (Alt+Equals) to apply a saved set of
search and replace tasks to one or more files — typically to massage data
or formatting in predictable ways (like the Massage Operation command of
TextPal). EdSharp prompts for the job file containing the regular
expressions to apply. Each task is defined by three lines: (1) a comment
explaining the operation, (2) the search expression, and (3) the replacement
expression. A blank line seperates each task. The current editing window
should contain the list of files to process, one per line. Such a list
could be typed manually or generated via the Path List command
(Control+Shift+P). If a file does not include a leading path, the prior one
is assumed.

Here is the content of a sample transform job that defines two tasks:

[Begin Content of TrimLine.txt]
Remove leading space or tab characters from each line
(\A|\n)( |\t)+

Remove trailing space or tab characters from each line
( |\t)+(\r|\Z)
[End Content of TrimLine.txt]

Categories: Uncategorized

Visual Verification: While Changing Logos and Signs, PayPal Still Says "No Blind People Allowed"!

September 7, 2007 • Darrell Shandrow Hilliker

Recently, the folks over on the PayPal Blog have been writing about all the changes being made to their logos and signs. Alas, there’s one signage change the eBay / PayPal folks seem to be resisting! That change involves removal of the “No Blind People Allowed” signs imposed by their continued inaccessible CAPTCHAs and, sometime in the not-too-distant future, their Security Key! Let’s all continue to flood PayPal’s customer service people regarding this issue of vital importance.

Initial Thoughts on the K-NFB Reader

September 7, 2007 • Darrell Shandrow Hilliker

Karen and I took a short trip this morning down to the National Federation of the Blind of Arizona’s state convention. The hotel where it is being held is only a couple of miles from our house! We took a look at several exhibits and visited with a few people we know in the Federation. There may also be a new opportunity to promote accessibility coming from this visit. I think the short visit was worthwhile, and we will be returning this evening for a couple of hours to do some more socializing.

One of the neat opportunities we enjoyed was a live, hands on demonstration of the Kurzweil-National Federation of the Blind (K-NFB) Reader. Though the device is, indeed, very portable, we were both disappointed at the lack of tactile controls on the PDA. All the keys on the front panel are close together and there is precious little tactile differentiation between four of the most important controls. Despite the use of mainstream technologies in both the camera and PDA components, we would expect the people integrating them to ensure the greatest possible usability of the final product. Our concerns are that people with nerve damage and those who are novice technology users may have significant difficulty locating and pressing the keys on the front of the PDA. The representative suggested the user might add these tactile features, but I feel this is an unreasonable burden posed by an assistive technology product of this nature. As always, your thoughts are appreciated.

Categories: opinion

Visual Verification: Twitter Audio CAPTCHA Issues Likely Resolved – Please Retest

September 2, 2007 • Darrell Shandrow Hilliker

The reCAPTCHA folks have been hard at work over this Labor Day weekend chasing down the issues with their audio CAPTCHA implementations in secured forms with Internet Explorer 7.0. Please retest the Twitter audio CAPTCHA and submit your feedback as soon as possible. Let’s also be sure to show our appreciation to the reCAPTCHA team for going far above and beyond the call of duty to resolve this critical issue over a holiday weekend!

EdSharp 2.1 released

September 1, 2007 • Darrell Shandrow Hilliker

Version 2.1
Released September 1, 2007

This version primarily seeks to implement some ideas I gathered about
writing HTML. The new pasting capability is tailored for either HTML or
text — the latter snippet type being applicapable to templates and prose
generally. HTML support already included checking syntax with the Tidy
utility, as well as converting between Markdown and HTML. Fixes and
improvements are documented below.


Fixed Section Break (Control+Enter) and Replace (Control+R) commands not
handling tokens correctly.

Improved compatibility with Dragon voice dictation software. Made EdSharp
change the current directory to that of a file opened by the user.

The Open Previous setting determines whether files open at the end of the
previous EdSharp session are automatically opened at the start of the next
one. The default is No in this version, but it was Yes in version 2.0 when
this setting was reserved but not actually implemented. Since upgrading
EdSharp generally does not replace installed settings, your setting may be
Yes inadvertently. If you would prefer that EdSharp not open files
automatically in this way, you can press Alt+Shift+C for
Configuration Options, then Alt+O for the OpenPrevious edit box and N for
its value. Alternatively, create a fresh configuration file by pressing
Alt+Shift+M for Manual Options, Alt+Shift+D to delete the EdSharp.ini file,
Y to confirm, and Alt+F4 to close EdSharp. The next time you load EdSharp a
custom configuration file will be created with default values.

This version increases word processing functionality by adding bullet
justification in addition to left, center, or right (Alt+Shift+J).
Superscript and subscript support is also added. Press Alt+Shift+6 (think
of a caret symbol) to change the virtical alignment of text. Press
Control+6 to go to the next change in baseline, or Control+Shift+6 for the
previous one. The Query Styles command (Alt+Slash) says current styles
(bold, italic and/or underline), as well as justification and baseline

The Web Download command, Alt+Shift+W, lets you pick one or more files to
download from a page whose address you specify. If Internet Explorer is
open, EdSharp uses the value in its address bar as the default. Each item
of the resulting checked listbox shows both the clickable text of the url
and its target file name. Press Spacebar to toggle the checked state of
an item. After picking files, you are prompted for the target folder on
disk. If a file with the same name already exists, a unique name is created
by adding a numeric suffix, e.g., page_01.htm, page_02.htm, etc.

A listbox control of the .NET Framework does not support multiple letter
navigation, so each letter typed jumps to the next item starting with that
letter. To make navigation more flexible and efficient, particularly in a
listbox with many items, EdSharp adds the following features to a list based
dialog. Control+J prompts for text within an item, going to the first match
if a new search, or the next match if the previous value is accepted. Alt+J
goes to the next match without prompting for a value. In a checked listbox,
such as the Web Download dialog, Control+A checks all items, Control+Shift+A
unchecks them, and Shift+Space reads which are checked. The item with focus
when the dialog is closed (but not canceled) becomes the current item the
next time that the same list dialog is invoked. The Jump value of that
dialog is also remembered.

New commands support development of web pages. Press Control+Shift+Period
(think of the > symbol) to go to the closing tag of an HTML element, or
Control+Shift+Comma for the opening one. A documentation section
describes the snippet capability as follows.

Pasting Snippets Press Alt+S to save all or selected text to a file that may
be conveniently pasted into other documents. You may give the file any
name, except that it should have a .txt extension. It is saved in a
of the EdSharp data folder. Each programming compiler or interpreter may
have its own set of snippets. The subfolder name is the same as the current
value of the Pick Compiler command, Control+Shift+F5. If no compiler has
been chosen, the name "Default" is used. Press Alt+V to pick one of the
available snippets and paste it into the current document. You can manage
snippet files with the View Snippet Folder command, Alt+Shift+V, which opens
Windows Explorer in the subfolder containing snippet files.

A snippet may be either literal or an interpreted type. A literal snippet
is pasted completely. An interpreted type is seperated into an initial
header line and remaining lines as its body. The header line contains
keywords, in lower case, that control how EdSharp processes the snippet. At
present, two interpreted types are defined: html and text. The type
keyword must be the first word on the header line, and thus the first word
of the snippet file.

The first body line of an HTML snippet is the name of an HTML tag.
Subsequent body lines are attributes of the tag. An optional default value
can follow the attribute name, seperated by an equals sign (=).
Here is an example for the anchor tag:

html phrase

The "phrase" keyword tells EdSharp that the tag may be embedded in a
paragraph, rather than creating a block with line breaks before and after.
Another keyword, "empty," would tell EdSharp not to add a closing tag like
</a> when pasting (e.g., for the <br> tag).

EdSharp pastes only those attributes that have values greater then zero in
length as part of the opening tag. To include an attribute with essentially
no value, enter a space character for it in the dialog. If text is selected
when pressing Alt+V, it is surrounded by the opening and closing tags, and
the cursor is placed afterward. If there is no selection, the cursor is
placed between the opening and closing tags.

Over 100 HTML snippets are distributed with EdSharp, including common
attributes used by the tags. Snippet files may be modified or added.
Upgrading EdSharp does not overwrite snippet files with the same names.

With the text type of snippet, EdSharp pastes the whole body after making
possible substitutions controlled by a keyword called "form." This lets you
embed variables or constants in the body. A variable has surrounding
percent signs and an equals sign between the name and default value. For
example, the variable %City=%Silver Spring% means a variable named City with
a default value of Silver Spring. EdSharp creates a dialog that prompts for
the value of each variable it finds in the snippet body. It then replaces
the variable references with the values entered.

Certain constants are also defined: %Date% for the current date, %Time% for
the time, %UserName% for the Windows user name, %UserFirstName% for the
first part of that name, and %UserLastName% for the second part, if any.
Date and Time formats may be customized as EdSharp configuration options,
using the DateTime formatting syntax of the .NET Framework, explained at
If a snippet header contains the "caret" keyword, EdSharp looks for a double
caret sequence (^^) in the body, and positions the cursor (think of blinking
caret) in that location after pasting. An example text type snippet is
called Letter.txt, located in the Default snippet folder. Its content is as

text form caret

Dear %Customer=%:

Thank you for your purchase of %Product=Super Widget%. ^^


EdSharp notices that this is a text type snippet because of the first word
of the file. It finds two other keywords on the header line: form and
caret. It creates a dialog with two edit boxes, prompting for the Customer
and Product — defaulting to Super Widget. It substitutes the values
entered, as well as date and user name constants. After pasting, the cursor
is positioned after the first sentence.

Categories: Uncategorized

Visual Verification: Study Seeks to Expand the Usefulness of Audio CAPTCHA

September 1, 2007 • Darrell Shandrow Hilliker

Andy Schlaikjer, a Ph.D student at Carnegie Mellon University, has asked us to carry the following announcement:

I’m conducting a study to aid my research and development of a new form of audio CAPTCHA. If you’d like to participate, please visit the Audio reCAPTCHA study web site.

A CAPTCHA is a special kind of test which can be used to tell humans and computers apart. Many web sites use CAPTCHA’s to combat fraud and automated access to their services. Unfortunately, most CAPTCHA’s are based on a visual task, such as recognizing distorted letters in an image. Such a task can be quite difficult, or impossible, for visually impaired human users to perform.

In an attempt to alleviate this accessibility concern, audio-based CAPTCHA’s have been developed which require users to listen to and transcribe a short audio clip containing a series of random spoken digits. However, performance of state-of-the-art Automatic Speech Recognition technology suggests that this approach may not represent a very strong CAPTCHA in practice. Additionally, the data collected from such a test may only be used to determine the authenticity of the user, and is normally discarded once the test has been performed.

The goals of my research are (1) to develop a stronger form of audio CAPTCHA, (2) create a CAPTCHA which collects useful data, and (3) to strengthen support and adoption of audio-based CAPTCHA’s on the Web. To these ends, I am developing a new audio CAPTCHA based on a more complex task: Transcription of arbitrary speech. For more information, please contact me, or visit the study web site at the URL mentioned above.

Andy Schlaikjer

While we appreciate the new found consideration of accessibility by the people at Carnegie Mellon University, with respect to CAPTCHA, and recognize that audio CAPTCHA is the current state of the art, the considerable ongoing research in this area ought to bring all of us to one concern, which we must ultimately address. Audio CAPTCHA, like its visual cousin, inherently denies access to the deaf and hearing impaired population. This means that the presentation of both an audio and visual CAPTCHA continues to lock out those people whom happen to be both blind and deaf. It seems to us that greater focus ought to be placed, instead, on the development of a highly secure, non-sensory challenge response system that does not inherently discriminate against any legitimate human being, regardless of disability.

Since the reCAPTCHA team has taken considerable steps to improve the accessibility and usability of their current audio CAPTCHA scheme, let’s all help Andy with his study. At the same time, let us all remind CMU and others that, in the long run, audio and visual CAPTCHA does not afford equal access and full participation to all human beings. Instead, it is absolutely critical that a better method of authentication and authorization be devised.