Best of
Software

2003

Domain-Driven Design: Tackling Complexity in the Heart of Software


Eric Evans - 2003
    "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of Design Patterns "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of Designing Object-Oriented User Interfaces "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." --Luke Hohmann, author of Beyond Software Architecture "This book belongs on the shelf of every thoughtful software developer." --Kent Beck "What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important." --Kyle Brown, author of Enterprise Java(TM) Programming with IBM(R) WebSphere(R) The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.

Lean Software Development: An Agile Toolkit


Mary Poppendieck - 2003
    Along the way, they introduce 22 thinking tools that can help you customize the right agile practices for any environment.Better, cheaper, faster software development. You can have all three-if you adopt the same lean principles that have already revolutionized manufacturing, logistics and product development.Iterating towards excellence: software development as an exercise in discovery Managing uncertainty: decide as late as possible by building change into the system. Compressing the value stream: rapid development, feedback, and improvement Empowering teams and individuals without compromising coordination Software with integrity: promoting coherence, usability, fitness, maintainability, and adaptability How to see the whole-even when your developers are scattered across multiple locations and contractors Simply put, Lean Software Development helps you refocus development on value, flow, and people-so you can achieve breakthrough quality, savings, speed, and business alignment.

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions


Gregor Hohpe - 2003
    The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL. A case study describing a bond trading system illustrates the patterns in practice, and the book offers a look at emerging standards, as well as insights into what the future of enterprise integration might hold. This book provides a consistent vocabulary and visual notation framework to describe large-scale integration solutions across many technologies. It also explores in detail the advantages and limitations of asynchronous messaging architectures. The authors present practical advice on designing code that connects an application to a messaging system, and provide extensive information to help you determine when to send a message, how to route it to the proper destination, and how to monitor the health of a messaging system. If you want to know how to manage, monitor, and maintain a messaging system once it is in use, get this book.

Computer Security: 20 Things Every Employee Should Know


Ben Rothke - 2003
    "The employee handbook for securing the workplace"--Cover.

Silicon Secrets


Catherine Burr - 2003
    Suspense with a high tech twist. An ambitious immigrant from New York sets his sights on chasing the California dream of riches to be made in Silicon Valley. Enter into a hyperdrive world where secrets abound.

Creating Motion Graphics with After Effects, Vol. 2: Advanced Techniques (Version 6.5)


Trish Meyer - 2003
    Adobe After Effects is a dual-platform program used by major production departments and art houses. From animating background images to creating film-style title sequences, After Effects does it all. Part of theDV Expert series, this book offers practical, in-depth coverage for working professionals and aspiring pros. Volume 2: Advanced Techniques focuses on how After Effects integrates with other programs vital to the motion graphics workflow and technical details of preparing files for broadcast. Core concepts include audio, typography, and alpha channels. Advanced features of the application such as color keying, motion tracking, Expressions, and using the new paint tool and text animation engine are also covered in depth. This volume also explores the integration between After Effects and other programs such as Photoshop, Illustrator, and 3D applications, and discusses nonlinear editing systems and Web tools. It addresses functionality exclusively available in the Production Bundle of After Effects and popular plug-ins. This bestseller focuses on how After Effects integrates with other programs vital to the motion graphics workflow and technical details of preparing files for broadcast.

Neutron Star


Larry Niven - 2003
    The last group who went there never came back alive, but Shaeffer faces life imprisonment if he doesn't take the job. Will he determine the mysterious force that turned the prior crew to hamburger before he suffers a similar fate? Hugo Award Winner

Tricks of the 3D Game Programming Gurus-Advanced 3D Graphics and Rasterization


André LaMothe - 2003
    We now have the technology to create games that look real, but, all this technology isn't easy or trivial to understand. This book will give readers the knowledge to create a full 3D, texture-mapped, lit video game for the PC with a software rasterizer they can write themselves. They could also understand the underlying principles of 3D graphics and be able to better understand and utilize 3D hardware today and in the future.

VISIO 2003 Developer's Survival Pack


Graham Wideman - 2003
    Covers structure and behavior of the Visio platform, architectures for adding functionality, and an extensive browsable reference section.

Finite Element Method: A Practical Course


G.R. Liu - 2003
    Written for engineers and students alike, the aim of the book is to provide the necessary theories and techniques of the FEM for readers to be able to use a commercial FEM package to solve primarily linear problems in mechanical and civil engineering with the main focus on structural mechanics and heat transfer. Fundamental theories are introduced in a straightforward way, and state-of-the-art techniques for designing and analysing engineering systems, including microstructural systems are explained in detail. Case studies are used to demonstrate these theories, methods, techniques and practical applications, and numerous diagrams and tables are used throughout. The case studies and examples use the commercial software package ABAQUS, but the techniques explained are equally applicable for readers using other applications including NASTRAN, ANSYS, MARC, and more. Full sets of PowerPoint slides developed by the authors for their course on FEM are available as a free download from a companion website.

Software Design: From Programming To Architecture


Eric J. Braude - 2003
    Now Eric Braude pulls these three advances together into one unified presentation: A helpful project threaded throughout the book enables readers to apply what they are learning Presents a modern and applied approach to software design Numerous design patterns with detailed explanations provide essential tools for technical and professional growth Includes extensive discussion of UML with many UML examples

Unchained Eagle: From Prisoner of War to Prisoner of Christ


Robert G. Certain - 2003
    

J2ee Web Services


Richard Monson-Haefel - 2003
    This book, concentrating on standards sanctioned by the Web Services Interoperability Organization (WS-I) for maximum interoperability, delves into Web-service standards and the J2EE 1.4 Web-service APIs and components with engaging discussions.

McAd Developing XML Web Services and Server Components with Visual C# .Net and the .Net Framework Exam Cram 2 (Exam Cram 70-320)


Kirk Hausman - 2003
    This exam counts as a core credit toward the new MCAD (Microsoft Certified Application Developer) certification as well as a core credit toward the new MCSD .NET track. This book is not intended to teach new material. Instead it assumes that you have a solid foundation of knowledge but can use a refresher on important concepts as well as a guide to exam topics and objectives. This book focuses exactly on what you need to pass the exam - it features test-taking strategies, time-saving study tips, and a special Cram Sheet that includes tips, acronyms, and memory joggers not available anywhere else. The series is supported online at several Web sites: examcram.com, informit.com, and cramsession.com.The accompanying CD features PrepLogic(TM) Practice Tests, Preview Edition. This product includes one complete PrepLogic Practice Test with approximately the same number of questions found on the actual vendor exam. Each question contains full, detailed explanations of the correct and incorrect answers. The engine offers two study modes, Practice Test and Flash Review, full exam customization, and a detailed score report.

MCSA/MCSE Self-Paced Training Kit (Exam 70-214): Implementing and Administering Security in a Microsoft Windows 2000 Network: Implementing and Administering Security in a Microsoft Windows 2000 Network


Microsoft Corporation - 2003
    Work at your own pace through the lessons and hands-on exercises. And use the testing tool on CD to measure what you know and where to focus your studies—before taking the actual exam. As you develop the real-world expertise needed to help manage network security, you’re also preparing for MCP Exam 70-214—an elective for MCSA or MCSE certification.BUILD THE SKILLS TO:Help secure client computers with file system permissions, Group Policy, and other baseline security measures Configure IPSec and SSL to help protect communication channels for both private and public servers Manage user and network authentication, certificates, and public key encryption Implement security measures for RAS, VPNs, and wireless networks Help protect Microsoft Internet Information Services, Microsoft Exchange Server, and Microsoft SQL Server™ from unauthorized access Maintain software integrity with service packs, security updates, and hot fixes Monitor events, detect network intrusions, and implement prevention and recovery measures YOUR KIT INCLUDES:Comprehensive self-paced study guide that maps to MCP exam goals and objectives Learn-by-doing exercises for skills you can apply to the job Lesson summaries and review questions, including a complete Q&A summary Testing tool that generates realistic practice exams with automated scoring and explanations for both correct and incorrect answers 120-day evaluation version of Windows 2000 Server Fully searchable eBook version of the study guide A Note Regarding the CD or DVDThe print version of this book ships with a CD or DVD. For those customers purchasing one of the digital formats in which this book is available, we are pleased to offer the CD/DVD content as a free download via O'Reilly Media's Digital Distribution services. To download this content, please visit O'Reilly's web site, search for the title of this book to find its catalog page, and click on the link below the cover image (Examples, Companion Content, or Practice Files). Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.

Windows XP Killer Tips


Kleber Stephenson - 2003
    The Killer Tips series was developed because the author recognized how useful technology users find those cool "I didn't know THAT" sidebars that are peppered all over the other computer books out there. This title is all about speed; showing XP users how to get more work done faster, while actually increasing quality.

Data Mining Techniques With Mastering Data Mining Set


Michael J.A. Berry - 2003
    Packed with more than forty percent new and updated material, this edition shows business managers, marketing analysts, and data mining specialists how to harness fundamental data mining methods and techniques to solve common types of business problems Each chapter covers a new data mining technique, and then shows readers how to apply the technique for improved marketing, sales, and customer support The authors build on their reputation for concise, clear, and practical explanations of complex concepts, making this book the perfect introduction to data mining More advanced chapters cover such topics as how to prepare data for analysis and how to create the necessary infrastructure for data mining Covers core data mining techniques, including decision trees, neural networks, collaborative filtering, association rules, link analysis, clustering, and survival analysis

Macromedia Director MX and Lingo: Training from the Source


Phil Gross - 2003
    Useful for beginning to intermediate level course in software Applications for Web authoring, Web graphics, multimedia, and design, they guide the students to learn the operations of a Macromedia program.

Microsoft® Office Excel® 2003 Step by Step


Curtis D. Frye - 2003
    Master the tools for organizing, processing and presenting data; make data come alive with Microsoft PivotTable® and PivotChart® dynamic views; use data analysis tools for better decision making; tap external data sources; add hyperlinks; create macros; and help keep data secure as you share—and collaborate on—Excel documents over the Web. The book also helps you prepare for the Microsoft Office Specialist exam and makes a great on-the-job desk reference. The companion CD includes practice files you can use as you learn, as well as the Microsoft Office System Reference pack, which contains templates and clip art, an eBook of Step by Step, and four other eBooks: the Microsoft Office System Quick Reference; the Insider’s Guide to Microsoft Office OneNote 2003; the Microsoft Computer Dictionary, Fifth Edition; and Introducing the Tablet PC. Designed for beginning and intermediate level users, STEP BY STEP puts you in charge of developing the skills you need, exactly when you need them!A Note Regarding the CD or DVDThe print version of this book ships with a CD or DVD. For those customers purchasing one of the digital formats in which this book is available, we are pleased to offer the CD/DVD content as a free download via O'Reilly Media's Digital Distribution services. To download this content, please visit O'Reilly's web site, search for the title of this book to find its catalog page, and click on the link below the cover image (Examples, Companion Content, or Practice Files). Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.

Sams Teach Yourself ASP.Net in 24 Hours Complete Starter Kit [With CDROM]


Scott Mitchell - 2003
    This book teaches non-programmers how to utilize the powerful built-in ASP.NET controls while using the free Web authoring toold created by Microsoft--Web Matrix. The barrier to entry for this book is very low. Readers need only have Windows 2000 (Professional) or Windows XP. All the other necessary tools are provided on the accompanying CD.

Applied .Net Attributes


Jason Bock - 2003
    Applied .NET Attributes explores the application of .NET attributes and how developers can write custom attributes that provide the maximum level of code reuse and flexibility.Attributed programming is a feature of .NET that is still relatively unexplored and unknown. Because attributes are used to modify the runtime behavior of code in the .NET Framework, their use is extremely important and will become even more important over time. This insightful guide covers the fundamentals of attributes, common .NET attributes, the use of custom attributes, and advanced techniques.

Preventative Programming Techniques: Avoid and Correct Common Mistakes


Brian Hawkins - 2003
    It includes practical ways to reduce problems that occur every day, and provides methods for correcting problems that already exist. Using a medical metaphor, each of the common problems is presented as an illness. Each illness is then presented in a structured approach that includes a basic description, common symptoms, prevention methods, cures, and related illnesses to look for.The majority of the principles and practices espoused are language independent and focus on instructing programmers how to detect and avoid problems. It also includes guidelines on determining when and how to refactor or rewrite code. Some of the major and minor illnesses found throughout programming, include premature optimization, CAP (cut and paste) epidemic, NIH (not invented here) syndrome, complexification, oversimplification, docuphobia, and more. If you're a programmer, you've made these mistakes or you've had to deal with code that has them in it.To learn how to prevent and fix these problems, check out all of the illnessesyou're sure to find insightful tips for your own projects. Novice programmers will benefit greatly from reading through each category of illness from start to finish, and experienced programmers will benefit from the insightful tips and anecdotes.

XML Design Handbook


Scott Bonneau - 2003
    Simply knowing the syntax and features of the language just isn't enough if you want to build powerful and efficient XML driven applications. You need to understand how to use the language and its features in the most effective manner. This is where this book comes in - assuming familiarity with the mechanics of XML, it analyzes all of the critical pieces of the XML space that require careful design in order to build efficient, robust, and extensible applications. It covers: Effective document design Designing robust, flexible schemas for validating documents Dissection of the SAX and DOM parsing APIs - when to use which Best practices for XSLT design XML storage strategies Techniques for XML transmission, using SOAP and XML-RPC Presenting data to a range of different applications The book should appeal equally to the XML developer, who needs to write code to process XML documents or data, and the XML architect, working on systems that store and/or process XML.

Software Engineering Measurement


John C. Munson - 2003
    The author explains how to manage software development measurement systems, how to build software measurement tools and standards, and how to construct controlled experiments using standardized measurement tools.There are three fundamental questions that this book seeks to answer. First, exactly how do you get the measurement data? Second, how do you convert the data from the measurement process to information that you can use to manage the software development process? Third, how do you manage all of the data?Millions of dollars are being spent trying to secure software systems. When suitable instrumentation is placed into the systems that we develop, their activity can be monitored in real time. Measurement based automatic detection mechanisms can be designed into systems. This will permit the detection of system misuse and detect incipient reliability problems.By demonstrating how to develop simple experiments for the empirical validation of theoretical research and showing how to convert measurement data into meaningful and valuable information, this text fosters more precise use of software measurement in the computer science and software engineering literature. Software Engineering Measurement shows you how to convert your measurement data to valuable information that can be used immediately for software process improvement.

Mastering C# Database Programming


Jason Price - 2003
    Mastering C# Database Programming is the resource you need to thrive in this new world. Assuming no prior experience with database programming, this book teaches you every aspect of the craft, from GUI design to server development to middle-tier implementation. If you're familiar with earlier versions of ADO, you'll master the many new features of ADO.NET all the more quickly. You'll also learn the importance of XML within the new .NET paradigm. Coverage includes:Accessing a database using C# and ADO.NET Using SQL to access a database Using Visual Studio .NET to build applications Creating and modifying database tables Understanding ADO.NET classes Designing, building, and deploying Web applications that access a database Designing, building, and deploying effective Web services Using SQL Server's built-in XML capabilities Working with a database in a disconnected manner Using advanced transaction controls Using Transact-SQL to create stored procedures and functions in a SQL Server database

The Government Machine: A Revolutionary History of the Computer


Jon Agar - 2003
    He argues that this transformation has been tied to the rise of "expert movements," groups whose authority has rested on their expertise. The deployment of machines was an attempt to gain control over state action -- a revolutionary move. Agar shows how mechanization followed the popular depiction of government as machine-like, with British civil servants cast as components of a general purpose "government machine"; indeed, he argues that today's general purpose computer is the apotheosis of the civil servant.Over the course of two centuries, government has become the major repository and user of information; the Civil Service itself can be seen as an information-processing entity. Agar argues that the changing capacities of government have depended on the implementation of new technologies, and that the adoption of new technologies has depended on a vision of government and a fundamental model of organization. Thus, to study the history of technology is to study the state, and vice versa.