List of Systems for Brad Myers and Students

The names of most of my projects, and those of my students, are acronyms, generally based on gemstones or rocks. Below is a summary of all the systems and what they stand for, and usually a reference to find out more about the system.

I am happy to say that one of my graduated students went on to have his own series of systems with acronyms based on a theme: Cloth. See James Landay's systems: Silk, Satin, Suede, Denim, Damask, WebQuilt, etc.

The systems are approximately in reverse chronological order:
    Autocomplete Letting Apache Beam Applications Succeed Through Exploration Rapidly
    Plugin for PyCharm code editor for Python to help write code using the Beam API.
    2018 - (on-going)
    Automation Programming on Phone Interfaces using Natural-language Instructions with Task Examples
    Tool to allow end-user programmers to create generalizations verbally while using mobile phones and programming-by-example. Part of Sugilite.
    2018 - (on-going)
    Users Need Accelerators for Knowledge for Implementations in Technology Environments
    Research on supporting knowledge organization for programmers.
    2017 - (on-going)
    Recollection Of Serial Experiments: Quiet Utility Always Recording Tree-structure Zen
    Research on supporting exploratory programming for Data Scientists.
    2017 - (on-going)
    Object-oriented Blockchain State Interaction and Development Implementation And Notation
    Research on a new language for programming blockchain programs.
    2016 - (on-going)
  6. LUNA
    Language Usability eNhancements Augmentation
    Research on extensions to Java to support the "Fault Barrier" pattern.
    2017 - (on-going)
    Variations Augment Real Iterative Outcomes Letting Information Transcend Exploration.
    Research on supporting exploratory programming for Data Scientists.
    2016 - (on-going)
    Great Languages Allow Class Immutability Easily and Readily.
    System to enforce immutability in Java.
    2016 - (on-going)
    Enabling Programming of IoT Devices On Smartphone Interfaces for The End-users.
    Tool to allow end-user programmers to create automations for Internet of Thing (IoT) devices using mobile phones and programming-by-example. Part of Sugilite.
    2016 - (on-going)
    Smartphone Users Generating Intelligent Likeable Interfaces Through Examples.
    Research on smartphone usage and optimization with respect to input.
    2016 - (on-going)
    Making Object Oriented Novel Software Tools Optimized for Noting Exceptions.
    Research on exception handling, and new plugin for Eclipse to help with exception handlers.
    2016 - (on-going)
    Allowing Quick Undoing of Any Marks And Repairs to Improve Novel Editing.
    Paint program to explore selective undo using the script model.
    2014 - (on-going)
  13. DACITE
    Design Annotations for Complementing Interfaces Targeting Effectiveness.
    Plugin for Eclipse to help with API Usability.
    2014 - 2016
  14. GNEISS
    Gathering Novel End-User Internet Services using Spreadsheets.
    A novel spreadsheet-based language for programming web services.
    2014 - (on-going)
    Cloud9 Recorder of Your Operations by Listening to Interactions in The Editor.
    A port of Fluorite to JavaScript for the Cloud9 IDE for the web.
    2014 - (on-going)
  16. SPINEL
    Smartphones Providing Information Needing External Lists.
    A web-based tool for connecting to remote data sources without programming.
    Adding Zest to Undoing and Restoring Improves Textual Exploration.
    A plug-in for Eclipse that facilitates backtracking (undoing) of code.
    2012 - (on-going)
    Full of Low-level User Operations Recorded In The Editor.
    A plug-in for Eclipse that records the low-level user and Eclipse events to enable analysis.
    2011 - (on-going)
    GRAphical Palettes Help Instantiate Types in the Editor.
    A plug-in for Eclipse that pops up type-specific palettes to help users enter code, especially for constant literals.
    2011 - 2012
  20. EUCLASE (renamed to be "InterState", which is not an acronym; also ConstraintJS)
    End User Centered Language, APIs, System, and Environment.
    Aims to create an easier way to author interactive behaviors, starting with studies of Interaction Designers.
    2007 - (on-going)
  21. EUKLAS
    Eclipse Users' Keystrokes Lessened by Attaching Samples.
    A plug-in for Eclipse for JavaScript that helps copy and paste from example code. (Euklas is German for Euclase.)
    2009 - 2011
    Construction And Language Completion Integrated Throughout Eclipse.
    A plug-in for Eclipse that uses the Jadeite database to provide better code completions.
    2009 - 2011
    Associative Perusing of APIs That Identifies Targets Easily.
    Uses the ideas from Feldspar to build associative Java documentation.
    2008 - 2011
    Java API Documentation with Extra Information Tacked-on for Emphasis.
    New project to create better Java documentation.
    2008 - 2010
    Finding Elements by Leveraging Diverse Sources of Pertinent Associative Recollection.
    Associative retrieval of information. Update of IOLITE. Part of Radar.
    2007 - 2008
  26. FISCH
    Fluid In-Stroke Completion shortHand.
    Word-level completion for unistroke gestural text entry techniques like EdgeWrite.
    2005 - 2007
  27. BERYL
    Browser Extensions for Reducing Your Labor.
    Tools for filling in Web forms.
    2006 - (on-going)
  28. Pocket-PATH
    Pocket - Personal Assistant for Tracking Health.
    Handheld to help lung transplant patients monitor their own health.
    2005 - (on-going)
  29. JASPER
    Java Aid with Sets of Pertinent Elements for Recognition.
    Plug-in for Eclipse to help visualize working sets.
  30. IOLITE
    Intelligent On Line Inferencing for Text and Email.
    Intelligent, coordinated file and email message handling. Part of the Radar Project.
    2005 - 2006
    Clarifications Regarding Your Software using a Toolkit, Architecture and Language.
    Architecture that allows users to ask "Why" questions of their applications. Part of the Natural Programming Project.
    2005 - 2006
    Using Novel Interfaces For Operating Remotes that Match.
    System to generate consistent user interfaces, as part of the PUC Project.
    2005 - 2006
    Basic Approaches to Rewriting Instructions as Structured Textual Abstractions.
    Novel text editor for code, especially for Java. Part of the Natural Programming Project.
    (a "barista" is a person who makes coffee.)

    2005 - 2006
  34. MICA
    Makes Interfaces Clear and Accessible.
    Helps programmers learn APIs using smarter search. Part of the Natural Programming Project.
    2005 - 2006
  35. CITRUS
    Creating Interactive Tools for Reshaping and Utilizing Structure
    New toolkit for creating user interfaces for structured data. Part of Marmalade.
    2005 - 2007
  36. SLATE
    Spreadsheet Language for Accentuating Type Errors
    Michael Coblenz's undergrad project to provide labels and units in spreadsheets. Part of the Natural Programming project.
    2005 - 2006
    Clipboard Interaction Techniques that Recognize Information such as Names and Events
    Project to investigate how to make the cut-copy-paste clipboard smarter and more effective. This is part of Radar.
    2003 - 2004
  38. RADAR
    Reflective Agents with Distributed Adaptive Reasoning
    This is part of the PAL program: Perceptive Assistant that Learns, which is part of the EPCA program: Enduring Personal Cognitive Agent.
    Project to investigate intelligent assistant for office tasks.
    2003 - 2008
  39. EUSES
    End Users Shaping Effective Software
    Consortium performing research on how to make end-user software more reliable. It is helping to fund the Natural Programming Project, including Marmalade and WhyLine (below).
    2003 - (on-going)
    Workspace that Helps You Link Instructions to Numbers and Events
    Visualization as part of the Marmalade project.
    2003 - (on-going)
    Mechanisms that Avoid Recurring Mistakes in Alice by Linking Abstractions to Data and Events
    Project to create a new programming environment that makes debugging easier.
    2003 - (on-going)
    PDAs for Entry of Both Bytes and Locations from External Sources
    Project to investigate use of hand-held computers simultaneously with PCs.
    1998 - (on-going)
  43. SILVER
    Simplifying Interface Layout and Video Editing and Reuse
    Project to create an easy to use video editor.
    1999 - 2002
  44. LAPIS
    Lightweight Architecture for Processing Information Structure
    PhD thesis of Rob Miller. Processing of semi-structured text.
    1998 - 2002
  45. HANDS
    Human-Centered Advances for Novice Development of Software
    PhD thesis of John Pane. Programming language and environment for children. 
    1995 - 2002
  46. TOPAZ
    Transcripts Of Programs Activated with Zeal
    Scripting facility built into Amulet
  47. AMULET
    Automatic Manufacture of Usable and Learnable Editors and Toolkits
    Toolkit and application framework for creating user interfaces in C++. Large-scale research project.
    1994 - 1997
    (not an acronym)
    Preliminary technique for creating web pages by demonstration.
  49. GAMUT
    Games Are Made Using This
    Interactive tool for creating games and other user interfaces by demonstration. PhD thesis of Richard McDaniel. Created using Amulet.
    Toolkit and Application Layer for Synchronous Multiple-user Access over a Network
    Never-finished networking layer for Amulet.
  51. GLASS
    Graphical Layer And Server Simplifier
    PostScript printing driver.
    September 1992 - May 1993
  52. GARNET
    Generating an Amalgam of Real-time, Novel Editors and Toolkits
    Toolkit and application framework for creating user interfaces in Lisp. Large-scale research project.
    1989 - 1994
  53. AGATE
    A Gesture-recognizer And Trainer by Example
    Tool to create gesture recognizers. Implemented in both Garnet and Amulet.
    1989 - 1997
  54. GILT
    Graphical Interface Layout Tool
    Interface builder tool to layout widgets. Implemented in both Garnet and Amulet.
    1989 - 1997
  55. GEM
    Graphics and Events Manager
    Lowest level of the Garnet and Amulet implementations. High-level interface to the window manager.
    1989 - 1997
  56. OPAL
    Object Programming Aggregate Layer
    Graphical level of the Garnet and Amulet implementations. Provides object-oriented graphics and automatic refresh.
    1989 - 1997
  57. ORE
    Object Registering and Encoding
    Object and constraint level of Amulet. Provided prototype-instance object model. (Equivalent to KR layer of Garnet).
    1994 - 1997
  58. KR
    Knowledge Representation
    Object and constraint level of Garnet. Provided prototype-instance object model. (Equivalent to ORE layer of Amulet).
    1989 - 1994
  59. SILK
    Sketching Interfaces Like Krazy
    PhD thesis system of James Landay. Create interfaces by just sketching them. Implemented in Garnet.
    Mostly Automated, Remarkably Quick User Interface Software Environment
    Interactive tool to create some applications by demonstration. Implemented in Garnet.
  61. GOLD
    Graphs and Output Laid-out by Demonstration
    Created business charts from examples of desired look. Implemented using Garnet.
    Text-formatting Ought to Use and Rely on Macrostyles And Layout Inferred Nicely by Example
    Creating text-formatting styles and other properties by example. Partially the Master's Thesis of Andrew Werth.
    1990 - 1992
    Data AtomaTa CornucopiA pNeumatic Olfactory I/O deviSE Tactile Manipulation 
    System that reallY doeS creaTE user interfaces that have nice featuMs
    Fanciful parody of user interface software papers.
    1991 This article introduced the following fictitious technical report:
    Lisp-based Assistant for Prototyping Interface Designs Allowing Remarkable Yield
    Interactive tool to create some applications by demonstration. Implemented in Garnet.
  65. C32
    CMU's Clever and Compelling Contribution to Computer Science in CommonLisp which is Customizable and Characterized by a Complete Coverage of Code and Contains a Cornucopia of Creative Constructs, because it Can Create Complex, Correct Constraints that are Constructed Clearly and Concretely, and Communicated using Columns of Cells, that are Constantly Calculated so they Change Continuously, and Cancel Confusion
    Spreadsheet-like system that allows constraints on objects to be specified by demonstration. Intelligent cut and paste. Implemented using Garnet.
  66. JADE
    Judgment-based Automatic Dialog Editor
    Created dialog boxes from a specification. Implemented in Garnet.
    Create desktop scripts by example. Thesis work of Francesmary Modugno.
  68. CORAL
    Constraint-Based, Object-Oriented Relations And Language
    Predecessor to Garnet. Investigated Prototype-instance object system and constraints with pointer-variables.
    A MacGnome Environment That Helps You See Types
    Visualization of data types in a Pascal programming environment for the Macintosh called MacGnome.
    Programming by Example for Real-time Interface Design Obviating Typing
    PhD thesis of Brad Myers. Allowed widgets to be created by example.
    Screen Allocation Package Providing Helpful Icons and Rectangular Environments
    One of the first commercial window managers. For the PERQ Workstation.

Maintained by Brad Myers