5462210
Programming as an Experience: The Inspiration for Self
The Self system attempts to integrate intellectual and nonintellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation each help create this integrated experience. The language semantics embed the programmer in a uniform world of simple objects that can be modified without appealing to definitions of abstractions. In a similar way, the graphical interface puts the user into a uniform world of tangible objects that can be direcdy manipulated and changed without switching modes. The implementation strives to support the world-of-objects illusion by minimizing perceptible pauses and by providing true source-level semantics without sacrificing performance. As a side benefit, it encourages factoring. Although we see areas that fall short of the vision, on the whole, the language, interface, and implementation conspire so that die Self programmer lives and acts in a consistent and malleable world of objects.
45789414
A Simple and Unifying Approach to Subjective Objects
Abstract Most object-oriented languages are objective: an object always responds to the same message in the same way. Subjective objects more closely match naturally occurring systems, and they provide consistent solutions to a wide range of problems, problems that otherwise must be solved by varied and specialized mechanisms. Applying a perspective-receiver symmetry principle in designing the subjectivity semantics of an object-oriented language results in a semantically uncluttered language with a surprisingly wide range of utility. We employ this approach in creating the language Us, a subjective version of Self.
16499745
The Self-4.0 user interface: manifesting a system-wide vision of concreteness, uniformity, and flexibility
Manipulating programs is hard, while manipulating objects in the physical world is often easy. Several attributes of the physical world help make it comprehensible and manipulable: concreteness, uniformity, and flexibility. The Self programming system attempts to apply these attributes to the world within the computer. The semantics of the language, the efficiency and fidelity of its implementation, and the architecture of its user interface conspire to make the experience of constructing programs in Self immediate and tangible. We describe the mechanisms used to achieve this goal, and illustrate those mechanisms within the context of an extended programming task.
9913634
Generalized and stationary scrolling
We present a generalized definition of scrolling that unifies a wide range of existing interaction techniques, from conventional scrolling through pan and zoom systems and fish-eye views. Furthermore it suggests a useful class of new scrolling techniques in which objects do not move across the display. These “stationary scrolling” techniques do not exhibit either of two problems that plague spatial scrolling system: discontinuity in salience and the undermining of the user's spatial memory.
41296063
Prototype-based languages: object lessons from class-free programming
18347435
Supporting flexible roles in a shared space
People in a group play various roles. Manager, intern, department chair, guest speaker, the woman who knows how the fax machine works, the guy who got the pizza, the person speaking now, the person capturing this on the whiteboard; roles can be formal or informal, long-lived or ephemeral. They can be bestowed by ceremony, or assumed with the invisibility of the taken-for-granted. But it is the interaction of minds that creates and sustains a role: a role is a human construct. Even roles like “mother” or “father”, which would seem to demand certain biological characteristics, cannot be defined at any depth without appeal to social convention. The largely hands-off approach taken by nature seems to work fairly well for groups of humans: when there is confusion or concern about who is playing what role, it is generally good for a group to work it out as a social issue. If roles were encoded solely in human biology or in physical law, life might be simpler but certainly more stulfiying.
16344666
A Model for Learning Systems
A model for learning systems is presented, and representative AI, pattern recognition, and control systems are discussed in terms of its framework. The model details the functional components felt to be essential for any learning system, independent of the techniques used for its construction, and the specific environment in which it operates. These components are Performance element, instance selector, critic, earning element, blackboard, and world model. Consideration of learning system design leads naturally to the concept of a layered system, each layer operating at a different level of abstraction.
2984394
Augmented Reality Chinese Checkers
This paper presents an application, Augmented Reality Chinese Checkers that we created to investigate user interface issues for table top projected augmented reality entertainment applications. A new tangible interaction device, the wireless button enhanced fiducial, is introduced to support selection tasks in mixed reality environments. The Augmented Reality Chinese Checkers game is built on a framework which can be used to create other computer supported collaborative games. The system is built using the Passive Detection Framework to track the 6 degrees of freedom position in real time of marked objects in the environment. The game supports up to six players at a time.
226549
Using type enforcement to assure a configurable guard
Prior to the introduction of guard systems for electronic mail, guards tended to be overly specialized and not versatile enough for today's user community. The paper examines the use of type enforcement to create a highly assured yet administrator configurable guard. The administrator must be able to trust that the configuration provided will indeed be followed. This occurs by using highly assured or trusted components. These trusted components are then linked together via type enforcement to form a pipeline, with one input channel for data to enter the guard, and one separate, connected output channel for data to exit the guard. These channels are connected via assured processes whose behavior is restricted by the type enforcement mechanism. Furthermore, type enforcement is also used to isolate many components of the guard, which simplifies the assurance arguments. This technology is applied in the latest operational guards developed by the Secure Computing Corporation.
44358582
Strategies to Improve Variable Selection Performance
11197998
A Modular Tool Kit for Knowledge Management
We describe an integrated programming environment for develop ing knowledge-based systems. The environment contains a variety of general-purpose tools: a rule interpretation system, a semantic integrity manager, a task representation system and a file manager. Although the tools have different origins (eg. rule based systems, database management, process control), an obiect-oriented foundation lends modularity and consistency to the tool kit.