Computer Science 2574
Intro to Data Structures & Soft Eng

The Amulet GUI library is no longer being used in CS 1704. Students may learn about Amulet on their own, but it may NOT be used in the implementation of course assignments. The Amulet library is no longer being supported by the CS 1704 instructor(s) or TA(s).


The Amulet (Automatic Manufacture of Usable and Learnable Editors and Toolkits) GUI is a cross-platform C++ library. Developed at the CS Dept at Carnegie-Mellon Univ. in the CMU HCI Institute team lead by Dr. Brad Myers, Senior Research Scientist. (Please do NOT join the Amulet listservs until reading further.)


To get started with Amulet under MS Windows using MS Visual C++, visit the Amulet home page and download the Amulet 3.0 zip archive. Download the Amulet 3.0 Reference Manual in Acrobat PDF format.


Follow the instructions in chapter 1.4.3 of the reference manual for Installing Amulet on a PC. Some further suggestions are listed below:


  1. When decompressing the Amulet 3.0 zip archive. you may install it in any subdirectory, but I recommend install it off the root of a drive (d:\amulet). Be sure to check the WinZip "Use Folder Names" option when unzipping.To avoid possible problems do not install it under a folder directory which contains spaces in any of the folder names. A total of approximately 90MB will be needed for a complete installation and library build.


  2. Add the Amulet environment variables to your system using the directions in section Under NT, open the system contol panel and bring the Environment tab forward. Enter the amulet environment variable name and its value at the bottom of the dialog and hit set to store, for each variable. Be sure to use "Makefile.vars.MSVC5.Win32" value for the AMULET_VARS_FILE variable regardless of whether you are using version 5.0 or 6.0 of MS Visual C++.


  3. To build the Amulet library and accompanying programs open the amulet.mak makefile in the bin directory under the amulet install directory. In MS Visual C++ you will need to select File -> Open Workspace... and set the dialog File of type: field entry to Makefiles (.mak). From the Build menu select Build all. The library and support programs are rather extensive and will take some time to compile and link.


Learning Amulet

In order to learn Amulet all students must read and work their way through Chapter 2, "Amulet Tutorial" in the Amulet 3.0 Reference Manual. This will require you to copy the Amulet tutorial dir and compile it. (When opening the copied tutorial workspace the first time, you will need to change the Files of type: in the Open Workspace dialog to Projects (.dsp) -- allow MSVC to go ahead and convert it if it asks.)

MSVC will not be able to find the <amulet.h> header file and the amulet.lib file unless you do the following. From the Tools menu, select Options and click on the Directories tab. In the Show directories for menu: choose Include files and add d:\amulet\include in the Directories list. Then choose Library files and add d:\amulet\lib in the Directories list. This is described in section of the Amulet manual. The following section describes how to create your own project file for Amulet, but you need to go through the tutorial first.)



Amulet Listservs

Multiple Amulet listservs are listed on the Amulet Web site. I would ask students NOT to join these listservs. They are for experienced Amulet users. I will be very displeased if I learn of students joining these listservs against my instructions. You will not be gaining an edge over your fellow students by doing so and I will find out. I do not wish to deal with upset Amulet listserv users and owners who do not feel that they should be subjected to the email questions of my students while they are learning Amulet. Joining the Amulet listservs against my instructions will constitute grounds for immediate removal from the CS1704 listserv (! Students inundating an experienced programming listserv with beginning questions will reflect poorly on VT and myself, so be forewarned. I practice Nettiquitte and I expect my students to do so.

Students having problems with Amulet can post to the course listserv. Between fellow classmates, TAs and myself there will be plenty of help available. Be aware that the TAs and myself are learning Amulet along with you so please be patient and considerate of the suggestions and help we offer. I am sure that many of you will probably pick it up faster than we can. Students who go above the call of duty in helping out their fellow classmates in learning Amulet on the listserv will earn my thanks and a surprise reward :-)

While everyone is learning Amulet, I am temporarily suspending the listserv restriction of NOT allowing students to post source code. This will only apply to Amulet tutorial and instructional code examples. Posting of source code dealing with the course projects is still forbidden.


Open Amulet

At the Amulet Web site you will find a link to the OpenAmulet Web site. Since Government funding for Amulet has ceased, a group of programmers lead by Robert M. Muench in Germany have undertaken to continue development of Amulet. I am sure that Amulet supplies all of the programming power that we will need and since OpenAmulet is still in a state of development I would prtefer that students use Amulet.


Amulet Code Examples

Short code files demonstrating various Amulet features.


Amulet Interface Code Integration

A discussion describing how to design the integration of Amulet interface code into an existing system.


Further Exploration (other GUI Libs)

In case anyone is interested here are a few of the other GUI libraries I considered for our use:


D. Barnette 4/12/99 Virginia Tech © 1995-1999