Application id: 18987
Date: 2000-08-30 3:30 pm
QUIZ | SAMPLES

It appears we have a lot in common.

Please treat this correspondence as confidential. My wife, a professor in psychology at Ohio State, is discussing the possibility of her joining the faculty at UIUC, where she would have more colleagues. Although I am arguably in my dream job at OCLC, Wolfram Research works in areas related to long-standing interests of mine. A better environment for my wife and a comparable environment for myself would be great.

Match with current positions at Wolfram:

I like the statement on your opportunities page that you are looking more for people than positions, because even if on a specific assignment, I like to contribute to many areas.

On to specifics,

My home page is at: http://www.acm.org/~perlman/

I work "end-to-end" on systems, from initial concept, interaction with customers, marketing, development, quality assurance, documentation, and user support. I work on analysis, design, coding, and testing. I do what is necessary to get a team to produce a system that customers will want to use.

I am a widely known expert on human-computer interaction and have maintained the top level pages of ACM SIGCHI: http://www.acm.org/sigchi/ for several years, but am best known for the HCI Bibliography: http://www.hcibib.org/. Although trained as a cognitive psychologist at UCSD, where I wrote |STAT, a data analysis package used by thousands of people over the past 10 years: http://www.acm.org/~perlman/stat/ I have been occupied over the past two decades with building software and information systems that make people more productive. I have developed many artifacts that are widely used by people for software development and data analysis. See my short vita at: http://www.acm.org/~perlman/vita.html


1. Find a bug on the Wolfram site.

The wolfram.com site is not as accessible as it could be to users with visual impairments. I ran it through the Bobby test at http://www.cast.org/bobby/ and it reported 28 "priority 1" violations in three categories. The site failed.

The main problem is with "alt" text for images, image maps, and grpahic buttons. Without these, a blind user would not know which button to click for which purpose. It should be easy, however, to add alt text to these.

This problem is likely to appear on many pages on the site. Ideally, it should be easy to "fix" the entire site, if the site was well set up for maintenance. If not, then perhaps a script (e.g., perl) could be written to handle all or most cases.

I maintain the link page for ACM SIGCAPH, the special interest group for Computers and the Physically Handicapped, at: http://www.acm.org/sigcaph/links/ on which you can find links about computer accessibility, in particular, for the problem here, on the Web accessibility initiative, WAI, at: http://www.w3.org/TR/WAI-WEBCONTENT/

Although not technically a defect, I found no non-English text, although there is German Mathematica group and I am guessing tens of thousands of non-native-English users. It seems like internationalizing Mathematica would be a possible direction. I maintain the ACM SIGCHI page on intercultural issues at: http://www.acm.org/sigchi/intercultural/


2. List some items that you imagine would need to be changed to make versions of Mathematica in (a) Italian, (b) Russian, and (c) Korean.

I grew up in Montreal, surrounded by two languages, and this has helped me understand many of the issues of providing a multilingual software system. At least this is what I found when I joined OCLC and initiated the multilingual version of FirstSearch, a bibliographic and full text retrieval system.

I found that it was possible to pull all the English terms out of HTML files, and C program code that generated HTML, and access them as variables from a table. To change language, we could switch pointers to tables. Unfortunately, moving the text into tables meant that FirstSearch had to maintain thousands of variables instead of hundreds, and this would have created a performance problem. Because FirstSearch grew out of a research prototype, variables were stored in an unsorted array, and lookup for each variable took an average of N/2 checks. Some well meaning programmers tried to optimize the code by using memcmp instead of strcmp, but only if the string was long enough, so they called strlen to check the length. It was all quite amusing. I wrote a string hashing library and cut the overhead of variable lookup from 40% of system time (with hundreds of variables; with thousands, it would have been almost all the time, if users were willing to wait) down to less than 3%. This made variable substitution efficient enough that we could substitute translated variable on our system.

We had to go through the usual steps for internationalization (i18n), the process of preparing a system for localization for specific languages and locales. (1) We pulled all the strings out of existing code. This was an ugly process for FirstSearch 4.0 because it was not built with translation in mind. We extracted phrases, not just individual terms, because natural language does not translate word-for-word. (2) We set up an environment in which translators could view variables and their English values and see their translations in context on the screen. (3) We removed any text on graphics, changing to text labels near graphics. We had few graphics, but still did an informal review for international acceptability (e.g., no hands, extended fingers, etc., which have very different meanings in different locales). (4) We had native speakers review the systems.

You can read about the experience in a paper I wrote with our Director of Documentation, Debbie Hysell: http://www.acm.org/~perlman/fstrans.html and some notes on the followup with FirstSearch 5.0 (in which we could plan for the multilingual aspects): http://www.acm.org/~perlman/fstrans2.html

You can try FirstSearch 5.0 and switch languages on the fly: http://www.oclc.org/cgi-oclc/uncgi/fs5.scr.cgi

Since then, we have been working on both Chinese (Traditional and Simplified) and Japanese versions of FirstSearch. My main resource for this process is the intercultural page I maintain for ACM SIGCHI (I like to maintain resources that benefit the greatest possible audience while maximizing my own benefits): http://www.acm.org/sigchi/intercultural/

French and Spanish are handled by the ISO 8859-1 (Latin1) character set, so there is no special handling needed for most users with that character set. On different operating systems, the same characters may need to be remapped to different codes, but that can be handled efficiently by a lookup table. Russian uses Cyrillic (Latin5, I think) and Korean uses yet another character set. The most important consideration with character set is that the character set must be chosen so that targeted users will be able to view the characters. FOr example, Windows 2000 has Unicode support built in, but it might be too early to assume that most users would have or be willing to change to Windows 2000. All three are are left-to-right languages, but for other languages, direction is a major consideration.

At a higher level, it would be important to identify all text and images with text and move it out of code and other files and into resources that could be loaded dynamically at runtime or in batch mode at compile time (depending on whether it was desirable to support a version of Mathematica that could switch language on the fly; may be nice for bi/tri-lingual locales).

A big issues is editing to fit. Many languages take more room than English. Some languages (or maybe it was our translators, I was never sure) avoid abbreviations. So a short label like "Info" in English became "Renseignements" in French. Some scripts can be used to check the "fit" of text, but the final check must be review by native speakers and, ideally, native speaker usability testing. For each language, I would also seek locale-specific reviewers for cultural acceptability, particularly for graphic design.

A final comment. Before starting any of these, I would want to know how much of a market their was for the effort. My own experience is that Germans are very confident using English software, so German might not be a good (i.e., profitable) target language. With FirstSearch, we know that we have a highly usable system in French and Spanish, but with little French and SPanish content, we do not make money from the effort (which is done in part to help make us more international and more ready to carry non-English content).


3. It's 8 p.m. in Champaign, Illinois, and there is a piece of software that must be in New York City by 10 a.m. the next morning. What would you do?

Mount the software on the Web on on an FTP server in Champaign. Find someone (my new best friend) in or near NYC who has a fast connection and can burn a CD. My home connection is about 100K bytes (not bits) per second, or 6 Meg per minute or 360 Meg per hour (in my dreams, there would be some degradation for that much data over that much time).

If there is a rep who needs the software on a laptop for a demo, then burning a CD might not be necessary, just the fast download.


How would you prioritize translating the Mathematica book into (a) Italian, (b) Korean, (c) Dutch, (d) Russian, (e) Hebrew?
4. How do you maintain your own lists of tasks to do?

I use Microsoft Outlook extensively. I have several methods for different types of tasks:

Calendar: Here I schedule meetings and activities for which I set alarms to remind me of the next subtask. My calendar is also public, which lets others schedule me or find me.

Task Manager: This is my biggest list of tasks, always over 100, which I generally keep in priority order (but sometimes reorder by topic or date of last modification). Completed tasks move into a different folder, at which time I usually update (manually, I'm afraid because it's on a mainframe) our corporate problem reporting system (which we use for tasks as well as problems). I sometimes attach due dates to tasks, which can trigger reminders.

Mail Inbox: I try to keep only about 100 messages in my Inbox, which I flag with notes for followup. Longer term and archival items go into folders for specific projects/subprojects, and the most important folders go into my list of Outlook shortcuts.

I have not gotten into the palm world, yet, although I know they work well with Outlook.


5.

When I see problem reports, they range from detailed descriptions of every possible parameter a user can gather down to vague personal attacks on developers. I think it is important to make the best use of both.

We can't expect users to be experts at reporting problems. We can ask them for certain types of details, e.g., part of the system, function, etc. but ideally, we can give users a box in which they can describe the problem and have the system itself provide the detailed diagnostic information needed.

When I came to OCLC, all FIrstSearch problems were reported via an email on every screen. This worked only for people with mail servers, but even for them, little information came automatically. Users had to describe their browser version, system state, etc. Often they did not provide critical data and we had to contact them for more information, slowing the process and sometimes further irritating already irritated users.

In FirstSearch 5.0, I made a point to asking our user help desk for information about what they might want to receive with a problem report. Based on that, I designed our comment form:

  1. The form shows up in a new window (of controlled size, if we know you have JavaScript) so that the form does not obscure what the users want to write about.
  2. The comments are entered into a form, so users do not need a mail server.
  3. The form categorizes the comment as a suggestion or a problem (this causes the comment to be routed accordingly, although some comments get reclassified).
  4. Users provide us with an email address and a name, along with their comments.
  5. The form asks the users to categorize themselves.
Information about the user's session (login method, borwser, operating system, screen size, language, etc.) is appended to the form (so that they know it is being sent with the comments).

When we get a problem report or comment, it goes into a database with 20 or so fields, so we can evaluate favorable or unfavorable comments based on browser, operating system, screen size, etc. And we have most or all the information we need to diagnose a problem.


6. A programmer tells you that a feature which has been deemed important is impossible to implement. What would you do?

This is potentially a sensitive issue, particularly if the feature is possible. I would ask why the feature was impossible. If it is logically impossible or provably impractical, then perhaps a simplified feature would be possible. If there are obstacles like time, or amount of work, or difficulty, I would gather cost estimates to help decide if the feature were worth the effort. Depending on my knowledge of the programmer's abilities and personality, I might ask, discreetely, others' opinions. If the feature were available in an existing system, I might ask if we could do something like it. Usually, something approaching a requirement can be done, but if there are limitations, it could be useful to learn about how to avoid similar obstacles in the future.


Discuss the pros and cons of Wolfram Research R&D employees publishing papers in academic journals.
I am not planning on sending you paper unless you want a pile
of reprints of papers.  Instead, I will point you to online versions.

First, my short vita is at:
	http://www.acm.org/~perlman/vita.html.
If you want a longer version, I could update mine,
but you can get many details on my publications from
the HCI Bibliography.  Here is a canned search:
	http://www.hcibib.org/gs.cgi?terms=%25A%20Gary%20Perlman
I made a little table of my skills, as they relate to
software development:
	http://www.acm.org/~perlman/skills.html

My vita has links to examples of my work, but here are some highlights:

My main work at OCLC is on FirstSearch, a bibliographic
and full text retrieval system used in about 15,000 libraries.
I coordinated all user interface development,
from analysis, to design, coding, and usability testing.
My experiences in making FirstSearch usable, multilingual,
accessible, portable, and modifiable are summarized in:
"The FirstSearch User Interface Architecture"
	http://www.acm.org/~perlman/fsmulti.doc
This will be presented at an ACM SIGCHI conference:
	http://www.acm.org/sigchi/cuu/
You can try the demo version of FirstSearch at:
	http://www.oclc.org/cgi-oclc/uncgi/fs5.scr.cgi

|STAT is a data analysis package that has been in use
for over 20 years.  Here is its home page:
	http://www.acm.org/~perlman/stat/
Here is the user manual in PDF (circa 1986, but I list it
here because it is work that is more mathematical than
other work I have done):
	http://www.acm.org/~perlman/stat/handbook.pdf
Of course, it is not in any way comparable to Mathematica,
but on the other hand, how many job applicants do you get
who have written a data analysis package used by thousands?

In my spare time, I have cobbled together the HCI Bibliography,
a free-access online bibliography on human-computer interaction:
	http://www.hcibib.org/
It has an online search engine which has handled about 200K
searches in the past year, 350K in all.

As part of the HCI Bibliography, I started cataloging HCI
resources on the Web, in part to meet my own information needs
for working on FirstSearch, and pages generated from these
have been "hit" over half a million times in the past two years:
	http://www.acm.org/sigchi/hci-sites/
	http://www.acm.org/sigchi/publications/
	http://www.acm.org/sigchi/education/
	http://www.acm.org/sigchi/intercultural/
	http://www.acm.org/sigchi/kids/
	http://www.acm.org/sigcaph/links/
My suggested readings page has had 38K hits in the past 2.5 years,
and has been supporting, through the Amazon.com associates program,
the ACM SIGCHI Central Ohio chapter, BuckCHI:
	http://www.acm.org/chapters/buckchi/
which I helped create, served as Chair, and now serve as Secretary.

Supporting a lot of this information gathering is the Semi-Structured
Toolkit, which I describe in a keynote address I gave at the 1992
Australian conference on HCI:
	http://www.acm.org/~perlman/papers/ozchi.html

I edited a book on the best HCI papers from the Human Factors
and Ergonomics Society meetings:
	http://www.acm.org/~perlman/hfeshci/
and the preface describes the process used:
	http://www.acm.org/~perlman/hfeshci/preface.html

Other papers can be found in links from my home page:
	http://www.acm.org/~perlman/
but many people are most impressed by my paper in
the Best of the Journal of Irreproducible Results:
	http://www.acm.org/~perlman/armleg.html

That should be enough technical material for you.
On a more personal note, I am very happy where I
am at OCLC, having been there for a little over 4 years.
People at OCLC are very nice, and very positive
about their work.  It's a high tech but low key place.
I was at OSU in computer science for eight years
(I managed this despite never coming up for tenure)
and consulted a lot locally; when I decided to leave
academia, mainly because of a lack of colleagues,
I was able to choose the place I liked working at most,
and OCLC was kind enough to make a special position
for me.  And Columbus is a nice place to live
(but you wouldn't want to visit here).

I used to have other hobbies, but now we have kids,
so my new hobbies are reading books, playing games,
building gigantic wooden swing sets, etc.
SOmetimes I even write little books:
	http://www.acm.org/~perlman/stories/bunny01.htm
We have two boys, Mark 7 and George 3.
Both are very nice and clever, of course.

My wife is an associate professor in Psychology
at OSU.  Politics at OSU and within Psychology
are wearing her down, despite her being well
funded and having won, for example, an APA
young investigator's award.  She has colleagues
who she respects highly at UIUC, and they have
been urging her to apply.  One of her colleagues
suggested that Wolfram was worth considering,
and given my affinity for developing software,
particularly mathematical software, motivated
me to take these steps.

My wife is anxious to see things move along,
so if there is interest, let me know.  If not,
well, at least I'm enjoying my job now, and maybe
things will improve for my wife.

So, it's your move.

Gary Perlman

PS: People find this true story amusing:
	http://www.acm.org/~perlman/ant.html

PPS: this message has 23 URLs, if you care to know

Since that time, I have been reading up on Mathematica, mostly on the Wolfram site, and I have become more excited about contributions I could make to Wolfram. As you may have been able to tell, I have had a long interest in mathematics education, having, in grad school published a paper in NTCM's The Mathematics Teacher on making mathematical notation more meaningful, which actually turned into my doctoral dissertation topic. I am impressed by the potential of notebook pages, presented through Mathematica or MathReader, for all levels of mathematics education. One area that I think I could make immediate contributions would be in usability testing of the MathReader, and in seeing it through changes to make it more usable by a wider audience.

I also think I could lead projects concerned with making Wolfram software more accessible to wider audiences, audiences including non-English and visually impaired, depending on market demand. o


Like OCLC
	intellectual honesty
	low key/high tech
	respect for individuals
	a higher purpose
	good people - work cooperatively

I love building useful systems that people actually use
problem oriented
	cross-products of dimensions
product oriented - product with a higher purpose
	mathematics education - mathematica notebook pages MathReader
		usability tested for markets - K-12 in libraries
customer oriented - measure the user experience
	multilingual
	accessible
	multi age gr oup
find a way to make things happen
	help others to make things happen

work wth many groups on product, end-to-end
	marketing
	analysis
	design
	coding
	functional testing
		impressed with mathematica regression testing
	performance testing
	usability testing
	field testing
	documentation
	user support
work to build consensus among groups

impatient - want to do it now
don't like returning to decided issues

History:
	mathematical notation - NCTM and dissertation
	|STAT - in use for 20 years