Features the best practices in the art and science of constructing software--topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. Original. (Intermediate)

"This is Effective C++ volume three - it's really that good." - Herb Sutter, independent consultant and secretary of the ISO/ANSI C++ standards committee "There are very few books which all C++ programmers must have. Add Effective STL to that list." - Thomas Becker, Senior Software Engineer, Zephyr Associates, Inc., and columnist, C/C++ Users Journal C++'s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers ( Effective C++ , and More Effective C++ ) reveals the critical rules of thumb employed by the experts - the things they almost always do or almost always avoid doing - to get the most out of the library. Other books describe what's in the STL. Effective STL shows you how to use it. Each of the book's 50 guidelines is backed by Meyers' legendary analysis and incisive examples, so you'll learn not only what to do, but also when to do it - and why. Highlights of Effective STL include: Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset). Techniques to maximize the efficiency of the STL and the programs that use it. Insights into the behavior of iterators, function objects, and allocators, including things you should not do. Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways. Discussions of potential portability problems, including straightforward ways to avoid them. Like Meyers' previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.

This title documents a convergence of programming techniques - generic programming, template metaprogramming, object-oriented programming and design patterns. It describes the C++ techniques used in generic programming and implements a number of industrial strength components.

See how the core components of the Windows operating system work behind the scenes--guided by a team of internationally renowned internals experts. Fully updated for Windows Server(R) 2008 and Windows Vista(R), this classic guide delivers key architectural insights on system design, debugging, performance, and support--along with hands-on experiments to experience Windows internal behavior firsthand. Delve inside Windows architecture and internals: Understand how the core system and management mechanisms work--from the object manager to services to the registry Explore internal system data structures using tools like the kernel debugger Grasp the scheduler's priority and CPU placement algorithms Go inside the Windows security model to see how it authorizes access to data Understand how Windows manages physical and virtual memory Tour the Windows networking stack from top to bottom--including APIs, protocol drivers, and network adapter drivers Troubleshoot file-system access problems and system boot problems Learn how to analyze crashes

There is a lot of misinformation and myth about the overhead and costs associated with C++. Now Stan Lippman, the acclaimed author of the C++ Primer, answers the call for a book that gives strategy guidelines for C++ programming. Inside the C++ Object Model explains where overhead costs reside and what they actually consist of. The author explains which parts vary by implementation and which are invariant. He tells how the various implementation models arose, points out areas where they are likely to evolve, and explains why they are what they are. This book is a must for C++ programmers who want to understand the semantic implications of the C++ object model and how the model affects their programs.

"Get the classic book for programming Windows in Microsoft Visual C++--now in its fifth edition and fully revised for Windows Vista. This must-have book covers programming at the API level with code samples in Visual C++"--Resource description p.

The first authoritative book on D, the next quantum leap beyond C++: Andrei Alexandrescu does for D what Kernighan/Ritchie did for C • •A comprehensive D tutorial and reference: covers all language essentials, and shows how to create effective D code in object-oriented, functional, generic, and other styles. •Prepares readers to successfully tackle programming tasks of virtually any size and complexity. •By Andrei Alexandrescu, a leader in the C++ community who has been intimately involved in D's design and development. The newly-emerging, highly-touted D programming language will bridge the gap between 'systems languages' such as C or C++, which favor efficient code generation, and 'productivity languages' such as Java, Python, or Ruby, which emphasize simplicity and fast design cycles. Combining the best of both approaches, D is a high-productivity programming language that generates highly-efficient machine code. It's easy-to-learn, easy-to-use, suitable for large, demanding applications, and draws on the latest advances in language theory, technology, and practice. D has been implemented for Windows, major Linux distributions, and Mac. In this book, one of D's leading designers and developers presents the entire language from start to finish. Both a tutorial and reference, Andrei Alexandrescu's The D Programming will do for D Language what the legendary Kernighan/Ritchie book did for C. Written for working programmers, it introduces all the essentials of the D language, and demonstrates how to use them to write clear, idiomatic D code in object-oriented, functional, generic, and other programming styles. Coverage includes: statements, functions, compound types, classes, templates, mixins, operator overloading, scaling applications, systems programming, the D Standard Library, and much more.

A Microsoft developer examines the problem of programming "bugs," showing how and where developers make mistakes along the development process and providing ways users can detect errors early. Original.

Delve inside the core SQL Server engine--and put that knowledge to work--with guidance from a team of well-known internals experts. Whether database developer, architect, or administrator, you'll gain the deep knowledge you need to exploit key architectural changes--and capture the product's full potential. Discover how SQL Server works behind the scenes, including: What happens internally when SQL Server builds, expands, shrinks, and moves databases How to use event tracking--from triggers to the Extended Events Engine Why the right indexes can drastically reduce your query execution time How to transcend normal row-size limits with new storage capabilities How the Query Optimizer operates Multiple techniques for troubleshooting problematic query plans When to force SQL Server to reuse a cached query plan--or create a new one What SQL Server checks internally when running DBCC How to choose among five isolation levels and two concurrency models when working with multiple concurrent users

This is the first, and still, the most comprehensive book to describe the sophisticated workings of the UNIX System V kernel--the internal algorithms, the structures that form the basis of the UNIX operating system, and their relationship to the programming interface. System programmers will gain a better understanding of how the kernel works and will be able to compare algorithms used in the UNIX system to algorithms used in other operating systems. Programmers on UNIX systems will gain a deeper understanding of how their programs interact with the system and can thereby code more efficient programs.

The puzzles and problems in Exceptional C++ not only entertain, they will help you hone your skills to become the sharpest C++ programmer you can be. Many of these problems are culled from the famous Guru of the Week feature of the Internet newsgroup comp.lang.c++, moderated, expanded and updated to conform to the official ISO/ANSI C++ Standard. Try your skills against the C++ masters and come away with the insight and experience to create more efficient, effective, robust, and portable C++ code.

Now in the 5th edition, the book gives you the interview preparation you need to get the top software developer jobs. This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book includes 150 programming interview questions and answers, as well as other advice.

Beginning iPhone 4 Development is here! The authors of the bestselling Beginning iPhone 3 Development are back, with the same excellent material completely updated for iOS 4 and written from the ground up using the latest version of Apple's Xcode 3. All source code has been updated to use the latest Xcode templates and current APIs, and all-new screenshots show Xcode 3 in action. Beginning iPhone 4 Development is a complete course in iOS 4 apps development. You’ll master techniques that work on iPhone, iPad, and iPod touch. We start with the basics, showing you how to download and install the tools you'll need, and how to create your first simple application. Next you’ll learn to integrate all the interface elements iOS users have come to know and love, such as buttons, switches, pickers, toolbars, and sliders. You’ll master a variety of design patterns, from the simplest single view to complex hierarchical drill-downs. The confusing art of table building will be demystified, and you’ll learn techniques to save and retrieve your data using SQLite, iPhone’s built-in database management system and Core Data, the standard for persistence that Apple brought to iOS with the release of SDK 3. And there’s much more! You’ll learn to draw using Quartz 2D and OpenGL ES, add multitouch gestural support (pinches and swipes) to your applications, and work with the camera, photo library, accelerometer, and built-in GPS. You’ll discover the fine points of application preferences and learn how to localize your apps for multiple languages. You'll also learn how to use the new concurrency APIs included in iOS 4, and make robust multithreaded applications using Grand Central Dispatch. The iPhone 4 update to the best-selling and most recommended book for Cocoa touch developers Written in an accessible, easy-to-follow style Full of useful tips and techniques to help you become an iOS pro NOTE: For iPhone 4S or iOS 5 apps development, please instead check out the next edition of this book, Beginning iOS 5 Development - now available. What you’ll learn Everything you need to know to develop your own best-selling iPhone and iPad apps Best practices for optimizing your code and delivering great user experiences How to create “universal” apps for both iPhone and iPad Who this book is for Anyone who wants to start developing for iPhone, iPad, and iPod touch. You can discover more about this book, download source code, and find support forums at the book's companion site, at www.iphonedevbook.com. Table of Contents Welcome to the Jungle Appeasing the Tiki Gods Handling Basic Interaction More User Interface Fun Autorotation and Autosizing Multiview Applications Tab Bars and Pickers Introduction to Table Views Navigation Controllers and Table Views iPad Considerations Application Settings and User Defaults Basic Data Persistence Grand Central Dispatch, Background Processing, and You Drawing with Quartz and OpenGL Taps, Touches, and Gestures Where Am I? Finding Your Way with Core Location Whee! Gyro and Accelerometer! iPhone Camera and Photo Library Application Localization Where to Next?

The ONLY complete, up-to-date guide to all aspects of Java performance • •The first one-stop guide to identifying, isolating, and fixing Java performance issues on multicore and multiprocessor processor platforms - from two of Sun's leading Java performance experts. •Includes crucial new insights into microbenchmarking found nowhere else. •Contains up-to-the-minute coverage of Java optimization, including migration of older applications. Given Java's ubiquity and indispensability, Java software performance is of crucial importance to millions of developers worldwide. The emergence of multi-core systems and the evolution of the Java platform give developers many new opportunities to optimize performance. Now, three of Sun's leading Java performance experts have written the first start-to-finish guide to optimizing Java performance in today's multi-core systems. Java Performance gives developers, designers, and architects all the information they need to leverage Java's performance and scalability abilities on any modern multicore or multiprocessor system. This book's end-to-end coverage addresses all these topics: monitoring and profiling; the effective use of garbage collection and other language features; adaptive and platform-specific tuning; techniques for maximizing scalability; and much more. The authors' extensive benchmarking coverage includes an indispensable introduction to effective microbenchmarks - including guidance on avoiding the common microbenchmarking mistakes that mislead developers into writing badlyperforming software. The book also contains a complete section on Java performance enhancement, including opportunities and challenges associated with migrating software from Java 1.4.2 and Java 5 - issues that more and more Java developers are now facing.

No book on software project management has been as influential and timeless as The Mythical Man-Month. Blending software engineering facts with thought-provoking personal opinions, author Fred Brooks offers insight into managing the development of complex computer systems. In this twentieth anniversary edition, the original text is accompanied by Fred Brooks' current advice and thoughts based on the newest developments in the computer industry. In four added chapters, including his 1986 article, No Silver Bullet, Brooks asks whether there is yet a silver bullet for software productivity and gives his latest opinions on the mythical man-month.

Whatever your programming language, whatever your platform, you probably tap into linker and loader functions all the time. But do you know how to use them to their greatest possible advantage? Only now, with the publication of Linkers & Loaders, is there an authoritative book devoted entirely to these deep-seated compile-time and run-time processes. The book begins with a detailed and comparative account of linking and loading that illustrates the differences among various compilers and operating systems. On top of this foundation, the author presents clear practical advice to help you create faster, cleaner code. You'll learn to avoid the pitfalls associated with Windows DLLs, take advantage of the space-saving, performance-improving techniques supported by many modern linkers, make the best use of the UNIX ELF library scheme, and much more. If you're serious about programming, you'll devour this unique guide to one of the field's least understood topics. Linkers & Loaders is also an ideal supplementary text for compiler and operating systems courses. *Includes a linker construction project written in Perl, with project files available for download. *Covers dynamic linking in Windows, UNIX, Linux, BeOS, and other operating systems. *Explains the Java linking model and how it figures in network applets and extensible Java code. *Helps you write more elegant and effective code, and build applications that compile, load, and run more efficiently.