Pine Project History Pine was originally conceived in 1989 as a simple, easy-to-use mailer for administrative staff at the University of Washington in Seattle. This constituency had previously been using a very nice mail system derived from UCLA's "Ben" mailer for the MVS operating system, but when the cost of maintaining our MVS system became prohibitive, we needed to find a Unix-based mailer that preserved the user-interface strengths of "Ben". Our goal was to provide a mailer that naive users could use without fear of making mistakes. We wanted to cater to users who were less interested in learning the mechanics of using electronic mail than in doing their jobs; users who perhaps had some computer anxiety. We felt the way to do this was to have a system that didn't do surprising things and provided immediate feedback on each operation; a mailer that had a limited set of carefully-selected functions. At that time, we could not find any Unix mailer (commercial or freely available) that met our requirements. Consequently, we reluctantly concluded that we would need to develop our own. The Elm mailer seemed like a reasonable starting point since its source code was freely available, so we started modifying it. Today there is virtually no Elm code left, and Pine has evolved so that many "power-user" features may be (optionally) enabled. We have tried to remain true to our original simplicity and ease-of-use goals by providing *optional* features for sophisticated users. In fact, if none of Pine's options are enabled, the latest version has almost the same look-and-feel as the very first version. One of the greatest problems with most mailers on Unix systems is the editor. One can normally choose between emacs and vi. We experimented with some versions of emacs and settled on a hacked version of micro emacs. Eventually it became heavily modified and tightly integrated with the rest of Pine. One of the main features of having a tightly coupled editor is that it can guide the user through editing the header of the message, and Pine takes great care to do this. A very simple and efficient interface to the Unix spell command was also added. The emacsstyle key bindings were retained, though most of the other wild and wonderful emacs functions were not. The Pine composition editor is also available as a very simple stand alone editor named "pico". Also working at the University of Washington is the original author of the Internet Message Access Protocol (IMAP). IMAP is a functional superset of POP, and provides a way to manipulate mailboxes on remote servers as if they were local. Specific advantages of IMAP over POP include: support for inbox access from multiple computers, access to more than one remote folder, selective access to MIME message parts, and support for disconnected operation. Not long after the Pine project began, The IMAP author had finished writing the "c-client" library as an interface to IMAP and as a switch between drivers for IMAP mailboxes, Berkeley mail files and Tenex mail files. In time, "c-client" became a full messaging API with support for RFC-822 parsing, MIME parsing and decoding, SMTP and NNTP drivers, and so forth. Great care was taken to make the code writing the mail files robust against disks filling up, and inter-process locking in order to guarantee mail file consistency. It was clear that Pine would benefit greatly from using the c-client to access mail storage so the original low-level Elm code was replaced by calls to c-client library routines. Consequently Pine can write and access a variety of different mail file formats and new ones can be added by creating a simple driver. In addition the c-client does a very careful job of doing all the RFC 822 header parsing and achieves the highest compliance with the RFC. Most of the work done on Pine from 6/92 to 6/93 focused on changes needed to support a truly distributed electronic messaging environment (e.g. remote folder manipulation), and getting Pine to run on DOS (which was a *lot* of work). The first version of PC-Pine (3.84) was released in July 1993, and included first steps toward integrating news and email access in Pine. Doing the DOS port was very difficult for a variety of reasons, but especially because of DOS memory management (or lack thereof). However, simply porting Pine 3.07 to DOS was not sufficient. For a desktop mailer such as PC-Pine to be useful at UW, it was necessary to fully support access to existing *remote* saved-message folders, as well as local (desktop) folders -- and of course, the remote INBOX. Accomplishing this required extensions to IMAP, a new version of the IMAPd server code, and extensive work in Pine to support multiple collections of folders. The principal reason for porting Unix Pine to DOS was to obviate the need for PC users to transfer files between their PC and the Unix system running Pine. Now it is possible to save messages directly to the PC's filesystem, and to directly include PC files in outgoing messages. And with Pine's MIME capability, binary files (e.g. word processing documents, spreadsheets, image files, executables) may be directly attached to your messages. With Pine 3.90, significant new functionality has been added, notably aggregate operations for manipulating groups of messages at once, the first (alpha) release of PC-Pine for the Winsock network interface standard, and greatly improved Usenet (News) support. One of the early interpretations of the name "Pine" was "Pine Is No-longer Elm"; today a "Program for Internet News and Email" seems more apropos. Pine Credits Pine was developed at the University of Washington Office of Computing & Communications. Project Leader: Mike Seibel. Principal authors: Mike Seibel, Steve Hubert, Laurence Lundblade*. C-Client library & IMAPd: Mark Crispin. Pico, the PIne COmposer: Mike Seibel. Bug triage, user support: David Miller. Pine Web pages: Stefan Kramer, David Miller. Documentation: Sheryl Erez, Kathryn Sharpe, Stefan Kramer, Lori Stevens, and others. PC-Pine for DOS: Mike Seibel. PC-Pine for Windows: Tom Unger. Project oversight: Terry Gray. Principal Patrons: Ron Johnson, Mike Bryant. Additional support: NorthWestNet. Initial Pine code base: Elm, by Dave Taylor & USENET Community Trust. Initial Pico code base: MicroEmacs 3.6, by Dave G. Conroy. User Interface design: Inspired by UCLA's "Ben" mailer for MVS. * Emeritus We'd also like to acknowledge the following contributions and contributors: Pine for VMS: Portia Shao and Yehavi Bourvine Pine for OS/2: David Nugent Special mention: Dave Wall Bug reports, bug fixes, ports, suggestions & encouragement: The world-wide Pine community, including... Forrest Aldrich, Shoa Aminpour, Gunther Anderson J.J. Baily, Billy Barron, Chris Beecher, John Benjamins, Win Bent, Birko Bergt, Ken Bobey, Barry Bouwsma, Andy Brager, D.K. Brownlee, Brian Burriston, Bill Campbell, Russel Campbell, Donn Cave, Richard Cheever, Mike Coghlan, Justine Comer, Chuck Cooper, Barry Cornelius, Michael A. Crowley, Calvin Giles Devel, David Drum, Tony Flemming, Matthew Freedman, Richard Fritz, Marcelo A. Gallardo, Adam Garrett, Jim Gerhardt, Richard Gering, Gordon Good, Bob Gregory, Ed Greshko, Dmitri L. Gringauz, David Halliwell, Peter Hausken, Jeff Hayward, Philip Hazel, Gunnar Helliesen, Vivek Khera, William Kreuter, Pekka Kytölaakso, Barry Landy, Chris Latham, Jon Lebo, Allen Leonard, Raph Levien, Robert L. Lewis, Bruce Lilly, J. A. Lind, Richard Lloyd, Matthew Lyle, John Mackin, James Matheson, Mark McNair, Pete Mellor, Robert Morris, Richard Murphy, Philip Nelson, David Nugent, Il Oh, Jason Orlowski, Mike Ramey, Phil Rand, Tim Rice, Jochaim Richter, Thomas Riemer, Alexis Rosen, Michael Ross, Bob Sandstrom, Michael F. Santangelo, Shin-ya Satoh, Corey Satten, John Saunders, Ted Shafran, Michael Shepard, Jeff Shepherd, Daniel Simmons, Alan Thew, Jason R. Thorpe, Marc Unangst, Risto Vaarandi, Edward Vielmetti, Ross Wakelin, Rich Wales, Bob Williams, Steve Woodyatt ... and many others - Our thanks to all!