Coder to Developer: Tools and Strategies for Delivering Your Software
Total Page:16
File Type:pdf, Size:1020Kb
4327book.fm Page iii Tuesday, February 24, 2004 3:49 PM Coder to Developer: Tools and Strategies for Delivering Your Software Mike Gunderloy San Francisco • London 4327book.fm Page ii Tuesday, February 24, 2004 3:49 PM 4327book.fm Page i Tuesday, February 24, 2004 3:49 PM Coder to Developer: Tools and Strategies for Delivering Your Software 4327book.fm Page ii Tuesday, February 24, 2004 3:49 PM 4327book.fm Page iii Tuesday, February 24, 2004 3:49 PM Coder to Developer: Tools and Strategies for Delivering Your Software Mike Gunderloy San Francisco • London 4327book.fm Page iv Tuesday, February 24, 2004 3:49 PM Associate Publisher: Joel Fugazzotto Acquisitions and Developmental Editor: Tom Cirtin Production Editor: Leslie E.H. Light Technical Editor: John Paul Mueller Copyeditor: Liz Welch Compositor: Happenstance Type-O-Rama Graphic Illustrator: Happenstance Type-O-Rama Proofreader: Laurie O’Connell, Nancy Riddiough Indexer: Lynnzee Elze Cover Designer: Ingalls+Associates Cover Illustrator: Rob Atkins, The Image Bank Copyright © 2004 SYBEX Inc., 1151 Marina Village Parkway, Alameda, CA 94501. World rights reserved. No part of this publication may be stored in a retrieval system, transmitted, or reproduced in any way, including but not limited to photocopy, photograph, magnetic, or other record, without the prior agreement and written permission of the publisher. Library of Congress Card Number: 2003116217 ISBN: 0-7821-4327-X SYBEX and the SYBEX logo are either registered trademarks or trademarks of SYBEX Inc. in the United States and/or other countries. Screen reproductions produced with PaintShop Pro. PaintShop Pro is a trademark of Jasc Software Inc. Internet screen shot(s) using Microsoft Internet Explorer reprinted by permission from Microsoft Corporation. TRADEMARKS: SYBEX has attempted throughout this book to distinguish proprietary trademarks from descriptive terms by following the capitalization style used by the manufacturer. The author and publisher have made their best efforts to prepare this book, and the content is based upon final release software whenever pos- sible. Portions of the manuscript may be based upon pre-release versions supplied by software manufacturer(s). The author and the publisher make no representation or warranties of any kind with regard to the completeness or accuracy of the contents herein and accept no liability of any kind including but not limited to performance, merchantability, fitness for any particular purpose, or any losses or damages of any kind caused or alleged to be caused directly or indirectly from this book. Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 4327book.fm Page v Tuesday, February 24, 2004 3:49 PM SOFTWARE LICENSE AGREEMENT: Warranty TERMS AND CONDITIONS SYBEX warrants the enclosed media to be free of physical defects for a period of ninety (90) days after purchase. The Software is not The media and/or any online materials accompanying this book available from SYBEX in any other form or media than that that are available now or in the future contain programs and/or text enclosed herein or posted to www.sybex.com. If you discover a files (the "Software") to be used in connection with the book. defect in the media during this warranty period, you may obtain a SYBEX hereby grants to you a license to use the Software, subject replacement of identical format at no charge by sending the defec- to the terms that follow. Your purchase, acceptance, or use of the tive media, postage prepaid, with proof of purchase to: Software will constitute your acceptance of such terms. The Software compilation is the property of SYBEX unless other- SYBEX Inc. wise indicated and is protected by copyright to SYBEX or other Product Support Department copyright owner(s) as indicated in the media files (the "Owner(s)"). 1151 Marina Village Parkway You are hereby granted a single-user license to use the Software for Alameda, CA 94501 your personal, noncommercial use only. You may not reproduce, Web: http://www.sybex.com sell, distribute, publish, circulate, or commercially exploit the Soft- ware, or any portion thereof, without the written consent of SYBEX After the 90-day period, you can obtain replacement media of iden- and the specific copyright owner(s) of any component software tical format by sending us the defective disk, proof of purchase, and included on this media. a check or money order for $10, payable to SYBEX. In the event that the Software or components include specific license requirements or end-user agreements, statements of condi- Disclaimer tion, disclaimers, limitations or warranties ("End-User License"), SYBEX makes no warranty or representation, either expressed or those End-User Licenses supersede the terms and conditions herein implied, with respect to the Software or its contents, quality, per- as to that particular Software component. Your purchase, accep- formance, merchantability, or fitness for a particular purpose. In no tance, or use of the Software will constitute your acceptance of such event will SYBEX, its distributors, or dealers be liable to you or any End-User Licenses. other party for direct, indirect, special, incidental, consequential, or By purchase, use or acceptance of the Software you further agree to other damages arising out of the use of or inability to use the Soft- comply with all export laws and regulations of the United States as ware or its contents even if advised of the possibility of such damage. such laws and regulations may exist from time to time. In the event that the Software includes an online update feature, SYBEX further disclaims any obligation to provide this feature for any specific duration other than the initial posting. Reusable Code in This Book The author(s) created reusable code in this publication expressly for The exclusion of implied warranties is not permitted by some states. reuse by readers. Sybex grants readers limited permission to reuse Therefore, the above exclusion may not apply to you. This warranty the code found in this publication, its accompanying CD-ROM or provides you with specific legal rights; there may be other rights available for download from our website so long as the author(s) are that you may have that vary from state to state. The pricing of the attributed in any application containing the reusable code and the book with the Software by SYBEX reflects the allocation of risk and code itself is never distributed, posted online by electronic trans- limitations on liability contained in this agreement of Terms and mission, sold, or commercially exploited as a stand-alone product. Conditions. Software Support Shareware Distribution Components of the supplemental Software and any offers associ- This Software may contain various programs that are distributed as ated with them may be supported by the specific Owner(s) of that shareware. Copyright laws apply to both shareware and ordinary material, but they are not supported by SYBEX. Information commercial software, and the copyright Owner(s) retains all rights. regarding any available support may be obtained from the Owner(s) If you try a shareware program and continue using it, you are using the information provided in the appropriate read.me files or expected to register it. Individual programs differ on details of trial listed elsewhere on the media. periods, registration, and payment. Please observe the require- ments stated in appropriate files. Should the manufacturer(s) or other Owner(s) cease to offer sup- port or decline to honor any offer, SYBEX bears no responsibility. This notice concerning support for the Software is provided for Copy Protection your information only. SYBEX is not the agent or principal of the The Software in whole or in part may or may not be copy-protected Owner(s), and SYBEX is in no way responsible for providing any or encrypted. However, in all cases, reselling or redistributing these support for the Software, nor is it liable or responsible for any sup- files without authorization is expressly forbidden except as specifi- port provided, or not provided, by the Owner(s). cally provided for by the Owner(s) therein. 4327book.fm Page vi Tuesday, February 24, 2004 3:49 PM 4327book.fm Page vii Tuesday, February 24, 2004 3:49 PM For Dana, once again—and always. 4327book.fm Page viii Tuesday, February 24, 2004 3:49 PM Foreword Y ou know what drives me crazy? “Everything?” you ask. Well, OK, some of you know me a bit too well by now. But seriously, folks, what drives me crazy is that most software developers don’t realize just how little they know about software development. Take, for example, me. When I was a teenager, as soon as I finished reading Peter Norton’s famous guide to pro- gramming the IBM-PC in Assembler, I was convinced that I knew everything there was to know about software development in general. Heck, I was ready to start a software company to make a word processor, you see, and it was going to be really good. My imaginary software company was going to have coffee breaks with free donuts every hour. A lot of my daydreams in those days involved donuts. When I got out of the army, I headed off to college and got a degree in Computer Science. Now I really knew everything. I knew more than everything, because I had learned a bunch of computer-scientific junk about linear algebra and NP completeness and frigging lambda calcu- lus which was obviously useless, so I thought they must have run out of useful things to teach us and were scraping the bottom of the barrel. Nope. At my first job I noticed how many things there are that many Computer Science departments are too snooty to actually teach you.