[Appleton] Randy Appleton. Improving Context Switching Performance of Idle Tasks under Linux. 2001.
[Baldwin-Clark] Carliss Baldwin and Kim Clark. Design Rules, Vol 1: The Power of Modularity. 2000. MIT Press. ISBN 0-262-024667.
[Bentley] Jon Bentley. Programming Pearls. 2nd Edition. 2000. Addison-Wesley. ISBN 0-201-65788-0.
The third essay in this book, “Data Structures
Programs”, argues a case similar to that of
Chapter═9 with
Bentley's characteristic eloquence. Some of the book is═
available on the
Web.
[BlaauwBrooks] Gerrit A. Blaauw and Frederick P. Brooks. Computer Architecture: Concepts and Evolution. 1997. ISBN 0-201-10557-8. Addison-Wesley.
[Bolinger-Bronson] Dan Bolinger and Tan Bronson. Applying RCS and SCCS. O'Reilly & Associates. 1995. ISBN 1-56592-117-8.
Not just a cookbook, this also surveys the design
issues in version-control systems.
[Brokken] Frank Brokken. C++ Annotations Version. 2002.
[BrooksD] David Brooks. Converting a UNIX .COM Site to Windows. 2000.
[Brooks] Frederick P. Brooks. The Mythical Man-Month. 20th Anniversary Edition. Addison-Wesley. 1995. ISBN 0-201-83595-9.
[Boehm] Hans Boehm. Advantages and Disadvantages of Conservative Garbage Collection.
Thorough discussion of tradeoffs between garbage-collected
and non-garbage-collected environments.
Available
on the Web.
[Cameron] Debra Cameron, Bill Rosenblatt, and Eric Raymond. Learning GNU Emacs. 2nd Edition. O'Reilly & Associates. 1996. ISBN 1-56592-152-6.
[Cannon] L. W. Cannon, R. A. Elliot, L. W. Kirchhoff, J. A. Miller, J. M. Milner, R. W. Mitzw, E. P. Schan, N. O. Whittington, Henry Spencer, David Keppel, and Mark Brader. Recommended C Style and Coding Standards. 1990.
An updated version of the
Indian Hill C Style and
Coding Standards paper, with modifications by the last
three authors. It describes a recommended coding standard for C
programs.
Available on the Web.
[Christensen] Clayton Christensen. The Innovator's Dilemma. HarperBusiness. 2000. ISBN 0-066-62069-4.
The book that introduced the term “disruptive
technology”. A fascinating and lucid examination of how and
why technology companies doing everything right get mugged by
upstarts. A business book technical people should read.
[Comer] Unix Review. Douglas Comer. “Pervasive Unix: Cause for Celebration”. October 1985. p.═42.
[Cooper] Alan Cooper. The Inmates Are Running the Asylum. Sams. 1999. ISBN 0-672-31649-8.
Despite some occasional quirks and crotchets, this
book is a trenchant and brilliant analysis of what's wrong with
software interface designs, and how to put it right.
[Coram-Lee] Tod Coram and Ji Lee. Experiences — A Pattern Language for User Interface Design. 1996.
[DuBois] Paul DuBois. Software Portability with Imake. O'Reilly & Associates. 1993. ISBN 1-56592-055-4.
[Eckel] Bruce Eckel. Thinking in Java. 3rd Edition. Prentice-Hall. 2003. ISBN 0-13-100287-2.
[Feller-Fitzgerald] Joseph Feller and Brian Fitzgerald. Understanding Open Source Software. 2002. ISBN 0-201-73496-6. Addison-Wesley.
[FlanaganJava] David Flanagan. Java in a Nutshell. O'Reilly & Associates. 1997. ISBN 1-56592-262-X.
[FlanaganJavaScript] David Flanagan. JavaScript: The Definitive Guide. 4th Edition. O'Reilly & Associates. 2002. ISBN 1-596-00048-0.
[Fowler] Martin Fowler. Refactoring. Addison-Wesley. 1999. ISBN 0-201-48567-2.
[Friedl] Jeffrey Friedl. Mastering Regular Expressions. 2nd Edition. 2002. ISBN 0-596-00289-0. O'Reilly & Associates. 484pp..
[Fuzz] Barton Miller, David Koski, Cjin Pheow Lee, Vivekananda Maganty, Ravi Murthy, Ajitkumar Natarajan, and Jeff Steidl. Fuzz Revisited: A Re-examination of the Reliability of Unix
Utilities and Services. 2000.
[Gabriel] Richard Gabriel. Good News, Bad News, and How to Win Big. 1990.
[Gancarz]
Mike Gancarz.
The Unix Philosophy.
Digital Press.
1995.
ISBN 1-55558-123-4.
[GangOfFour]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.
Design Patterns: Elements of Reusable Object-Oriented Software.
Addison-Wesley.
1997. ISBN 0-201-63361-2.
[Garfinkel]
Simson Garfinkel, Daniel Weise, and Steve Strassman.
The Unix Hater's Handbook.
IDG Books.
1994. ISBN 1-56884-203-1.
[Gentner-Nielsen]
Communications of the ACM.
Association for Computing Machinery.
Don Gentner and Jacob Nielsen. “The Anti-Mac Interface”.
August 1996.
[Gettys]
Jim Gettys.
The Two-Edged Sword.
1998.
[Glickstein] Bob Glickstein. Writing GNU Emacs Extensions. O'Reilly & Associates. 1997. ISBN 1-56592-261-1.
[Graham] Paul Graham. A Plan for Spam.
[Harold-Means] Elliotte Rusty Harold and W. Scott Means. XML in a Nutshell. 2nd Edition. O'Reilly & Associates. 2002. ISBN 0-596-00292-0.
[Hatton97] IEEE Software. Les Hatton. “Re-examining the Defect-Density versus Component Size Distribution”. March/April 1997.
[Hatton98] IEEE Software. Les Hatton. “Does OO Sync with the Way We Think?”. (3).
[Hauben] Ronda Hauben. History of UNIX.
[Heller] Steve Heller. C++: A Dialog. Programming with the C++ Standard Library. Prentice-Hall. 2003. ISBN 0-13-009402-1.
[Hunt-Thomas] Andrew Hunt and David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley. 2000. ISBN 0-201-61622-X.
[Kernighan95] Brian Kernighan. Experience with Tcl/Tk for Scientific and
Engineering Visualization. USENIX Association Tcl/Tk Workshop Proceedings. 1995.
[Kernighan-Pike84] Brian Kernighan and Rob Pike. The Unix Programming Environment. Prentice-Hall. 1984. ISBN 0-13-937681-X.
[Kernighan-Pike99] Brian Kernighan and Rob Pike. The Practice of Programming. 1999. ISBN 0-201-61586-X. Addison-Wesley.
An excellent treatise on writing high-quality programs,
surely destined to become a classic of the field.
[Kernighan-Plauger] Brian Kernighan and P. J. Plauger. Software Tools. Addison-Wesley. 1976. ISBN 201-03669-X.
[Kernighan-Ritchie] Brian Kernighan and Dennis Ritchie. The C Programming Language. 2nd Edition. Prentice-Hall Software Series. 1988. ISBN 0-13-110362-8.
[Lampson] ACM Operating Systems Review. Association for Computing Machinery. Butler Lampson. “Hints for Computer System Design”. October 1983.
[Lapin] J. E. Lapin. Portable C and Unix Systems Programming. Prentice-Hall. 1987. ISBN 0-13-686494-5.
[Leonard] Andrew Leonard. BSD Unix: Power to the People, from the Code. 2000.
[Levy] Steven Levy. Hackers: Heroes of the Computer Revolution. Anchor/Doubleday. 1984. ISBN 0-385-19195-2.
[Lewine] Donald Lewine. POSIX Programmer's Guide: Writing Portable Unix Programs. 1992. O'Reilly & Associates. ISBN 0-937175-73-0. 607pp..
[Libes-Ressler] Don Libes and Sandy Ressler. Life with Unix. 1989. ISBN 0-13-536657-7. Prentice-Hall.
This book gives a more detailed version of Unix's
early history. It's particularly strong for the period
1979–1986.
[Lions] John Lions. Lions's Commentary on Unix 6th Edition. 1996. 1-57398-013-7. Peer-To-Peer Communications.
[Loukides-Oram] Mike Loukides and Andy Oram. Programming with GNU Software. O'Reilly & Associates. 1996. ISBN 1-56592-112-7.
[Lutz] Mark Lutz. Programming Python. O'Reilly & Associates. 1996. ISBN 1-56592-197-6.
[McIlroy78] The Bell System Technical Journal. Bell Laboratories. M. D. McIlroy, E. N. Pinson, and B. A. Tague. “Unix Time-Sharing System Forward”. 1978. 57 (6,═part═2). p.═1902.
[McIlroy91] Proc. Virginia Computer Users Conference. M. D. McIlroy. “Unix on My Mind”. p.═1-6.
[Miller] The Psychological Review. George Miller. “The Magical Number Seven, Plus or Minus Two”. Some limits on our capacity for processing information. 1956. 63. pp.═81-97.
[Mumon] Mumon. The Gateless Gate.
[OpenSources] Sam Ockman and Chris DiBona. Open Sources: Voices from the Open Source Revolution. O'Reilly & Associates. 1999. ISBN 1-56592-582-3. 280pp..
[Oram-Talbot] Andrew Oram and Steve Talbot. Managing Projects with Make. O'Reilly & Associates. 1991. ISBN 0-937175-90-0.
[Osterhout94] John Osterhout. Tcl and the Tk Toolkit. Addison-Wesley. 1994. ISBN 0-201-63337-X.
[Osterhout96] John Osterhout. Why Threads Are a Bad Idea (for most purposes). 1996.
An invited talk at USENIX 1996. There is no written paper
that corresponds to it, but the slide presentation is
available on
the Web.
[Padlipsky] Michael Padlipsky. The Elements of Networking Style. iUniverse.com. 2000. ISBN 0-595-08879-1.
[Parnas] Communications of the ACM. Parnas L. David. “On the Criteria to Be Used in Decomposing Systems into Modules”.
[Pike] Rob Pike. Notes on Programming in C.
This
document is popular on the Web; a title search is sure to find
several copies.
Here is one.
[Raskin] Jef Raskin. The Humane Interface. Addison-Wesley. 2000. ISBN 0-201-37937-6.
[Ravenbrook] The Memory Management Reference.
[Raymond96] Eric S. Raymond. The New Hacker's Dictionary. 3rd Edition. 1996. ISBN 0-262-68092-0. MIT Press. 547pp..
[Raymond01] Eric S. Raymond. The Cathedral and the Bazaar. 2nd Edition. 1999. ISBN 0-596-00131-2. O'Reilly & Associates. 240pp..
[Reps-Senzaki] Paul Reps and Nyogen Senzaki. Zen Flesh, Zen Bones. 1994. Shambhala Publications. ISBN 1-570-62063-6. 285pp..
A superb anthology of Zen primary sources, presented just as
they are.
[Ritchie79] Dennis M. Ritchie. The Evolution of the Unix Time-Sharing System. 1979.
[Ritchie93] Dennis M. Ritchie. The Development of the C Language. 1993.
[RitchieQED] Dennis M. Ritchie. An Incomplete History of the QED Text Editor. 2003.
[Ritchie-Thompson] The Unix Time-Sharing System. Dennis M. Ritchie and Ken Thompson.
[Saltzer] ACM Transactions on Computer Systems. Association for Computing Machinery. James. H. Saltzer, David P. Reed, and David D. Clark. “End-to-End Arguments in System Design”. November 1984.
[Salus] Peter H. Salus. A Quarter-Century of Unix. Addison-Wesley. 1994. ISBN 0-201-54777-5.
An excellent overview of Unix history, explaining many of the
design decisions in the words of the people who made them.
[Schaffer-Wolf] Evan Schaffer and Mike Wolf. The Unix Shell as a Fourth-Generation Language. 1991.
Available on the Web. An open-source implementation,
NoSQL, is available and readily turned up
by a Web search.
[Schwartz-Christiansen] Randal Schwartz and Tom Phoenix. Learning Perl. 3rd Edition. O'Reilly & Associates. 2001. ISBN 0-596-00132-0.
[Spinellis] Journal of Systems and Software. Diomidis Spinellis. “Notable Design Patterns for Domain-Specific Languages”. (1). February 2001. p.═91-99.
[Stallman] Richard M. Stallman. The GNU Manifesto.
[Stephenson] Neal Stephenson. In the Beginning Was the Command Line. 1999.
[Stevens90] W. Richard Stevens. Unix Network Programming. Prentice-Hall. 1990. ISBN 0-13-949876-1.
The classic on this topic. Note: Some later editions of this
book omit coverage of the Version 6 networking facilities like
mx().
[Stevens92] W. Richard Stevens. Advanced Programming in the Unix Environment. 1992. ISBN 0-201-56317-7. Addison-Wesley.
Stevens's comprehensive guide to the Unix API. A feast for
the experienced programmer or the bright novice, and a worthy
companion to Unix Network Programming.
[Stroustrup] Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley. 1991. ISBN 0-201-53992-6.
[Tanenbaum-VanRenesse] Andrew S. Tanenbaum and Robbert van Renesse. A Critique of the Remote Procedure Call Paradigm. EUTECO'88 Proceedings, Participants Edition. 1988. pp.═775-783.
[Tidwell] Doug Tidwell. XSLT: Mastering XML Transformations. O'Reilly & Associates. 2001. ISBN 1-596-00053-7.
[Torvalds] Linus Torvalds and David Diamond. Just for Fun. The Story of an Accidental Revolutionary. HarperBusiness. 2001. ISBN 0-06-662072-4.
[Vaughan] Gary V. Vaughan, Tom Tromey, and Ian Lance Taylor. GNU Autoconf, Automake, and Libtool. New Riders Publishing. 2000. 390═p.. ISBN 1-578-70190-2.
[Vo] Software Practice & Experience. Kiem-Phong Vo. “The Discipline and Method Architecture for Reusable Libraries”. 2000. p.═107-128.
[Wall2000] Larry Wall, Tom Christiansen, and Jon Orwant. Programming Perl. 3rd Edition. O'Reilly & Associates. 2000. ISBN 0-596-00027-8.
[Welch] Brent Welch. Practical Programming in Tcl and Tk. Prentice-Hall. 1999. ISBN 0-13-022028-0.
[Williams] Sam Williams. Free as in Freedom. O'Reilly & Associates. 2002. ISBN 0-596-00287-4.
[Yourdon] Edward Yourdon. Death March. The Complete Software Developer's Guide to Surviving
“Mission Impossible” Projects. Prentice-Hall. 1997. ISBN 0-137-48310-4.