Application id: 18987 Date: 2000-08-30 3:30 pmQUIZ | 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:
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/
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).
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.
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.
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:
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.
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.
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