Name: Donald Edward Hopkins Address: 88 Mercy St Mountain View, CA 94041 US Citizen Phone: (415) 969-2348 Programming languages: Forth, Lisp, Scheme, Logo, PostScript, C, various assembler languages, C-shell, Awk, Pascal, Fortran, BASIC, Image/Query. Software experience: Systems: Apple ][ (DOS 3.3, UCSD Pascal, CP/M, ProDOS) Macintosh (MacOS, A/UX) Commodore Pet, Commodore 64, TRS-80 HP2000, HP3000 (MPE) PDP-10 (ITS), PDP-11/24 (RT-11), PDP-20 (Twenex) Pyramid (OSx) Silicon Graphics Iris 4D (System V Unix) Sun-1, -2, -3, -4 and 386i (4.1, 4.2BSD, SVR4 Unix) Symbolics Lisp Machine VAX 11/780, 8600, Microvax (4.1, 4.2, and 4.3BSD Unix, Ultrix) Xerox 8010 Workstation (Star, Viewpoint, XDE) ZMOB Parallel Processor (Forth) Forth: 6502 (Apple), Z80 (ZMob), 68000 (Sun), SPARC (Sun), C (Vax), device drivers, terminal programs, graphics, animation, porting software, embedded extension languages, rapid prototyping Networking: Local area networking, Internet, USENET, TCP/IP, RPC, NFS, electronic mail, electronic mailing list administration Text editors: ITS Emacs, Gosling Emacs (Maryland, UniPress), Gnu Emacs, Zmacs, Micro Emacs Window systems: SunView, X10, X11, NeWS, 4Sight, OpenWindows, Mac, Lisp Machine, Xerox Star (Viewpoint), XDE, Software Express Videotex Education: Graduated from Parkdale High School, 1984. Graduated from the University of Maryland, May 1990 (BS Computer Science). Classes: Mobile Robot Project Participated in the design of a mobile robot that navigates using Polaroid sonar sensors. Wrote a robot simulation on a Symbolics Lisp Machine to test out robot algorithms. Data Structures Wrote a Lisp interpreter in C, with macros, closures, a garbage collector, a debugger, I/O redirection, and other amenities. Implemented a memory allocator in Forth. Image Processing Wrote an image processing tool for plotting points on a geodesic sphere (a tessellated icosahedron), and determining the location with the most points. Computer Graphics Wrote a library of graphics device drivers for the Sun monochrome frame buffer, and the Sun "cg1" color frame buffer, a rasterop package, and a program to stretch, shrink, and shear bitmap images. Computer Speech Design and Analysis of Computer Algorithms Artificial Intelligence Operating Systems Organization of Programming Languages Computer Organization Computer System Architecture Independent Study Interests: Computers, art, music, science fiction, bicycling, electronics, object oriented programming, extension languages, visual languages, cellular automata, ubiquituous computing, pen based computing, hypertext, creative writing, electronic mail, free software, bad puns, legos. Honors and awards: Programming competitions: On the team representing the University of Maryland, winning first place in the 1984 ACM Capitol Regional programming contest at John Hopkins University, and fourth place in the International ACM Scholastic Programming Contest in New Orleans in March 1985. Won third place in a preliminary programming contest at the University of Maryland on September 7, 1985, qualifying to be on the team sent to the contest at Drew University. Took third place at the Drew University contest. Member of the team winning third place at the ACM Capitol Regional programming contest at William and Mary College on November 2, 1986. Member of the team winning fourth place in a programming contest at George Mason College, in 1986. Work experience: Computer Challenges: Implemented a Forth programming environment for the Apple computer, including a graphics and animation package. Wrote a promotional animated graphics demo with it. Designed some computer games that used the package, and wrote utilities in 6502 assembly language. Terrapin: Wrote an adventure program in Logo which is now distributed on the utilities disk with Commodore Logo. K.L. Ginter and Associates: Worked on the port of the Software Express Videotex interface program, from the IBM-PC to the Apple //e. Software Express Videotex, written in Aztec C, is a menu-driven window based communication package that talks to a central computer over a modem, providing file transfer, electronic mail, and other services. Rooted out system dependencies, and wrote screen, keyboard, printer, and modem drivers in 6502 assembly, and an interface to them in C. UniPress Software: Evaluated and tested Ubiquitous Systems "u4th", a Forth system for Unix written in C. Selfware: Ported TypeRite, a menu driven intelligent electric typewriter program, written in Forth, from the IBM-PC to the Apple ][, using my Apple ProDOS Forth system. Wrote screen, keyboard, and printer drivers, and worked on the file system interface. Talked with customers to solve their problems using the software on their systems. University of Maryland Computer Science Department: Ported Z-80 FIG-Forth to the ZMob parallel processor. Performed software installation and maintenance for systems staff. Worked for Mark Weiser's Heterogeneous Systems Lab, experimenting with window systems and user interfaces, and developing, implementing, and evaluating pie menus. Sun Microsystems: Worked for Mitch Bradley, replacing the extension language and modified the user interface of CADroid, a schematic CAD system for system and board design. Interfaced a Forth system written in C to the CADroid code, and designed and implemented a command processor in Forth that executes CADroid commands. Added higher level control statements, loops, conditionals, variables, expressions, macros, and a mouse interface. University of Maryland Human Computer Interaction Lab: Worked for Ben Shneiderman, designing and implementing the NeWS interface to the HyperTIES hypermedia browser, and a hypertext and graphics authoring system based on UniPress Emacs. Designed and implemented the PSIBER Space Deck, an interactive debugger and visual user interface to the PostScript programming environment in the NeWS window system. UniPress Software: Worked on the UniPress Emacs NeWS window system interface. Optimized PostScript code for fast interaction. Implemented a popup menu interface, a menu description language compiler, a control panel interface, and a control panel description language compiler. Cooked up specialized pie menus for font and color selection. Created a text selection interface, with interactive "rubber band" feedback. Made a class of "tab window" specially suited for multi-window editing tasks. Ported the Emacs NeWS interface to the 4Sight window system on the Silicon Graphics Iris 4D. Grasshopper Group: Ported the PSIBER Space Deck to MacNeWS, NeWS 1.1 on the Mac II running A/UX. Wrote documentation, and enhanced the system based on user feedback. Sun Microsystem: Worked on the NeWS toolkit (TNT), written in object oriented PostScript. Designed, implemented, and documented Open Look user interface components and their application programmer interfaces. Worked on sliders, gauges, menus, text fields, numeric fields, settings, buttons, scroll bars, scrolling lists, windows, notices, selections, and other classes. Extended the NeWS toolkit, including support for two and three dimensional Open Look, multiple screens, 24 bit displays, and internationalization. Rigorously tested user and programmer interfaces; tracked down, reported, diagnosed, and fixed bugs in the toolkit and window system. Participated in TNT design reviews and NeWS architecture group meetings. Reviewed the TNT Reference Manual, the DevGUIDE Reference Manual, and the NeWS Programmer's Guide, and helped with the examples and illustrations. Ported HyperNeWS 1.3 to TNT, and participated in the redesign of HyperNeWS 3.0. Worked on many applications and demos, including pizza tool, raster rap, pie menus, tab windows, graphical data structure browsers, ICCCM window managers, a thin wire gnu emacs driver, a client side interface to shared memory rasters, and a cellular automata machine (CAM6) simulator. Papers: Directional Selection is Easy as Pie Menus! By Don Hopkins ;login: The USENIX Association Newsletter Volume 12, Number 5; September/October 1987; Page 31 Summary of the Work-in-Progress talk given at the 1987 Summer Usenix Conference in Phoenix. Pies: Implementation, Evaluation, and Application of Circular Menus By Don Hopkins, Jack Callahan, and Mark Weiser (Paper in preparation. Draft available from authors.) A Comparative Analysis of Pie Menu Performance By Jack Callahan, Don Hopkins, Mark Weiser, and Ben Shneiderman Proc. CHI'88 conference, Washington D.C.: available from ACM, NY. A Pie Menu Cookbook: Techniques for the Design of Circular Menus By Don Hopkins (Paper in preparation. Draft available from author.) The Shape of PSIBER Space: PostScript Interactive Bug Eradication Routines By Don Hopkins Proc. 1989 Usenix Graphics Conference, Monterey California. The Design and Implementation of Pie Menus By Don Hopkins Dr. Dobb's Journal December 1991 Presentations: Gave a work-in-progress talk about pie menus at the 1987 Summer Usenix Conference in Phoenix, Arizona. Presented a video tape and talked about pie menus at the 1987 Usenix Graphics Workshop in Cambridge, Massachusetts. Gave a live demonstration of pie menus under the NeWS window system for the NeWS special interest group, at the 1987 national Sun Users Group meeting in San Jose, California. Presented a paper and video tape, talked about pie menus, and gave a live demonstration at CHI '88, in Washington D.C. Organized and talked at a NeWS special interest group meeting at CHI '88. Gave a talk and a live demonstration of pie menus, HyperTIES, and UniPress Emacs for the NeWS window system, at the Sun User Group Southwest Regional Conference, in Albuquerque, New Mexico. Gave demonstrations at the EduCom conference in Washington D.C., at the Sun Microsystems booth. Gave a talk and live demonstration of NeWS at the Sun Users Group meeting in Miami, Florida. Organized and gave a live demonstration at the NeWS birds of a feather meeting at Usenix in San Diego, California. Demonstrated the NeWS window system in the Open Vistas booth at the Uniform trade show in Baltimore, Maryland. Organized and talked at the NeWS birds of a feather meeting at Usenix in Baltimore. Gave a talk about the PSIBER Space Deck to the TNT group at Sun Microsystems in Mountain View. Presented a paper and video tape at the 1989 Usenix Graphics Workshop in Monterey, California, describing the PSIBER Space Deck, an interactive debugger, data structure editor, and visual extension to the PostScript programming language in NeWS. Demonstrated pie menus on "All The Widgets", a video tape of user interface techniques produced by Brad Myers for the ACM SIGGRAPH Video Review (CHI'90 Special Issue #57) Participated in the "Empowered" performance at CHI'90, giving a whirlwind tour of pie menu based user interfaces, including the PSIBER Space Deck and the Pseudo Scientific Visualizer.