Skip to content

Instantly share code, notes, and snippets.

@kevsmith
Created August 1, 2016 22:03
Show Gist options
  • Save kevsmith/bda6b1ce3037cce2db2ab94a5a2738b8 to your computer and use it in GitHub Desktop.
Save kevsmith/bda6b1ce3037cce2db2ab94a5a2738b8 to your computer and use it in GitHub Desktop.
CLI & interactive programming research

Gracoli: A graphical CLI

Command Line Interface (CLI) is the most popular and basic user interface to interact with computers. Despite its simplicity, it has some limitations in terms of user experience. For example, sometimes it is hard to understand and interpret the textual output of the command. In this paper we describe the limitations of command line interfaces and propose Gracoli1: A graphical command line interface that takes advantage of both text-based interface and graphical user interface to provide better user experience and perform complex tasks. We demonstrate some of the useful applications and features of Gracoli. Sometime such a hybrid system provides and combines the strengths of CLI and GUI to perform specific tasks. We explore some useful applications of Gracoli to create a new kind of user experience. Command line interface makes accessibility faster and Graphical User-Interface makes output more interactive and understandable.

YouTube

Paper

Site

Empowering Interfaces for System Administrators: Keeping the Command Line in Mind when Designing GUIs

In terms of usability, network management software based on command line interfaces (CLI) is efficient but error prone. With GUIs, a new generation of security tools emerged and were adopted by young system administrators. Though usability has improved, it has been argued that CLI-based software tends to support better user performance. Incorporating CLI advantages into graphical versions (or vice versa) remains a challenge. This paper presents a quantitative study regarding system administrators' practices and preferences regarding GUIs and CLIs and reports on initial results of a usability evaluation performed on proposed interfaces that are informed by our study. Personalization features are particularly appreciated by network administrators, which suggests possible strategies for graphical interface designs that improve user experience while maintaining the positive aspects of CLI-based software.

Paper

CLI-mate: an interface generator for command line programs

We introduce CLI-mate, a framework to facilitate develop- ment of user-friendly interfaces for command line programs. In the agile development environment of bioinformatics, many command line programs are created quickly to fill the gaps between complex information processes. A command line interface (CLI) is sometimes sufficient for the task, but it limits adoption by a broader audience. As such, it is often necessary for the developer to create a wrapper that pro- vides a more user-friendly interface. Furthermore, the CLI itself might not meet minimal requirements, or is subject to change. Dealing with these changes, as well as wrapping the program itself is the focus of this research.

Paper

Interleaving of Modification and Use in Data-driven Tool Development

Programmers working in a Unix-like environment can easily build custom tools by configuring and combining small fil- ter programs in shell scripts. When leaving such a text-based world and entering one that is graphics-based, however, tool building is more difficult because graphical tools are typi- cally not prepared to be easily re-programmed by their users. We propose a data-driven perspective on graphical tools that uses concise scripts as glue between data and views but also as means to express missing data transformations and view items. Given this, we built a framework in Squeak/Smalltalk that promotes low-effort tool construction; it works well for basic programming tools, such as code editors and debug- gers, but also for other domains, such as developer chats and issue browsers. We think that this perspective on graphical tools can inspire the creation of new trade-offs in modularity for both data-providing projects and interactive views.

Paper

Inky: a sloppy command line for the web with rich visual feedback

We present Inky, a command line for shortcut access to common web tasks. Inky aims to capture the efficiency benefits of typed commands while mitigating their usability problems. Inky commands have little or no new syntax to learn, and the system displays rich visual feedback while the user is typing, including missing parameters and con- textual information automatically clipped from the target web site. Inky is an example of a new kind of hybrid be- tween a command line and a GUI interface. We describe the design and implementation of two prototypes of this idea, and report the results of a preliminary user study.

Paper

Modeling Cloud Architectures as Interactive Systems

The development and maintenance of cloud software is com- plicated by complex but crucial technological requirements that are tightly coupled with each other and with the software's actual business function- ality. Consequently, the complexity of design, implementation, deploy- ment, and maintenance activities increases. We present an architecture description language that raises the level of technological abstraction by modeling cloud software as interactive systems. We show how its models correspond to an architecture style that particularly meets the require- ments of cloud-based cyber-physical systems. The result provides a ba- sis for an architecture-driven model-based methodology for engineering cloud software.

Paper

10,000 Miles Across the Room? Emergent Coordination in Multiparty Collaboration

This paper addresses cross-boundary coordination in a multiparty collaboration. So far, collaboration among among multiple dispersed parties has received scant attention in research on cross-boundary coordination. Building on this gap, this study analyzes an extreme case of inter- organizational collaboration between four geographically dispersed groups of engineers from subsidiaries of a Japanese multinational and an American engineering contractor. We explain how coordination is achieved among multiple parties. In our study, diverse boundaries posed challenges to the execution of work tasks being performed. In response, collaborating parties developed four organizing processes for coordinating their task-related activities, comprising information sharing, task negotiation, task execution and task integration. We suggest that together, these processes constitute a dynamic coordinating structure that is developed and enacted in parties' everyday collaborating and coordinating activities, which may enable but can also impede the successful execution of joint work tasks.

Paper

Brief Announcement: PUSH, a DISC Shell

This paper explores the use of extended shell pipeline operators to establish distributed workflows and correlate results.

Paper

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment