B. References

Event timelines of the Unix Industry <http://snap.nlc.dcccd.edu/learn/drkelly/hst-hand.htm> and of GNU/Linux and Unix <http://www.robotwisdom.com/linux/timeline.html> are available on the Web. A timeline tree of Unix releases <http://www.levenez.com/unix/> is also available.

[Appleton] Randy Appleton. Improving Context Switching Performance of Idle Tasks under Linux. 2001. Cited on: 158.

Available on the Web <http://cs.nmu.edu/~randy/Research/Papers/Scheduler/>.

[Baldwin-Clark] Carliss Baldwin and Kim Clark. Design Rules, Vol 1: The Power of Modularity. MIT Press. 2000. ISBN 0-262-024667. Cited on: 83.

[Bentley] Jon Bentley. Programming Pearls (2nd Edition). Addison-Wesley. 2000. ISBN 0-201-65788-0. Cited on: 215.

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 <http://www.cs.bell-labs.com/cm/cs/pearls/>.

[BlaauwBrooks] Gerrit A. Blaauw and Frederick P. Brooks. Computer Architecture: Concepts and Evolution. Addison-Wesley. 1997. ISBN 0-201-10557-8. Cited on: 98, 394.

[Bolinger-Bronson] Dan Bolinger and Tan Bronson. Applying RCS and SCCS. O’Reilly & Associates. 1995. ISBN 1-56592-117-8. Cited on: 367.

Not just a cookbook, this also surveys the design issues in version-control systems.

[Brokken] Frank Brokken. C++ Annotations Version. 2002. Cited on: 329.

Available on the Web <http://www.icce.rug.nl/documents/cplusplus/cplusplus.html>.

[BrooksD] David Brooks. Converting a UNIX .COM Site to Windows. 2000. Cited on: 59.

Available on the Web <http://www.securityoffice.net/mssecrets/hotmail.html#_Toc491601819>.

[Brooks] Frederick P. Brooks. The Mythical Man-Month (20th Anniversary Edition). Addison-Wesley. 1995. ISBN 0-201-83595-9. Cited on: 12, 14, 300, 438.

[Boehm] Hans Boehm. Advantages and Disadvantages of Conservative Garbage Collection. Cited on: 323.

Thorough discussion of tradeoffs between garbage-collected and non-garbagecollected environments. Available on the Web <http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html>.

[Cameron] Debra Cameron, Bill Rosenblatt, and Eric Raymond. Learning GNU Emacs (2nd Edition). O’Reilly & Associates. 1996. ISBN 1-56592-152-6. Cited on: 352.

[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. Cited on: 410.

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 <http://www.apocalypse.org/pub/u/paul/docs/cstyle/cstyle.htm>.

[Christensen] Clayton Christensen. The Innovator’s Dilemma. HarperBusiness. 2000. ISBN 0-066-62069-4. Cited on: 52.

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.

[Cooper] Alan Cooper. The Inmates Are Running the Asylum. Sams. 1999. ISBN 0-672-31649-8. Cited on: 477.

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.

[Comer] Douglas Comer. “Pervasive Unix: Cause for Celebration”. Unix Review, October 1985, p. 42. Cited on: 34.

[Coram-Lee] Tod Coram and Ji Lee. Experiences—A Pattern Language for User Interface Design. 1996. Cited on: 266.

Available on the Web <http://www.maplefish.com/todd/papers/Experiences.html>.

[DuBois] Paul DuBois. Software Portability with Imake. O’Reilly & Associates. 1993. ISBN 1-56592-055-4. Cited on: 363.

[Eckel] Bruce Eckel. Thinking in Java (3rd Edition). Prentice-Hall. 2003. ISBN 0-13-100287-2. Cited on: 341.

Available on the Web <http://www.mindview.net/Books/TIJ/>.

[Feller-Fitzgerald] Joseph Feller and Brian Fitzgerald. Understanding Open Source Software. Addison-Wesley. 2002. ISBN 0-201-73496-6. Cited on: 438.

[FlanaganJava] David Flanagan. Java in a Nutshell. O’Reilly & Associates. 1997. ISBN 1-56592-262-X. Cited on: 341.

[FlanaganJavaScript] David Flanagan. JavaScript: The Definitive Guide (4th Edition). O’Reilly & Associates. 2002. ISBN 1-596-00048-0. Cited on: 206.

[Fowler] Martin Fowler. Refactoring. Addison-Wesley. 1999. ISBN 0-201-48567-2. Cited on: 90.

[Friedl] Jeffrey Friedl. Mastering Regular Expressions (2nd Edition). O’Reilly & Associates. 2002. ISBN 0-596-00289-0. Cited on: 188.

[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. Cited on: 9.

Available on the Web <http://www.opensource.org/advocacy/fuzz-revisited.pdf>.

[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. Cited on: xxx.

[Gabriel] Richard Gabriel. Good News, Bad News, and How to Win Big. 1990. Cited on: 298, 438.

Available on the Web <http://www.dreamsongs.com/WorseIs-Better.html>.

[Gancarz] Mike Gancarz. The Unix Philosophy. Digital Press. 1995. ISBN 1-55558-123-4. Cited on: xxvi.

[Garfinkel] Simson Garfinkel, Daniel Weise, and Steve Strassman. The Unix Hater’s Handbook. IDG Books. 1994. ISBN 1-56884-203-1. Cited on: 5.

Available on the Web <http://research.microsoft.com/~daniel/unix-haters.html>.

[Gentner-Nielsen] Don Gentner and Jacob Nielsen. “The Anti-Mac Interface”. Communications of the ACM, Association for Computing Machinery. August 1996. Cited on: 261.

Available on the Web <http://www.acm.org/cacm/AUG96/antimac.htm>.

[Gettys] Jim Gettys. The Two-Edged Sword. 1998. Cited on: 7.

Available on the Web <http://freshmeat.net/articles/view/122/>.

[Glickstein] Bob Glickstein. Writing GNU Emacs Extensions. O’Reilly & Associates. 1997. ISBN 1-56592-261-1. Cited on: 343.

[Graham] Paul Graham. A Plan for Spam. Cited on: 218.

Available on the Web <http://www.paulgraham.com/spam.html>.

[Harold-Means] Elliotte Rusty Harold and W. Scott Means. XML in a Nutshell (2nd Edition). O’Reilly & Associates. 2002. ISBN 0-596-00292-0. Cited on: 117, 434.

[Hatton97] Les Hatton. “Re-examining the Defect-Density versus Component Size Distribution”. IEEE Software, March/April 1997. Cited on: 86.

Available on the Web <http://www.cs.ukc.ac.uk/people/staff/lh8/pubs/pubis697/Ubend_IS697.pdf.gz>.

[Hatton98] Les Hatton. “Does OO Sync with the Way We Think?” IEEE Software, 15 (3). Cited on: 328.

Available on the Web <http://www.cs.ukc.ac.uk/people/staff/lh8/pubs/pubis698/OO_IS698.pdf.gz>.

[Hauben] Ronda Hauben. History of UNIX. Cited on: 34.

Available on the Web <http://www.dei.isep.ipp.pt/docs/unix.html>.

[Heller] Steve Heller. C++: A Dialog: Programming with the C++ Standard Library. Prentice-Hall. 2003. ISBN 0-13-009402-1. Cited on: 329.

[Hunt-Thomas] Andrew Hunt and David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley. 2000. ISBN 0-201-61622-X. Cited on: xxvii, 90.

[Kernighan95] Brian Kernighan. Experience with Tcl/Tk for Scientific and Engineering Visualization. USENIX Association Tcl/Tk Workshop Proceedings. 1995. Cited on: 335.

Available on the Web <http://www.usenix.org/publications/library/proceedings/tcl95/full_papers/kernighan.txt>.

[Kernighan-Ritchie] Brian Kernighan and Dennis Ritchie. The C Programming Language (2nd Edition). Prentice-Hall Software Series. 1988. ISBN 0-13-110362-8. Cited on: 94, 326, 395, 397.

[Kernighan-Pike84] Brian Kernighan and Rob Pike. The Unix Programming Environment. Prentice-Hall. 1984. ISBN 0-13-937681-X. Cited on: xxvi, 325, 331, 356.

[Kernighan-Pike99] Brian Kernighan and Rob Pike. The Practice of Programming. Addison-Wesley. 1999. ISBN 0-201-61586-X. Cited on: xxv, xxvii, 410.

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. Cited on: 14.

[Lampson] Butler Lampson. “Hints for Computer System Design”. ACM Operating Systems Review, Association for Computing Machinery. October 1983. Cited on: 26.

Available on the Web <http://research.microsoft.com/~lampson/33-Hints/WebPage.html>.

[Lapin] J. E. Lapin. Portable C and Unix Systems Programming. Prentice-Hall. 1987. ISBN 0-13-686494-5. Cited on: 397.

[Leonard] Andrew Leonard. BSD Unix: Power to the People, from the Code. 2000. Cited on: 35.

Available on the Web <http://dir.salon.com/tech/fsp/2000/05/16/chapter_2_part_one/index.html>.

[Levy] Steven Levy. Hackers: Heroes of the Computer Revolution. Anchor/Doubleday. 1984. ISBN 0-385-19195-2. Cited on: 44. Available on the Web <http://www.stanford.edu/group/mmdd/SiliconValley/Levy/Hackers.1984.book/contents.html>.

[Lewine] Donald Lewine. POSIX Programmer’s Guide: Writing Portable Unix Programs. O’Reilly & Associates. 1992. ISBN 0-937175-73-0. Cited on: 400.

[Libes-Ressler] Don Libes and Sandy Ressler. Life with Unix. Prentice-Hall. 1989. ISBN 0-13-536657-7. Cited on: 35.

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. Peer-To-Peer Communications. 1996. 1-57398-013-7. Cited on: 34.

PostScript rendering of Lions’s original floats around the Web. This URL may be unstable <http://www.upl.cs.wisc.edu/~epaulson/lionc.ps>.

[Loukides-Oram] Mike Loukides and Andy Oram. Programming with GNU Software. O’Reilly & Associates. 1996. ISBN 1-56592-112-7. Cited on: 350, 357.

[Lutz] Mark Lutz. Programming Python. O’Reilly & Associates. 1996. ISBN 1-56592-197-6. Cited on: 337.

[McIlroy78] M. D. McIlroy, E. N. Pinson, and B. A. Tague. “Unix Time-Sharing System Forward”. The Bell System Technical Journal, Bell Laboratories. 57 (6, part 2), 1978, p. 1902. Cited on: 11.

[McIlroy91] M. D. McIlroy. “Unix on My Mind”. In: Proc. Virginia Computer Users Conference, Volume 21, p. 1–6. Cited on: 32.

[Miller] George Miller. “The Magical Number Seven, Plus or Minus Two”. The Psychological Review, 63, 1956, pp. 81–97. Cited on: 88.

Available on the Web <http://www.well.com/user/smalin/miller.html>.

[Mumon] Mumon. The Gateless Gate. Cited on: 149.

A good modern translation is available on the Web <http://www.ibiblio.org/zen/cgi-bin/koan-index.pl>.

[OpenSources] Sam Ockman and Chris DiBona, eds. Open Sources: Voices from the Open Source Revolution. O’Reilly & Associates. 1999. ISBN 1-56592-582-3. Cited on: 61.

Available on the Web <http://www.oreilly.com/catalog/opensources/book/toc.html>.

[Oram-Talbot] Andrew Oram and Steve Talbot. Managing Projects with Make. O’Reilly & Associates. 1991. ISBN 0-937175-90-0. Cited on: 357.

[Ousterhout94] John Ousterhout. Tcl and the Tk Toolkit. Addison-Wesley. 1994. ISBN 0-201-63337-X.

[Ousterhout96] John Ousterhout. 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 <http://home.pacbell.net/ouster/threads.pdf>.

[Padlipsky] Michael Padlipsky. The Elements of Networking Style. iUniverse.com. 2000. ISBN 0-595-08879-1. Cited on: 103, 462.

[Parnas] Parnas L. David. “On the Criteria to Be Used in Decomposing Systems into Modules”. Communications of the ACM. Cited on: 85.

Available on the Web at the ACM Classics page <http://www.acm.org/classics/may96/>.

[Pike] Rob Pike. Notes on Programming in C. Cited on: 12.

This document is popular on the Web; a title search is sure to find several copies. Here is one <http://www.lysator.liu.se/c/pikestyle.html>.

[Prechelt] Lutz Prechelt. An Empirical Comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a Search/String-Processing Program <http://www.ubka.uni-karlsruhe.de/cgi-bin/psview?document=ira/2000/5>. Cited on: 324.

[Raskin] Jef Raskin. The Humane Interface. Addison-Wesley. 2000. ISBN 0-201-37937-6. Cited on: 254.

A summary is available on the Web <http://humane.sourceforge.net/humane_interface/summary_of_thi.html>.

[Ravenbrook] The Memory Management Reference. Cited on: 22.

Available on the Web <http://www.memorymanagement.org/>.

[Raymond96] The New Hacker’s Dictionary (3rd Edition). MIT Press. 1996. ISBN 0-262-68092-0. Cited on: 45, 298.

Available on the Web at Jargon File Resource Page <http://www.catb.org/~esr/jargon>.

[Raymond01] Eric S. Raymond. The Cathedral and the Bazaar (2nd Edition). O’Reilly & Associates. 1999. ISBN 0-596-00131-2. Cited on: 49, 438, 474.

[Reps-Senzaki] Paul Reps and Nyogen Senzaki, eds. Zen Flesh, Zen Bones. Shambhala Publications. 1994. ISBN 1-570-62063-6. Cited on: xxvii.

A superb anthology of Zen primary sources, presented just as they are.

[Ritchie-Thompson] Dennis M. Ritchie and Ken Thompson. The Unix Time-Sharing System. Cited on: 33.

Available on the Web <http://cm.bell-labs.com/cm/cs/who/dmr/cacm.html>.

[Ritchie79] Dennis M. Ritchie. The Evolution of the Unix Time-Sharing System. 1979. Cited on: 30.

Available on the Web <http://cm.bell-labs.com/cm/cs/who/dmr/hist.html>.

[Ritchie93] Dennis M. Ritchie. The Development of the C Language. 1993. Cited on: 396.

Available on the Web <http://cm.bell-labs.com/cm/cs/who/dmr/chist.html>.

[RitchieQED] Dennis M. Ritchie. An Incomplete History of the QED Text Editor. 2003. Cited on: 304.

Available on the Web <http://cm.bell-labs.com/cm/cs/who/dmr/qed.html>.

[Salus] Peter H. Salus. A Quarter-Century of Unix. Addison-Wesley. 1994. ISBN 0-201-54777-5. Cited on: 12.

An excellent overview of Unix history, explaining many of the design decisions in the words of the people who made them.

[Schwartz-Christiansen] Randal Schwartz and Tom Phoenix. Learning Perl (3rd Edition). O’Reilly & Associates. 2001. ISBN 0-596-00132-0. Cited on: 333.

[Saltzer] James. H. Saltzer, David P. Reed, and David D. Clark. “End-to-End Arguments in System Design”. ACM Transactions on Computer Systems, Association for Computing Machinery. November 1984. Cited on: 123.

Available on the Web <http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf>.

[Schaffer-Wolf] Evan Schaffer and Mike Wolf. The Unix Shell as a Fourth-Generation Language. 1991. Cited on: 162.

Available on the Web <http://www.rdb.com/lib/4gl.pdf>. An opensource implementation, NoSQL, is available and readily turned up by a Web search.

[Spinellis] Diomidis Spinellis. “Notable Design Patterns for Domain-Specific Languages”. Journal of Systems and Software, 56 (1), February 2001, p. 91–99. Cited on: 207.

Available on the Web <http://www.dmst.aueb.gr/dds/pubs/jrnl/2000-JSS-DSLPatterns/html/dslpat.html>.

[Stallman] Richard M. Stallman. The GNU Manifesto. Cited on: 39.

Available on the Web <http://www.gnu.org/gnu/manifesto.html>.

[Stephenson] Neal Stephenson. In the Beginning Was the Command Line. 1999. Cited on: 262.

Available on the Web <http://www.cryptonomicon.com/beginning.html>, and also as a trade paperback from Avon Books.

[Stevens90] W. Richard Stevens. Unix Network Programming. Prentice-Hall. 1990. ISBN 0-13-949876-1. Cited on: 177.

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. Addison-Wesley. 1992. ISBN 0-201-56317-7. Cited on: xxv.

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. Cited on: 329.

[Tanenbaum-VanRenesse] Andrew S. Tanenbaum and Robbert van Renesse. A Critique of the Remote Procedure Call Paradigm. EUTECO’88 Proceedings, Participants Edition. 1988. Cited on: 179.

[Tidwell] Doug Tidwell. XSLT: Mastering XML Transformations. O’Reilly & Associates. 2001. ISBN 1-596-00053-7. Cited on: 194.

[Torvalds] Linus Torvalds and David Diamond. Just for Fun: The Story of an Accidental Revolutionary. HarperBusiness. 2001. ISBN 0-06-662072-4. Cited on: 394, 402.

[Vaughan] Gary V. Vaughan, Tom Tromey, and Ian Lance Taylor. GNU Autoconf, Automake, and Libtool. New Riders Publishing. 2000. ISBN 1-578-70190-2. Cited on: 364.

A user’s guide to the GNU autoconfiguration tools. Available on the Web <http://sources.redhat.com/autobook/>.

[Vo] Kiem-Phong Vo. “The Discipline and Method Architecture for Reusable Libraries”. Software Practice & Experience, 30, 2000, p. 107–128. Cited on: 100.

Available on the Web <http://www.research.att.com/sw/tools/vcodex/dm-spe.ps>.

[Wall2000] Larry Wall, Tom Christiansen, and Jon Orwant. Programming Perl (3rd Edition). O’Reilly & Associates. 2000. ISBN 0-596-00027-8. Cited on: 333.

[Welch] Brent Welch. Practical Programming in Tcl and Tk. Prentice-Hall. 1999. ISBN 0-13-022028-0. Cited on: 335.

[Williams] Sam Williams. Free as in Freedom. O’Reilly & Associates. 2002. ISBN 0-596-00287-4. Cited on: 46. Available on the Web <http://www.oreilly.com/openbook/freedom/index.html>.

[Yourdon] Edward Yourdon. Death March: The Complete Software Developer’s Guide to Surviving “Mission Impossible” Projects. Prentice-Hall. 1997. ISBN 0-137-48310-4. Cited on: 377.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset