Topic 8: (Last two papers)

Slides:



Advertisements
Similar presentations
Programming Paradigms and languages
Advertisements

MATLAB Presented By: Nathalie Tacconi Presented By: Nathalie Tacconi Originally Prepared By: Sheridan Saint-Michel Originally Prepared By: Sheridan Saint-Michel.
1 Lecture 8: Constraints Brad Myers Advanced User Interface Software.
1 Lecture 7: Implementing a Prototype: Overview of Using PowerPoint, Flash Catalyst, html, Microsoft Sketchflow/Expression Blend, etc. Brad Myers
1 Lecture 13: Demonstrational Tools Brad Myers Advanced User Interface Software.
Stanford hci group / cs376 research topics in human-computer interaction I/O Toolkits Scott Klemmer 29 November 2005.
Brad Myers A/05-499A: Interaction Techniques Spring, 2014 Lecture 24: Implementation Techniques and Tools for Interaction Techniques 1 © Brad.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Comparing Python and Visual Basic
CLARIN tools for workflows Overview. Objective of this document  Determine which are the responsibilities of the different components of CLARIN workflows.
Prof. James A. Landay University of Washington Autumn 2008 Rapid Prototyping November 10, 2008.
Silverlight Technology. Table of Contents 1.What is Silverlight Technology? 2.Silverlight Overview. 2.1 How it works 2.2 Silverlight development tools.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Contents : What is Silverlight? Silverlight Overview Silverlight Toolkit Overview Timeline & Packaging Silverlight V1.0 & V1.1 Properties of V1.0 Properties.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Lecture 11: Constraints Brad Myers Advanced User Interface Software 1© Brad Myers.
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
Brad Myers /05-640: Interaction Techniques Spring, 2016 Lecture 24: Implementation Techniques and Tools for Interaction Techniques 1 © Brad.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Gravity Control™: Is the simplest system for complex data search and management Introduces a new generation graphic user interface Handles large amounts.
FOP: Multi-Screen Apps
Interaction Design IxD
Features of Authoring Tools
Ashima Wadhwa Assistant Professor(giBS)
Software Requirements and the Requirements Engineering Process
Chapter 2: Database System Concepts and Architecture - Outline
Working in the Forms Developer Environment
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Pei-Yu (Peggy) Chi,, Yang Li1, Björn Hartmann
Lecture 14: Other Kinds of Constraints
Learning to Program D is for Digital.
CHAPTER 5 GENERAL OOP CONCEPTS.
Systems Analysis and Design With UML 2
Unified Modeling Language
Arab Open University 2nd Semester, M301 Unit 5
Prototyping.
Introduction to System Analysis and Design
Lecture 6: Window Manager Input Models
The Object-Oriented Thought Process Chapter 08
Andrew J. Ko & Brad A. Myers Carnegie Mellon University
Specifying gestures by example
Class Announcements 1 week left until project presentations!
Silverlight Technology
Jim Fawcett CSE776 – Design Patterns Summer 2003
Concepts From Alice Switching to Java Copyright © Curt Hill.
CIS16 Application Development – Programming with Visual Basic
Event Driven Programming
Lecture 7: Implementing a Prototype: Overview of Using PowerPoint, Balsamiq, InVision, html, etc. Brad Myers / : Introduction to Human Computer.
Topic 14: Jacob O. Wobbrock, Andrew D. Wilson, and Yang Li. 2007
Brad Myers Advanced User Interface Software Spring, 2017
More Requirements Models
An Introduction to Software Architecture
Direction of refinement – Ideas MEI Honghui 2017/7/1
Recall: ROM example Here are three functions, V2V1V0, implemented with an 8 x 3 ROM. Blue crosses (X) indicate connections between decoder outputs and.
Introduction In today’s lesson we will look at: why Python?
I/O Toolkits Scott Klemmer · 16 November 2006.
Introduction to AppInventor
Direct Manipulation.
CS 321 Human-Computer Interaction
CodePainter Revolution Trainer Course
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Chapter 8 Prototyping and Rapid Application Development
Requirements Analysis Techniques
Brad Myers : Interaction Techniques Spring, 2019
Brad Myers : Interaction Techniques Spring, 2019
From Use Cases to Implementation
Blue Prism Tutorial Every organization wants to lower its costs and keep up with change. Using technology effectively is an important part of doing both.
Presentation transcript:

Topic 8: (Last two papers) Presented by Brad Myers 05-773A4: Computer Science Perspectives in HCI, (CS Mini), Spring, 2017 © 2017 - Brad Myers

Garnet © 2017 - Brad Myers

Garnet GARNET stands for Generating an Amalgam of Real-time, Novel Editors and Toolkits © 2017 - Brad Myers

Garnet project 1987 until about 1994 Large-scale (for the time) toolkit to help programmers create user interfaces faster and easier Lisp programming language Macintosh and X-windows Generated lots of research results and papers (9 papers). In 1994, DARPA made us redo it in C++, which we called "Amulet"  © 2017 - Brad Myers

Garnet system Available by “anonymous FTP” – pre-web Now a sourceforge project (before GIThub) http://garnetlisp.sourceforge.net/ All papers: http://www.cs.cmu.edu/afs/cs/project/garnet/www/papers.html Apparently still some users! © 2017 - Brad Myers

This paper Myers, B.A.; Giuse, D.A.; Dannenberg, R.B.; Zanden, B.V.; Kosbie, D.S.; Pervin, E.; Mickish, A.; Marchal, P., "Garnet: comprehensive support for graphical, highly interactive user interfaces," IEEE Computer , vol.23, no.11, pp.71-85, Nov. 1990. Overview of the project while still in progress © 2017 - Brad Myers

Garnet Architecture © 2017 - Brad Myers

Innovations in Garnet: New ways of doing object-oriented programming New ways to have graphical objects (output) with a new way to handle automatic refresh New ways to handle input (covered in topic 4) New kinds of "constraints," which are ways to declare properties are related, and have the system maintain that. New kinds of higher-level tools, to help non-programmers handle more of the user interface design. See the video (9:30) © 2017 - Brad Myers

Discussion questions What is a good way to evaluate a programming tool? Target application that was built with various toolkits The implementation was smaller in Garnet. Solid enough to have people use Garnet, and provided evidence that it was widely downloaded and used. But this was hard to do, and required that we have a staff programmer to do support. What systems are you aware of that use aspects of what Garnet provided? A key goal of Garnet's "higher-level tools" was to provide capabilities like one finds today in resource editors, Balsamiq, Axure, etc. What additional capabilities would it be good for those kinds of tools to support, for example that Garnet's tools demonstrated was possible? © 2017 - Brad Myers

InterState © 2017 - Brad Myers

Paper Stephen’s PhD thesis work Stephen Oney, Brad A. Myers, and Joel Brandt, "InterState: A Language and Environment for Expressing Interface Behavior", UIST'14, October 5-8, 2014, Honolulu, Hawaii. pp. 263-272.  ACM DL, local pdf, video, project Page. (Cited by 5) Stephen’s PhD thesis work Original goal: make it easier for non-programmers to create interactive behaviors. Combine two programming models that were easier to understand: State transition models (STM) Spreadsheets. Constraints (formulas in spreadsheets) express relationships that must hold STMs control when the constraints apply and don't apply. Became a more sophisticated programming model, and we gave up the goal of making it easy enough for non-programmers to use © 2017 - Brad Myers

Comparison: JavaScript flow of control var isDragLocked = false, mm_listener = function(mm_event) { draggable.attr({ x: mm_ev.x, y: mm_ev.y }); }, mu_listener = function(mu_event) { removeEventListener("mousemove", mm_listener); removeEventListener("mouseup", mu_listener); }; draggable.mousedown(function(md_ev) { draggable.attr({ x: md_ev.x, y: md_ev.y }); addEventListener("mousemove", mm_listener); addEventListener("mouseup", mu_listener); }).dblclick(function(md_event) { if(isDragLocked) { removeEventListener("mousemove", mm_listener); } else { addEventListener ("mousemove", mm_listener); } isDragLocked = !isDragLocked; }); …then after they drag and double click again to end the drag lock that control flow looks like this

Examples © 2017 - Brad Myers

Innovations A new model for representing programs A novel visual representation of that model An extension of the idea of object-oriented inheritance that supports behavior reuse, not just method and values. A live editor that provides new ways to edit code and data while the code is running. A novel input mechanism that provides a new way to deal with multi-touch and gestures (not described in the current paper). The evaluation involved comparing InterState to programming in JavaScript, and the InterState users were significantly faster. See the video (3:36) © 2017 - Brad Myers

Discussion Questions Did you find the combination of constraints and STMs compelling? Easy to understand? What parts were most complicated? There is usually a trade off between the power of a tool (what can be done with it) and the learnability. This is clearly evidenced in this work. Are there ways to increase the learnability of InterState while retaining the power? Can you think of situations (in other tools) in which both the learnability and power can be improved together (where there isn't a tradeoff)? © 2017 - Brad Myers