Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Don Libes - Publications List

Don Libes - Publications List










Software

  • Expect - A tool for automating interactive applications such as telnet, ftp, passwd and hundreds of others.
  • Multixterm - Multixterm allows you to control multiple xterms simultaneously. We use it to ssh to multiple hosts in a cluster and do ad hoc system administration on all at the same time. But it's general purpose so you could, for example, do telnet instead of ssh. Or run vi/emacs on a bunch of different files, etc. Particularly useful with ad hoc or one-of-a-kind maintenance. Also very cool for debugging host differences.
  • cgi.tcl - A comprehensive library for creating Tcl-based CGI scripts. cgi.tcl supports tables, cookies, file upload, Expect, Tcl applets, Java, etc, etc.
  • tkbiff - yet another program to alert you to incoming mail. tkbiff allows arbitrary commands (play audio clip, metamail, etc) to be executed upon mail reception. If you like programs like xbiff++ but wish they were more flexible or more portable, then you'll like tkbiff.
  • md5pure and sha1pure - Computes md5 and sha1 message digests using only core Tcl commands. Surprisingly fast. (Surprised me anyway.)
  • Stopwatch - A little stopwatch - just right for helping you get the timing down while practicing a talk. Provided both as an applet and a standalone Tk script.
  • tcl-debug - A Tcl debugger. Provides traditional debugging capabilities to any Tcl script. Built-in to Expect but it works with any Tcl extension including Tk. Can be dynamically loaded.
  • I wrote a large number of tools for manipulating EXPRESS models including a compiler (with Steve Clark), a server, and a development environment (with Steve and Josh Lubell). For more information, see the EXPRESS documents below or the SC4 page.
  • Implementing Software Timers (reprint provided courtesy of the late Rich Stevens) simulates multiple timers given an environment that only provides a single timer.
  • As I get time, I'll document more of the things I've written...

Peer-Reviewed Publications

Books

NIST policy is to avoid endorsements for commercial products or organizations. Hence this page provides no links for the publishers or any further information about how to obtain these books.

Book Chapters and Invited Papers

  • Libes, D., "Using Expect to Automate System Administration Tasks", "Selected Papers in Network and System Administration, ed: Eric Anderson, Mark Burgess and Alva Couch, pub: Wiley, 2002.
  • Libes, D., "Expect -- A Power Tool for System Administration Automation", System Administration Tools, ed, D. McNutt, O'Reilly & Associates, Inc., to appear.
  • Libes, D., "Passmass -- Changing Passwords on Many Machines Simultaneously", Internet Power Tools, ed, Valeria Quercia, O'Reilly & Associates, Inc., to appear.
  • Libes, D., "Vrfy -- Verifying an Internet Email Address," Internet Power Tools, ed, Valeria Quercia, O'Reilly & Associates, Inc., to appear.
  • Libes, D., "Expect -- A Power Tool for Interaction Automation, UNIX Power Tools, ed, J. Peek, et al, O'Reilly & Associates, to appear.
  • Libes, D., "Expect", Tcl/Tk Extensions, ed, Mark Harrison, O'Reilly & Associates, Inc., 1997.
  • Libes, D., "Terminal Emulation for Automation and Testing of Character Graphic Programs: A Code Walkthrough", Proceedings of The 21st Annual Trenton Computer Festival (TCF '96), Trenton, NJ, April 21-22, 1996.
  • Libes, D., "Ouch, Those Programs Are Painful", p. 9-11, ORA DOT COM, O'Reilly & Associates, Inc., Fall '94.
  • Libes, D., "Automating Interactive Applications in the Network Environment", Journal of Proceedings, International Communications Association - 1992 Annual Conference and Exhibition, Atlanta, GA, May 17, 1992. [Invited paper to accept Innovation Award.]
  • Furlani, C., Barkmeyer, Ed., Mitchell, M., Libes, D., "The Distributed Data System of the Automated Manufacturing Research Facility of the National Bureau of Standards" in: Computerization and Networking of Materials Databases, eds, Glazman, J., Rumble, J., ASTM, STP 1017, April 1989.
  • Libes, D., "Multiple Programs in One UNIX Process", ;login:, pp. 7-13, Vol. 12, No. 4, USENIX Association, Berkeley, CA, July/August 1987.
  • Libes, D., "UNIX in the Government's Automated Manufacturing Research Facility (AMRF)", Government Computer News, February 14, 1986.

NIST Technical Reports and Publications

Other Publications

Many of the following articles originally appeared as a series of columns, with permission of NIST. While the articles were all reviewed by colleagues, they were not officially reviewed by NIST so they are not considered NIST publications. Due to popular demand, many of them were updated and expanded in the book Obfuscated C and Other Mysteries, Wiley, 1993.
  • Libes, D., "Obfuscated C", Proceedings of The 17th Annual Trenton Computer Festival (TCF '92), Trenton, NJ, April 11-12, 1992.
  • Libes, D., "Obfuscated C 1990", The C Users Journal, R & D Publications, Inc., Vol. 9, No. 5, May 1991.
  • Libes, D., "Implementing a trap command", The C Users Journal, R & D Publications, Inc., Vol. 9, No. 3, March 1991.
  • Libes, D., "Expect", The C Users Journal, R & D Publications, Inc., Vol. 9, No. 1, January, 1991.
  • Libes, D., "Implementing Software Timers", The C Users Journal, R & D Publications, Inc., Vol. 8, No. 11, November 1990.
  • Libes, D., "Tcl - Tool Command Language", The C Users Journal, R & D Publications, Inc., Vol. 8, No. 9, September 1990.
  • Libes, D., "Using Yacc and Lex Twice in One Program", The C Users Journal, R & D Publications, Inc., Vol. 8, No. 7, July 1990.
  • Libes, D., "The Far Side of C", The C Users Journal, R & D Publications, Inc., Vol. 8, No. 5, May, 1990.
  • Libes, D., "Life With Static Buffers, Part II", The C Users Journal, R & D Publications, Inc., Vol. 8, No. 3, March 1990.
  • Libes, D., "Life With Static Buffers", The C Users Journal, R & D Publications, Inc., Vol. 8, No. 1, January 1990.
  • Libes, D., "Updating Environment Variables", The C Users Journal, R & D Publications, Inc., Vol. 7, No. 7, October 1989.
  • Libes, D., "Real Life Story: Writing a book with FrameMaker, The Story of Life With UNIX", Frame User's Network (F.U.N.) Newsletter, Vol 1., No. 2, August 1989.
  • Libes, D., "Obfuscated C 1988", The C Users Journal, R & D Publications, Inc., Vol. 7, No. 5, July 1989.
  • Libes, D., "Faster Than Malloc", The C Users Journal, R & D Publications, Inc., Vol. 7, No. 4, May 1989.
  • Libes, D., "The State of C", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 12, December 1988.
  • Libes, D., "Threads", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 11, November 1988.
  • Libes, D., "Portability", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 10, October 1988.
  • Libes, D., "Register", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 9, September 1988.
  • Libes, D., "Optimizing Strcpy", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 8, August 1988.
  • Libes, D., "x = x++;", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 7, July 1988.
  • Libes, D., "Rmifdef", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 6, June 1988.
  • Libes, D., "More Obfuscated C", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 5, May 1988.
  • Libes, D., "Obfuscated C 1987", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 4, April 1988.
  • Libes, D., "Function Pointers", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 3, March 1988.
  • Libes, D., "Dump", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 2, February 1988.
  • Libes, D., "Longjmp", Micro/Systems Journal, M&T Publishing, Vol. 4, No. 1, January 1988.
  • Libes, D., "Varying Arguments", Micro/Systems Journal, M&T Publishing, Vol. 3, No. 6, November/December 1987.
  • Libes, D., "Doubles", Micro/Systems Journal, M&T Publishing, Vol. 3, No. 5, September/October 1987.
  • Libes, D., "Byte Ordering", Micro/Systems Journal, M&T Publishing, Vol. 3, No. 4, July/August 1987.
  • Libes, D., "Updating Time", Micro/Systems Journal, M&T Publishing, Vol. 3, No. 3, May/June 1987.
  • Libes, D., Libes, S., "Editor's Page: DOS is Getting to Look a Lot Like UNIX", Micro/Systems Journal, Vol. 3, No. 3, May/June 1987.
  • Libes, D., "Obfuscated C 1986", Micro/Systems Journal, M&T Publishing, Vol. 3, No. 2, March/April 1987.
  • Libes, D., "cdecl - A Program to Explain C Declarations", Micro/Systems Journal, M&T Publishing, Vol. 3, No. 1, January/February 1987.
  • Libes, D., "Keeping Track of malloc()", Micro/Systems Journal, M&T Publishing, Vol. 2, No. 6, November/December 1986.
  • Libes, D., "Garbage In", Micro/Systems Journal, M&T Publishing, Vol. 2, No. 5, September/October 1986.
  • Libes, D., "All about Casts", Micro/Systems Journal, M&T Publishing, Vol. 2, No. 4, July/August 1986.
  • Libes, D., "Obfuscated C 1985", Micro/Systems Journal, M&T Publishing, Vol. 2, No. 3, May/June 1986.
  • Libes, D., "getopt() - A Subroutine for Parsing Command-Line Arguments", Micro/Systems Journal, M&T Publishing, Vol. 2, No. 2, March/April 1986.
  • Libes, D., Morris, G., "C Interpreters", Micro/Systems Journal, Vol. 2, No. 2, March/April 1986.
  • Libes, D., "C Interpreters", Micro/Systems Journal, M&T Publishing, Vol. 2, No. 1, January/February 1986.
  • Libes, D., "Context-Independent Macros", Micro/Systems Journal, M&T Publishing, Vol. 1, No. 5, November/December 1985.
  • Libes, D., "Obfuscated C 1984", Micro/Systems Journal, M&T Publishing, Vol. 1, No. 4, September/October 1985.
  • Libes, D., "Implementing Sets with Bit Operations", Micro/Systems Journal, M&T Publishing, Vol. 1, No. 3, July/August 1985.
  • Libes, D., "Writing a Translation Program", Micro/Systems Journal, M&T Publishing, Vol. 1, No. 2, May/June 1985.
  • Libes, D., "Implementing Variably-Sized Arrays", Micro/Systems Journal, M&T Publishing, Vol. 1, No. 1, March/April 1985 .

Presentations

Program Co-chair, 6th Annual Tcl/Tk Conference, San Diego, CA Sept 14-18, 1998
Scripting Languages on the Web, Information Technology for Engineering & Manufacturing Conference
Created May 6, 2009, Updated October 26, 2011