Best of
Software

2004

Head First Design Patterns


Eric Freeman - 2004
     At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

High Performance MySQL: Optimization, Backups, Replication & Load Balancing


Jeremy D. Zawodny - 2004
    This book is an insider's guide to these little understood topics.Author Jeremy Zawodny has managed large numbers of MySQL servers for mission-critical work at Yahoo!, maintained years of contacts with the MySQL AB team, and presents regularly at conferences. Jeremy and Derek have spent months experimenting, interviewing major users of MySQL, talking to MySQL AB, benchmarking, and writing some of their own tools in order to produce the information in this book.In "High Performance MySQL" you will learn about MySQL indexing and optimization in depth so you can make better use of these key features. You will learn practical replication, backup, and load-balancing strategies with information that goes beyond available tools to discuss their effects in real-life environments. And you'll learn the supporting techniques you need to carry out these tasks, including advanced configuration, benchmarking, and investigating logs.Topics include: A review of configuration and setup optionsStorage engines and table typesBenchmarkingIndexesQuery OptimizationApplication DesignServer PerformanceReplicationLoad-balancingBackup and RecoverySecurity

Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

How Linux Works: What Every Superuser Should Know


Brian Ward - 2004
    Some books try to give you copy-and-paste instructions for how to deal with every single system issue that may arise, but How Linux Works actually shows you how the Linux system functions so that you can come up with your own solutions. After a guided tour of filesystems, the boot sequence, system management basics, and networking, author Brian Ward delves into open-ended topics such as development tools, custom kernels, and buying hardware, all from an administrator's point of view. With a mixture of background theory and real-world examples, this book shows both "how" to administer Linux, and "why" each particular technique works, so that you will know how to make Linux work for you.

Joel on Software


Joel Spolsky - 2004
    For years, Joel Spolsky has done exactly this at www.joelonsoftware.com. Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel.

Expert One-On-One J2EE Development Without EJB


Rod Johnson - 2004
    This practical, code-intensive guide provides best practices for using simpler and more effective methods and tools, including JavaServer pages, servlets, and lightweight frameworks.What does this book cover?The book begins by examining the limits of EJB technology -- what it does well and not so well. Then the authors guide you through alternatives to EJB that you can use to create higher quality applications faster and at lower cost -- both agile methods as well as new classes of tools that have evolved over the past few years.They then dive into the details, showing solutions based on the lightweight framework they pioneered on SourceForge -- one of the most innovative open source communities. They demonstrate how to leverage practical techniques and tools, including the popular open source Spring Framework and Hibernate. This book also guides you through productive solutions to core problems, such as transaction management, persistence, remoting, and Web tier design. You will examine how these alternatives affect testing, performance, and scalability, and discover how lightweight architectures can slash time and effort on many projects.What will you learn from this book?Here are some details on what you'll find in this book:How to find the simplest and most maintainable architecture for your application Effective transaction management without EJB How to solve common problems in enterprise software development using AOP and Inversion of Control Web tier design and the place of the Web tier in a well-designed J2EE application Effective data access techniques for J2EE applications with JDBC, Hibernate, and JDO How to leverage open source products to improve productivity and reduce custom coding How to design for optimal performance and scalability

Inversion of Control Containers and the Dependency Injection pattern


Martin Fowler - 2004
    Underlying these containers is a common pattern to how they perform the wiring, a concept they refer under the very generic name of "Inversion of Control". In this article I dig into how this pattern works, under the more specific name of "Dependency Injection", and contrast it with the Service Locator alternative. The choice between them is less important than the principle of separating configuration from use.

Concepts, Techniques, and Models of Computer Programming


Peter Van Roy - 2004
    The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine. The book presents all major programming paradigms in a uniform framework that shows their deep relationships and how and where to use them together.After an introduction to programming concepts, the book presents both well-known and lesser-known computation models ("programming paradigms"). Each model has its own set of techniques and each is included on the basis of its usefulness in practice. The general models include declarative programming, declarative concurrency, message-passing concurrency, explicit state, object-oriented programming, shared-state concurrency, and relational programming. Specialized models include graphical user interface programming, distributed programming, and constraint programming. Each model is based on its kernel language—a simple core language that consists of a small number of programmer- significant elements. The kernel languages are introduced progressively, adding concepts one by one, thus showing the deep relationships between different models. The kernel languages are defined precisely in terms of a simple abstract machine. Because a wide variety of languages and programming paradigms can be modeled by a small set of closely related kernel languages, this approach allows programmer and student to grasp the underlying unity of programming. The book has many program fragments and exercises, all of which can be run on the Mozart Programming System, an Open Source software package that features an interactive incremental development environment.

Windows XP Simplified Service Pack


Paul McFedries - 2004
    The perfect guide for visual learners who are brand-new to Windows XP and want to be shown-rather than told-how to solve problems and work through tasks Features highly visual two-page tutorials and full-color step-by-step screen shots that walk Windows newcomers through tasks such as working with files, sharing a computer, browsing the Web, using e-mail, and even creating movies Covers new SP2 enhancements, including the new Windows Firewall and wireless interface as well as updates to Windows Update, Media Player, and Internet Explorer

ESRI Map Book, Volume 19


Environmental Systems Research Institute - 2004
    Everyone's favorite, the map book appeals to people who simply enjoy studying the intricacies of maps or to those who daily strive for better ways to manage the world in which we live through GIS. Covering more than 20 disciplines, GIS-the Language of Geography, ESRI Map Book Volume 19, shows us how much of our world is connected in geographic networks. From exploring unknown territories to managing valuable resources to making processes more accurate and efficient, ESRI software users are continuing to broaden the influence of GIS.

Adobe Photoshop CS for Photographers: Professional Image Editor's Guide to the Creative Use of Photoshop for the Mac and PC


Martin Evening - 2004
    The main update is the latest coverage of all that's new in digital capture; also the numerous new tutorials and updated, top quality color images throughout make this edition a must have purchase. This edition also benefits from a new internal design that, along with a re-ordering of the contents, makes navigation even easier. Still packed with practical advice and even more hints and tips, this book will take your Photoshop up to a professional standard, guided by the 'Daddy' of Photoshop himself, Martin Evening. * Over 450 professional, color illustrations make this book stand above the rest* New interior design and reorganised contents make this book even easier to use* Master the power of Photoshop CS under the instruction of an internationally recognised Photoshop expert

Essentials of Computer Architecture


Douglas E. Comer - 2004
    Douglas Comer takes a clear, concise approach to computer architecture that readers love. By exploring the fundamental concepts from a programmer 's perspective and explaining programming consequences, this unique text covers exactly the material students need to understand and construct efficient and correct programs for modern hardware.

Requirements-Led Project Management: Discovering David's Slingshot


Suzanne Robertson - 2004
    This is true for any product—software, hardware, consumer appliance, or large-scale construction. You have to understand its requirements—what is needed and desired—if you are to build the right product. Most developers recognize the truth in this statement, even if they don't always live up to it.Far less obvious, however, is the contribution that the requirements activity makes to project management. Requirements, along with other outputs from the requirements activity, are potent project management tools.In Requirements-Led Project Management, Suzanne and James Robertson show how to use requirements to manage the development lifecycle. They show program managers, product and project managers, team leaders, and business analysts specifically how to: Use requirements as input to project planning and decision-making Determine whether to invest in a project Deliver more appropriate products with a quick cycle time Measure and estimate the requirements effort Define the most effective requirements process for a project Manage stakeholder involvement and expectations Set requirements priorities Manage requirements across multiple domains and technologies Use requirements to communicate across business and technological boundaries In their previous book, Mastering the Requirements Process, the Robertsons defined Volere—their groundbreaking and now widely adopted requirements process. In this second book, they look at the outputs from the requirements process and demonstrate how you can take advantage of the all-important links between requirements and project success.

.NET Framework Standard Library Annotated Reference, Volume 1: Base Class Library and Extended Numerics Library


Brad Abrams - 2004
    Great Book,+CD, ship immediately, Includes CD very good condition

Integrating Agile Development in the Real World


Peter Schuh - 2004
    Agile development breaks with a 40-year tradition of applying ever more structure and formalization to the design and development of software by advocating a return to the basic principles of satisfied customers, working software, and the willingness to accept and respond to change. As the popularity of agile development has grown, IT professionals have begun to struggle with ways to integrate agile practices and processes into traditional project environments. Integrating Agile Development in the Real World provides programmers and managers with specific and implementable ways to use agile processes in everyday software development projects. Whether read cover-to-cover, or used as a field guide during an agile transition, this book provides valuable insight into how agile practices and processes may be applied in almost any environment. Everything from how to deliver a working system sooner, acknowledge and respond to change, better meet the needs of the project's customer, to increasing software quality, and fostering a more communicative and collaborative team culture are thoroughly covered.

Service-Oriented Computing: Semantics, Processes, Agents


Munindar P. Singh - 2004
    Its discussions include: Ontologies Semantic web technologies Peer-to-peer service discovery Service selection Web structure and link analysis Distributed transactions Process modelling Consistency management. The application of these technologies is clearly explained within the context of planning, negotiation, contracts, compliance, privacy, and network policies. The presentation of the intellectual underpinnings of Web services draws from several key disciplines such as databases, distributed computing, artificial intelligence, and multi-agent systems for techniques and formalisms. Ideas from these disciplines are united in the context of Web services and service-based applications.Featuring an accompanying website and teacher's manual that includes a complete set of transparencies for lectures, copies of open-source software for exercises and working implementations, and resources to conduct course projects, this book makes an excellent graduate textbook. It will also prove an invaluable reference and training tool for practitioners.

SWT: A Developer's Notebook


Tim Hatton - 2004
    One of the core underpinnings of Eclipse is SWT, the Standard Widget Toolkit. This set of components can be used to develop graphical user interfaces in Java,and offer a native-code alternative to Java's Swing and AWT components. Incorporating the look and feel of whatever platform the code is run on, SWT offers a lightning-fast approach to building GUIs, all of which actually look like they belong on the platform on which they are run.But you already know what you want to do--so wading through the basics of user interface design, graphical components, and what a button does is simply a waste of time. Enter SWT: A Developer's Notebook. In typical Developer's Notebook style, you'll learn how to take SWT out for a spin, make it work for you, and turn it upside down, all without wasted words or space. Each lab in this notebook details a specific task; you can read from the first page to the last, look up just what you need to know, and even squeeze this book into your laptop bag as a quick reference when you forget how to create a multi-tabbed view.This book covers:Downloading and configuring Eclipse and SWTMenus, toolbars, and buttonsBuilding tabbed layouts and foldersSWT's unique coolbar controlAdding listeners and responding to eventsBuilding a complete SWT-based application

Enterprise Java Security: Building Secure J2EE Applications


Nataraj Nagaratnam - 2004
    Written by the leading Java security experts at IBM, this comprehensive guide covers the current status of the Java(TM) 2 Platform, Enterprise Edition (J2EE), and Java(TM) 2 Platform, Standard Edition (J2SE(TM)), security architectures and offers practical solutions and usage patterns to address the challenges of Java security.To aid developers who need to build secure J2EE applications, Enterprise Java(TM) Security covers at length the J2EE security technologies, including the security aspects of servlets, JavaServer Pages(TM) (JSP(TM)), and Enterprise JavaBeans(TM) (EJB(TM))--technologies that are at the core of the J2EE architecture. In addition, the book covers Web Services security.Examples and sample code are provided throughout the book to give readers a solid understanding of the underlying technology.The relationship between Java and cryptographic technologies is covered in great detail, including:Java Cryptography Architecture (JCA)Java Cryptography Extension (JCE)Public-Key Cryptography Standards (PKCS)Secure/Multipurpose Internet Mail Extensions (S/MIME)Java Secure Socket Extension (JSSE)

Domain Architectures: Models and Architectures for UML Applications


Daniel J. Duffy - 2004
    Providing a unique top-down view of systems, the book also provides quick access to landmarks and references to domain architectures. The ability to describe applications, in terms of the properties they share, offers software designers a vast new landscape for implementing software reuse. The ideal professional's handbook. Helps readers reduce trial and error and increase productivity by reusing tried and trusted ideas Models are described and documented using UML (incorporating UML 2.0) models and meta models

Ivor Horton's Beginning Java: Java 7 Edition


Ivor Horton - 2004
    In this latest edition, whether you're a beginner or an experienced programmer switching to Java, you'll learn how to build real-world Java applications using Java SE 7. The author thoroughly covers the basics as well as new features such as extensions and classes; extended coverage of the Swing Application Framework; and he does it all in his unique, highly accessible style that beginners love.Provides a thorough introduction to the latest version of the Java programming language, Java SE 7 Introduces you to a host of new features for both novices and experienced programmers Covers the basics as well as new language extensions and classes and class methods Guides you through the Swing Application Framework for creating Swing apps Uses numerous step-by-step programming examples to guide you through the development process There's no better way to get thoroughly up to speed on the latest version of Java than with Ivor Horton's latest, comprehensive guide.

Validated Designs for Object-Oriented Systems


John Fitzgerald - 2004
    If systems developers are to gain full advantage from such methods, they should be able to achieve designs that are not merely the subject of heated argument, but can be improved by careful, rigorous & machine-supported analysis.This book describes an object-oriented design approach that combines the benefits of abstract modelling with the analytic power of formal methods, to give designs that can be rigorously validated & assured with automated support.Aimed at software architects, designers & developers as well as computer scientists, no prior knowledge of formal methods is assumed. The elements of functional modelling are introduced using numerous examples & exercises, industrial case studies & experience reports. Industry-strength tools support the text. Go to www.vdmbook.com to download free-of-charge VDMTools Lite, which gives the possibility to try out examples from the book

Mapping Your Family Relationships: Understanding Your Family Dynamics


Stephanie Clement - 2004
    Making sense of these relationships depends on understanding each member's personal motivations and feelings. Astrology can help!Mapping Your Family Relationships is a valuable astrological tool for analyzing your family unit objectively. No previous astrological knowledge is needed. A birth date and time is all that's required to access an astrological understanding of any family member-parents, siblings, children, grandparents, aunts, uncles, and cousins. This book and program makes it easy to explore family relations from the reader's perspective, as well as from the viewpoints of other family members.The CD-ROM included with this book runs on Windows 95/98/ME/2000/XP and was developed by Cosmic Patterns, a leading developer of astrological software.