On NoteCards development for Gordon Keller Overview NoteCards is an application that provides a way for users and programmers to interlink and manage other applications that run in the Xerox Lisp environment. It is has been and is used internally and externally on an experimental basis. XSIS sells an unsupported version for $2000. AIS has announced that it will release NoteCards as a supported product 3rd quarter this year, for $4000 but has insufficient resources to do that. AIS does have programming resources that could be used to re-write NoteCards in CommonLisp and enhance it to make it a more maintainable product attractive to a wider market. Introduction NoteCards was developed primarily as an experimental authoring environment, but is used 1. as is for a wide variety of "idea processing" tasks and 2. as a programming basis for development of intelligent applications. Cards are built out of the windowed applications available in the Xerox Lisp Environment. In particular TEDIT, Sketch, and Grapher play important roles. NoteCards is heavily dependent on these applications. Representations of cards, called links, can be placed inside other cards thus providing a powerful, general purpose way to organize and inter-relate ideas. NoteCards has been used "as is" for a wide variety of applications that range from authoring to project management. In addition, there is a well defined programmers interface used to build more special purpose applications. These range from intelligent electronic message handlers to environments for instructional course development. These programmers have created new types of cards out of the original basic set. For instance, the "Message Card", "Video Cards" and "Animation Cards". NoteCards 1.2i and 1.2k (Intermezzo and Koto versions) have been released and are available from XSIS on an unsupported basis for $2000. In this version links must point to cards within a closed database called a NoteFile and only one NoteFile may be open at a time. The original implementer of NoteCards is Frank Halasz. He has accepted a position at MCC and plans to leave in October where he hopes to continue work on NoteCards. A lot of work has been done over the last two years by Randy Trigg. His NoteCards hacking time is currently limited to one day a week, paid for by AIS. Kirk Kelley works full time for AIS. He is physically located at PARC in order to be close to the other NoteCards developers and reports to Tom Moran at PARC. Other programmers at PARC and outside Xerox use NoteCards to develop experimental applications. At this point NoteCards contains five to six man-years of development. Details of Version 1.3 development NoteCards Version 1.3 is being cleaned up for release to internal users. It allows multiple NoteFiles to be open on the screen at the same time but does not support links from one NoteFile to another. The ability to edit arbitrarily linked whole structures of cards was added. This works to transfer whole structures of cards from one NoteFile to another. Hooks are being added so that a NoteCards server could be used. This will allow multiple simultaneous users of the same NoteFile thus facilitating research in collaboration using NoteCards as the technology base. There are 60 reported unfixed bugs. This number is shrinking currently but is expected to at least double when it is released to Internal users. Along with the list of bugs there is a long list of change requests from users. Most of these represent fundamental needs that ideally would be addressed before a supported product is released. The system is inelegant in several major areas. A draft product specification was written last January. Although AIS announced they will release a version of NoteCards originally 4th quarter 85 and then 3rd quarter 86, the marketing, product management, documentation, testing, or customer support resources have been unavailable to do this. As a result the NoteCards development group decided to stop productization efforts and add new features. This was done for the following reasons: The developers do not want NoteCards treated in a way that will tarnish its reputation. It gradually became apparent over the last year that AIS did not have enough resources to release NoteCards properly and most recently that the necessary support for applications was going to be some years off. Marketing Strategy Some very interested potential AIS customers include the AESIR Group in New York, Baylor medical wing of Rice in Houston, Prudential Finance company, and Delfin Systems (a Gvt. Dev. House in San Jose). Kirk has talked to representatives from these groups about their projects and identified their major needs. From the needs of the potential customers and the current constraints on AIS resources, some directions for future development can be identified. The main questions are A. what should be the primary requirements for 2.0 and B. when to stop work on 1.3 and start work on 2.0. Perhaps the most pervasive need requested by potential customers is for an implementation that runs in CommonLisp (CommonLoops). A second is the desire to have some exclusivity in the development of NoteCards. Another strong need requested is cross-file and cross-environment links. The existing user community also has a long list of requests for extentions to NoteCards. Some of these include tools to facilitate experimentation with collaboration and user tailorability which would be highly valuable features of the product. There is a tendency for the sales force to demonstrate NoteCards as an end user product. It is one of the few things they can demo to their potential customers that is easily comprehensible. However, several reasons make marketing NoteCards as an end user product unwise. * The Interlisp house of cards which makes up NoteCards may not meet industry standards for end-user reliability and robustness. * AIS should not be seen as competing with their customers for end users. * AIS does not have sufficient resources to turn 1.3k into an end user product. One possible strategy would be to identify a set of pre-release external developers for the 1.3 release for third quarter. These people would be part of an exclusive club of developers that understand and appreciate the goals for release 2.0 but want to start experimenting with NoteCards before 2.0 is released. If AIS does decide to commit the necessary resources to the product, it will take at least another year to release it. This needs to be made clear to all marketing and sales people. If AIS decides not to release it, a sensible strategy would be to license the software to a third party for development. Primary requirements for 2.0 * CommonLisp (CommonLoops) implementation. * Cross-File links * Automatic link creation and maintenance * Recursive card windows (whole cards within cards) * Whole card manipulations consistent with TEdit style. (e.g. shift select whole cards to make links, directly edit TEdit style titles) Factors in when to stop work on 1.3 and start work on 2.0. On the side of emphasizing the Interlisp version: * NoteCards researchers need a stable base on which to build things that have been waiting for such a base. * Effort diverted to CommonLoops and CommonLisp comes out of resources for responding to bugs for Interlisp NoteCards users. * Interlisp NoteCards and work built on it could become products sooner. (If AIS had documentation and testing resources.) On the side of emphasizing CommonLoops work: * For those who are primarily interested in NoteCards for selling machines, what we have now can be sufficient. * There may be no significant market for NoteCards if it is not converted to a CommonLisp based system. * If we devote a lot more effort to the Interlisp version, due to the current lack of resources and perhaps just simply the current state of Interlisp, NoteCards as a vehicle for selling D machines would not be improved commensurate with that effort. * Spending a lot more effort on the Interlisp version increases the danger of it rivaling the future CommonLoops version for resources. This would be a severe risk to the maintenance and growth of both versions. * New features and bug fixes will only have to be implemented once. They will not have to be re-done later. * Some existing bugs will go away because of the cleanliness of object oriented programs and the virtues of hindsight. * The NoteCards base will be more easily maintained, extended and improved because of the cleanliness of object oriented programs. * Our ability to maintain and enhance the code will be improved by virtue of having participated in the design and implementation of it from the ground up. * New NoteCards programmers will find it easier to understand the NoteCards code. * CommonLoops and Xerox Common Lisp will have a major promotion vehicle (the NoteCards environment) encouraging programmers to learn and use it. * Xerox will get much further toward providing an appropriate environment for NoteCards if NoteCards drives the development of such an environment. * There is an opportunity here to migrate NoteCards concepts into a fundamental level of the future LISP world. * The Xerox Common Lisp environment will more likely evolve from the existing Interlisp on which NoteCards heavily depends if the NoteCards productization effort is helping to drive the development of the environment. * Interlisp has many problems (missing mouse clicks, garbage collection waits, overflowing memories, work lost due to crashes, non-premptive scheduling, etc.) that make it inappropriate for the end user NoteCards market that the AIS salesforce needs to sell machines. It is highly unlikely that these problems will be fixed in Interlisp. They are more likely to be solved in the CommonLisp environment. * CommonLoops will have new windowing facilities, such as wegions which would facilitate functions important to NoteCards in the idea processing market, such as recursive windows a la FrameWork and Boxer. * A CommonLoops version of NoteCards would more easily take advantage of the large overlap in Co-Lab and NoteCards needs. It could bring some of the Co-Lab concepts into the marketable product realm much faster. It could add Co-Lab resources to the NoteCards development staff. * We will have a good basis to begin thinking about promoting CommonLinks, a standard for doing NoteCards style inter-linking across environments. There is likeley a huge market beyond just the AI market for such a radically empowering new technology. * All things being equal, Randy's and my time would be best used translating NoteCards to CommonLoops rather than doing documentation, testing, client consulting, and customer support. Some possible development strategies: 1. Do one month of bug fixes on 1.3K and then freeze and devote all effort to the 2.0 "CommonLoops" version. 2. Release 1.3k unsupported for internal users in July, then maintain it half time and develop 2.0 half time gradually freezing 1.3K while increasing work on 2.0. I recommend the first. The only reason for AIS to support the second is if documentation, testing, and customer support resources existed. Some MileStones for 2.0: * Design a primitive linkable Common-Loops frame for use in building general purpose distributed, nestable representations of cards. * Implement the Link class. * Implement cross-file links. * Implement the Card class. * Design a simple, elegant user interface for manipulating representations of cards consistent with TEdit. * Implement TitledCards and the TextCard class. * Produce a minimal NoteCards release with just Text Cards. * Provide a SketchCard package. * Provide a Graph Card and "Browser Card" package built on it. At each step of the way, maintain guidelines for a consistent user interface to become the NoteCards application environment for developing integrated applications. ($$( TIMESROMAN TIMESROMAN  TIMESROMAN  ` Y<GŃœģ Š$J€žÖ”óģ7«84QI÷JQ:2+*48R;2m}|-rhūÖmwƒœR‘”pŪ˜Ļž»&m£Œ‡l2>!A„/+Jzŗ