this link - Loyola Marymount University
Transcription
this link - Loyola Marymount University
Batchboard: Unix Interaction for Everyone Michael Smith, Computer Science Faculty Mentor: John David N. Dionisio, PhD, Assistant Professor Department of Electrical Engineering & Computer Science Loyola Marymount University, Los Angeles Project Questions Background Similar Programs Enter Batchboard Batchboard Implementation Batchboard Status Quo The Unix operating system, along with its associated set of applications, tools, and utilities, is one of the most mature software packages in use today. In its many incarnations both past and present, Unix enjoys wide use in universities, businesses, and networks. A computer’s operating system is the suite of software services, utilities, and applications that performs its fundamental activities. Microsoft Windows is the best known and most widely used operating system, but it is by no means the most stable nor most mature one. This distinction belongs to Unix, an operating system that was initially developed in the 1960s and has been continuously refined and improved since that time. The challenge of making Unix philosophy “friendlier” has caught the interest of many scientists and has produced a wide variety of projects over the years. Batchboard adds a new element to the category of visual Unix interfaces: it seeks to represent available Unix tools in a database. The database is then read by a graphical user interface package that generates a display based on the properties stored in the database. It turned out that Automator serves as a very viable platform for the Batchboard front end. This front end is implemented as an Automator Action, and can be built within the Automator environment. In addition, integration with Automator has the potential of allowing Batchboard to interact with the other non-Unix actions available in Automator, further expanding its usefulness. Design and conceptualization of Batchboard has been completed, and an implementation is in its very early stages. The software is hosted on SourceForge at: However, Unix is virtually unknown in personal computing. Even in the cases of Linux and Mac OS X, both genuine Unix platforms that have less technical or advanced users, Unix is a background or foundation technology, neither seen nor heard, responsible primarily for a computer’s internal housekeeping and management but not for direct interactive use. Thus, Unix programs exist below the radar of most users, despite their potential usefulness and relative maturity in an age when newer software can be unreliable and error-prone. Because their stream-oriented, modular paradigm does not fit the current window-menu-pointer conventions of personal computers, the general population never experiences these programs’ reliability, stability, maturity, flexibility, and power. Is this technical divide unavoidable? Is it possible to design an interaction model that enables average personal computer users to see, explore, and utilize traditional Unix programs? The Batchboard project seeks to answer that question. Unix is distinctive for many reasons beyond its maturity and stability. A broad spectrum of programs whose functions greatly exceed the core tasks of an operating system exists for Unix. In addition, these programs share a common paradigm that allows them to work together extremely well, without a priori knowledge of each other’s functionality. One can generally assume that a Unix application will interoperate with other applications. If it does not, then such a program is said to violate Unix conventions. Eric S. Raymond, one of the key proponents of the open source software movement, analyzes Unix’s design philosophy and culture in his book The Art of Unix Programming. Raymond concludes that Unix software, on both philosophical and technical levels, stands as the most effective, flexible, and reliable software model to date. Despite such qualities, this “bedrock of unchanging basics,” in Raymond’s words, remains unappreciated and underutilized by today’s typical computer user. One of its key strengths — its emphasis on providing “mechanism, not policy” — also results in its relative inaccessibility to non-technical users. Squish, by Henry et. al., proposed to convert the text-based Unix shell — the traditional method for invoking Unix functions — into a graphical metaphor. Borg built upon Squish with IShell, which added a visual scripting environment, IScript, for specifying chains of commands to be executed in sequence. Subsequently, VUFC (visual Unix-filter components) by Spinellis deemphasized an interactive graphical shell and focused on a visual programming environment. While these projects all propose a visual interface to Unix components, they are intended for programmers, not end users. Other projects do target the end user, although they emphasize different tools from the Unix software base. The MediaPipe project focuses only on videooriented utilities. Apple’s Automator is more general, but is focused less on Unix and more on the scriptable functions in Mac Internet and “digital lifestyle” products. Finally, Shellac adds selected Unix tools to Automator. However, it requires custom programming for each individual Unix tool. The database is initially built by the Batchboard Author program. For now, it is created manually, but a future element of Batchboard is an automated element that can scan the programs on a computer, look up their instructions (called “man pages” in Unix terms), then build the database on its own. The end-user Batchboard Action client then reads this database and allows the user to choose which Unix programs to invoke. The Batchboard Action also allows the user to connect these programs together, so that they work like Unix “pipes” on a text-based shell. http://sourceforge.net/projects/batchboard Batchboard Author reads commands from Batchboard Action stores commands selects command Batchboard Database pipes to Available Commands References Kjell Borg. IShell: a visual Unix shell. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pages 201–207, New York, NY, USA, 1990. ACM Special Interest Group on Computer-Human Interaction, ACM Press. Apple Computer, Inc. Mac OS X Developer Connection. URL: http:// developer.apple.com/macosx, 2004. Apple Computer, Inc. Mac OS X v. 10.4 Tiger Developer Overview: Automator. URL: http://developer.apple.com/macosx/tiger, October 2004. Éric Lévénez. Unix history. URL: http://www.levenez.com/unix, 2004. Stephen Figgins, Ellen Siever, and Aaron Weber. Linux in a Nutshell. O’Reilly, 4th edition, June 2003. T. R. Henry and S. E. Hudson. Squish: A graphical shell for Unix. In Graphics Interface, pages 43–49, Toronto, Ontario, Canada, 1988. Canadian Information Processing Society. Charles C. Mann. Why software is so bad? Technology Review, June 2002. Jason McIntosh, Chris Stone, and Chuck Toporek. Mac OS X in a Nutshell. O’Reilly, January 2003. Jakob Nielsen. Usability Engineering. Morgan Kaufmann, September 1994. Donald A. Norman. The Design of Everyday Things. Basic Books, 1st Basic edition, September 2002. Gaspard Petit and Antoine Missout. MediaPipe. URL: http:// mediapipe.sourceforge.net, 2002. Eric S. Raymond. The Art of Unix Programming. Addison-Wesley, September 2003. Portland Pattern Repository. Policy and mechanism. URL: http://c2.com/cgi/wiki? PolicyAndMechanism, 2004. Ben Shneiderman and Catherine Plaisant. Designing the User Interface: Strategies for Effective Human-Computer Interaction. Addison Wesley, 4th edition, March 2004. Diomidis Spinellis. Unix tools as visual programming components in a GUI-builder environment. Software — Practice and Experience, 32(1):57–71, 2002. Edward R. Tufte. Envisioning Information. Graphics Press, May 1990. Edward R. Tufte. Visual Explanations: Images and Quantities, Evidence and Narrative. Graphics Press, February 1997.