Best of
Software

2008

Cracking the Coding Interview: 150 Programming Questions and Solutions


Gayle Laakmann McDowell - 2008
    This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book is over 500 pages and includes 150 programming interview questions and answers, as well as other advice.The full list of topics are as follows:The Interview ProcessThis section offers an overview on questions are selected and how you will be evaluated. What happens when you get a question wrong? When should you start preparing, and how? What language should you use? All these questions and more are answered.Behind the ScenesLearn what happens behind the scenes during your interview, how decisions really get made, who you interview with, and what they ask you. Companies covered include Google, Amazon, Yahoo, Microsoft, Apple and Facebook.Special SituationsThis section explains the process for experience candidates, Program Managers, Dev Managers, Testers / SDETs, and more. Learn what your interviewers are looking for and how much code you need to know.Before the InterviewIn order to ace the interview, you first need to get an interview. This section describes what a software engineer's resume should look like and what you should be doing well before your interview.Behavioral PreparationAlthough most of a software engineering interview will be technical, behavioral questions matter too. This section covers how to prepare for behavioral questions and how to give strong, structured responses.Technical Questions (+ 5 Algorithm Approaches)This section covers how to prepare for technical questions (without wasting your time) and teaches actionable ways to solve the trickiest algorithm problems. It also teaches you what exactly "good coding" is when it comes to an interview.150 Programming Questions and AnswersThis section forms the bulk of the book. Each section opens with a discussion of the core knowledge and strategies to tackle this type of question, diving into exactly how you break down and solve it. Topics covered include• Arrays and Strings• Linked Lists• Stacks and Queues• Trees and Graphs• Bit Manipulation• Brain Teasers• Mathematics and Probability• Object-Oriented Design• Recursion and Dynamic Programming• Sorting and Searching• Scalability and Memory Limits• Testing• C and C++• Java• Databases• Threads and LocksFor the widest degree of readability, the solutions are almost entirely written with Java (with the exception of C / C++ questions). A link is provided with the book so that you can download, compile, and play with the solutions yourself.Changes from the Fourth Edition: The fifth edition includes over 200 pages of new content, bringing the book from 300 pages to over 500 pages. Major revisions were done to almost every solution, including a number of alternate solutions added. The introductory chapters were massively expanded, as were the opening of each of the chapters under Technical Questions. In addition, 24 new questions were added.Cracking the Coding Interview, Fifth Edition is the most expansive, detailed guide on how to ace your software development / programming interviews.

C# in Depth


Jon Skeet - 2008
    With the many upgraded features, C# is more expressive than ever. However, an in depth understanding is required to get the most out of the language.C# in Depth, Second Edition is a thoroughly revised, up-to-date book that covers the new features of C# 4 as well as Code Contracts. In it, you'll see the subtleties of C# programming in action, learning how to work with high-value features that you'll be glad to have in your toolkit. The book helps readers avoid hidden pitfalls of C# programming by understanding "behind the scenes" issues.Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

JavaScript: The Good Parts


Douglas Crockford - 2008
    This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole--a subset you can use to create truly extensible and efficient code.Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose typing, dynamic objects, and an expressive object literal notation. Unfortunately, these good ideas are mixed in with bad and downright awful ideas, like a programming model based on global variables.When Java applets failed, JavaScript became the language of the Web by default, making its popularity almost completely independent of its qualities as a programming language. In JavaScript: The Good Parts, Crockford finally digs through the steaming pile of good intentions and blunders to give you a detailed look at all the genuinely elegant parts of JavaScript, including:SyntaxObjectsFunctionsInheritanceArraysRegular expressionsMethodsStyleBeautiful featuresThe real beauty? As you move ahead with the subset of JavaScript that this book presents, you'll also sidestep the need to unlearn all the bad parts. Of course, if you want to find out more about the bad parts and how to use them badly, simply consult any other JavaScript book.With JavaScript: The Good Parts, you'll discover a beautiful, elegant, lightweight and highly expressive language that lets you create effective code, whether you're managing object libraries or just trying to get Ajax to run fast. If you develop sites or applications for the Web, this book is an absolute must.

The Well-Grounded Rubyist


David A. Black - 2008
    It's a beautifully written tutorial that begins with the basic steps to get your first Ruby program up and running and goes on to explore sophisticated topics like callable objects, reflection, and threading. Whether the topic is simple or tough, the book's easy-to-follow examples and explanations will give you immediate confidence as you build your Ruby programming skills.The Well-Grounded Rubyist is a thoroughly revised and updated edition of the best-selling Ruby for Rails. In this new book, expert author David A. Black moves beyond Rails and presents a broader view of Ruby. It covers Ruby 1.9, and keeps the same sharp focus and clear writing that made Ruby for Rails stand out.Starting with the basics, The Well-Grounded Rubyist explains Ruby objects and their interactions from the ground up. In the middle chapters, the book turns to an examination of Ruby's built-in, core classes, showing the reader how to manipulate strings, numbers, arrays, ranges, hashes, sets, and more. Regular expressions get attention, as do file and other I/O operations.Along the way, the reader is introduced to numerous tools included in the standard Ruby distribution--tools like the task manager Rake and the interactive Ruby console-based interpreter Irb--that facilitate Ruby development and make it an integrated and pleasant experience.The book encompasses advanced topics, like the design of Ruby's class and module system, and the use of Ruby threads, taking even the new Rubyist deep into the language and giving every reader the foundations necessary to use, explore, and enjoy this unusually popular and versatile language.It's no wonder one reader commented: "The technical depth is just right to not distract beginners, yet detailed enough for more advanced readers."Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Programming in Scala


Martin Odersky - 2008
     Coauthored by the designer of the Scala language, this authoritative book will teach you, one step at a time, the Scala language and the ideas behind it. The book is carefully crafted to help you learn. The first few chapters will give you enough of the basics that you can already start using Scala for simple tasks. The entire book is organized so that each new concept builds on concepts that came before - a series of steps that promises to help you master the Scala language and the important ideas about programming that Scala embodies. A comprehensive tutorial and reference for Scala, this book covers the entire language and important libraries.

Secrets of the JavaScript Ninja


John Resig - 2008
    This completely revised edition shows you how to master key JavaScript concepts such as functions, closures, objects, prototypes, and promises. It covers APIs such as the DOM, events, and timers. You’ll discover best practice techniques such as testing, and cross-browser development, all taught from the perspective of skilled JavaScript practitioners.

High Performance MySQL: Optimization, Backups, and Replication


Baron Schwartz - 2008
    This guide also teaches you safe and practical ways to scale applications through replication, load balancing, high availability, and failover. Updated to reflect recent advances in MySQL and InnoDB performance, features, and tools, this third edition not only offers specific examples of how MySQL works, it also teaches you why this system works as it does, with illustrative stories and case studies that demonstrate MySQL’s principles in action. With this book, you’ll learn how to think in MySQL. Learn the effects of new features in MySQL 5.5, including stored procedures, partitioned databases, triggers, and views Implement improvements in replication, high availability, and clustering Achieve high performance when running MySQL in the cloud Optimize advanced querying features, such as full-text searches Take advantage of modern multi-core CPUs and solid-state disks Explore backup and recovery strategies—including new tools for hot online backups

Security Engineering: A Guide to Building Dependable Distributed Systems


Ross J. Anderson - 2008
    Spammers, virus writers, phishermen, money launderers, and spies now trade busily with each other in a lively online criminal economy and as they specialize, they get better. In this indispensable, fully updated guide, Ross Anderson reveals how to build systems that stay dependable whether faced with error or malice. Here's straight talk on critical topics such as technical engineering basics, types of attack, specialized protection mechanisms, security psychology, policy, and more.

Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction


Daniel Shiffman - 2008
    Based on the ubiquitous Java, it provides an alternative to daunting languages and expensive proprietary software.This book gives graphic designers, artists and illustrators of all stripes a jump start to working with processing by providing detailed information on the basic principles of programming with the language, followed by careful, step-by-step explanations of select advanced techniques.The author teaches computer graphics at NYU's Tisch School of the Arts, and his book has been developed with a supportive learning experience at its core. From algorithms and data mining to rendering and debugging, it teaches object-oriented programming from the ground up within the fascinating context of interactive visual media.Previously announced as Pixels, Patterns, and Processing

The Adobe Photoshop Layers Book


Matt Kloskowski - 2008
    From working with and managing multiple layers to using layers to enhance and retouch photos, this Photoshop guru covers it all.

Sams Teach Yourself C++ in One Hour a Day


Siddhartha Rao - 2008
    Master the fundamentals of C++ and object-oriented programming Understand how C++11 features help you write compact and efficient code using concepts such as lambda expressions, move constructors, and assignment operators Learn the Standard Template Library, including containers and algorithms used in most real-world C++ applications Test your knowledge and expertise using exercises at the end of every lesson Learn on your own time, at your own pace: No previous programming experience required Learn C++11, object-oriented programming, and analysis Write fast and powerful C++ programs, compile the source code with a gcc compiler, and create executable files Use the Standard Template Library's (STL) algorithms and containers to write feature-rich yet stable C++ applications Develop sophisticated programming techniques using lambda expressions, smart pointers, and move constructors Learn to expand your program's power with inheritance and polymorphism Master the features of C++ by learning from programming experts Learn C++11 features that allow you to program compact and high-performance C++ applications TABLE OF CONTENTSPART I: THE BASICS LESSON 1: Getting Started with C++11 LESSON 2: The Anatomy of a C++ Program LESSON 3: Using Variables, Declaring Constants LESSON 4: Managing Arrays and Strings LESSON 5: Working with Expressions, Statements, and Operators LESSON 6: Controlling Program Flow LESSON 7: Organizing Code with Functions LESSON 8: Pointers and References Explained PART II: FUNDAMENTALS OF OBJECT-ORIENTED C++ PROGRAMMING LESSON 9: Classes and Objects LESSON 10: Implementing Inheritance LESSON 11: Polymorphism LESSON 12: Operator Types and Operator Overloading LESSON 13: Casting Operators LESSON 14: An Introduction to Macros and Templates PART III: LEARNING THE STANDARD TEMPLATE LIBRARY (STL) LESSON 15: An Introduction to the Standard Template LibraryLESSON 16: The STL String ClassLESSON 17: STL Dynamic Array ClassesLESSON 18: STL list and forward_listLESSON 19: STL Set ClassesLESSON 20: STL Map ClassesPART IV: MORE STL LESSON 21: Understanding Function ObjectsLESSON 22: C++11 Lambda ExpressionsLESSON 23: STL AlgorithmsLESSON 24: Adaptive Containers: Stack and QueueLESSON 25: Working with Bit Flags Using STLPART V: ADVANCED C++ CONCEPTS LESSON 26: Understanding Smart PointersLESSON 27: Using Streams for Input and OutputLESSON 28: Exception HandlingLESSON 29: Going Forward APPENDIXES A: Working with Numbers: Binary and Hexadecimal B: C++ Keywords C: Operator Precedence D: Answers E: ASCII Codes

Perfect Software--And Other Illusions about Testing


Gerald M. Weinberg - 2008
    Editorial Reviews - Perfect Software

Pro ASP.NET MVC Framework


Steven Sanderson - 2008
    It introduced a radical high-productivity programming model that promotes cleaner code architecture, test-driven development, and powerful extensibility, combined with all the benefits of ASP.NET 3.5.An integral benefit of this book is that the core Model-View-Controller architectural concepts are not simply explained or discussed in isolation, but demonstrated in action. You'll work through an extended tutorial to create a working e-commerce web application that combines ASP.NET MVC with the latest C# 3.0 language features and unit-testing best practices. By gaining this invaluable, practical experience, you can discover MVCs strengths and weaknesses for yourself--and put your best learned theory into practice.

Refactoring SQL Applications


Stephane Faroult - 2008
    Refactoring SQL Applications provides a set of tested options for making code modifications to dramatically improve the way your database applications function. Backed by real-world examples, you'll find quick fixes for simple problems, in-depth answers for more complex situations, and complete solutions for applications with extensive problems. Learn to: Determine if and where you can expect performance gainsApply quick fixes, such as limiting calls to the database in stored functions and proceduresRefactor tasks, such as replacing application code by a stored procedure, or replacing iterative, procedural statements with sweeping SQL statementsRefactor flow by increasing parallelism and switching business-inducted processing from synchronous to asynchronousRefactor design using schema extensions, regular views, materialized views, partitioning, and moreCompare before and after versions of a program to ensure you get the same results once you make modificationsRefactoring SQL Applications teaches you to recognize and assess code that needs refactoring, and to understand the crucial link between refactoring and performance. If and when your application bogs down, this book will help you get it back up to speed.

Linq Unleashed: For C#


Paul Kimmel - 2008
    Using LINQ, developers can query objects, relational databases, XML documents, and ADO.NET datasets--and do it all directly from C# 3.0, leveraging the powerful capabilities of LINQ. This is a definitive guide to getting real-world results with LINQ, using C# 3.0 and Visual Studio 2008. In LINQ Unleashed, Microsoft MVP Paul Kimmel covers every facet of LINQ programming, showing how LINQ can help you dramatically improve your productivity and build more reliable, maintainable applications. Kimmel begins by reviewing the state-of-the-art C# programming techniques LINQ uses, including anonymous types, partial methods, and Lambda expressions. Next, using realistic examples and easy-to-adapt sample code, he details the most powerful new LINQ techniques for accessing objects, databases, and XML. You'll gain a deep and practical understanding of how LINQ works "under the hood"--and learn how to do everything from selecting data through integrating XML with other data models. Build efficient LINQ queries to .NET objects, SQL databases, and XML contentUtilize anonymous types to reduce design time, coding effort, and debugging timeAutomatically generate .NET state machines with the new yield return constructMaster LINQ query syntax, operators, extension methods, sorting, grouping, aggregate and set operations, and moreMake the most of select--and use it in the business layer of your n-tier applicationsQuery relational data stored in Microsoft SQL ServerUse nullable types to eliminate unnecessary database access plumbing codeUse LINQ with ADO.NET 3.0 and Microsoft's powerful new Entity FrameworkExtract XML data without the hassles or complexity of XPathAutomatically construct XML from CSV files and other non-XML dataQuery Active Directory by extending LINQ Introduction 1 Part I Getting Ready for LINQ 1 Programming with Anonymous Types 5 2 Using Compound Type Initialization 29 3 Defining Extension and Partial Methods 61 4 yield return Using .NET's State Machine Generator 85 5 Understanding Lambda Expressions and Closures 97 6 Using Standard Query Operators 121 Part II LINQ for Objects 7 Sorting and Grouping Queries 137 8 Using Aggregate Operations 151 9 Performing Set Operations 167 10 Mastering Select and SelectMany 185 11 Joining Query Results 211 12 Querying Outlook and Active Directory 239 Part III LINQ for Data 13 Querying Relational Data with LINQ 265 14 Creating Better Entities and Mapping Inheritance and Aggregation 289 15 Joining Database Tables with LINQ Queries 309 16 Updating Anonymous Relational Data 349 17 Introducing ADO.NET 3.0 and the Entity Framework 383 Part IV LINQ for XML 18 Extracting Data from XML 415 19 Comparing LINQ to XML with Other XML Technologies 437 20 Constructing XML from Non-XML Data 453 21 Emitting XML with the XmlWriter 463 22 Combining XML with Other Data Models 469 23 LINQ to XSD Supports Typed XML Programming 485 Index

The Data Model Resource Book: Volume 3: Universal Patterns for Data Modeling


Len Silverston - 2008
    These patterns can be used to considerably reduce modeling time and cost, to jump-start data modeling efforts, as standards and guidelines to increase data model consistency and quality, and as an objective source against which an enterprise can evaluate data models.

Professional SharePoint 2007 Web Content Management Development: Building Publishing Sites with Office SharePoint Server 2007


Andrew Connell - 2008
    It does not cover administrative topics in any great detail, only where absolutely necessary. For the most part, no two chapters are dependent upon each other, so each chapter can be used as a reference independently of the others. Readers need not have any development experience with SharePoint, but they should have some experience with and a working knowledge of ASP.NET 2.0 development practices and topics. Of course, it is beneficial if the reader does have at least a working knowledge of what SharePoint is all about.This book covers MOSS 2007 WCM Publishing sites. You will find some chapters that seem to cover general WSS 3.0 topics, but everything is treated in the context of a Publishing site. While the chapters are arranged in a logical order, it is not necessary to read the book from cover to cover in a linear fashion. The following is a brief description of each chapter:Chapter 1, "Embarking on Web Content Management Projects"--This chapter explains what this book is all about, who the target audience is, and who will benefit most from the book. It also details what the reader needs in terms of a local development environment in order to implement the solutions. In addition, each of the subsequent chapters is explained very briefly to provide an overview and clarify how each chapter fits in.Chapter 2, "Windows SharePoint Services 3.0 Development Primer"--This chapter covers the fundamentals of WSS, including definitions of terms such as farm, Web application, site collection, site, list, and document library, and the general architecture of WSS. Some basic object model techniques are demonstrated in this chapter.Chapter 3, "Overview of Office SharePoint Server 2007 and Web Content Management"--This chapter briefly explains each of the various components that make up MOSS. In addition, while the book is development-focused, the "ABCs" of content-centric Internet sites is covered.Chapter 4, "SharePoint Features and the Solution Framework"--Both new to WSS 3.0, the SharePoint Feature and solution frameworks are covered in great detail in this chapter, as well as a process for automatically creating WSS solution packages on every project build.Chapter 5, "Minimal Publishing Site Definition"--Many users create new WCM sites by using the Publishing Portal template. Unfortunately, this adds quite a bit of unnecessary content to the site. This chapter picks apart the Publishing Portal template and Publishing Features and demonstrates how to create a minimal Publishing Portal template.Chapter 6, "Site Columns, Content Types, and Lists"--Three core components to every WSS 3.0 site--site columns, content types, and lists--are covered in this chapter.Chapter 7, "Master Pages and Page Layouts"--This chapter covers everything you need to know about creating, editing, and leveraging master pages and page layouts within Publishing sites.Chapter 8, "Navigation"--While WSS 3.0's navigation is founded on the ASP.NET 2.0 navigation provider framework, there are a few SharePoint-specific topics, which are covered in this chapter.Chapter 9, "Accessibility"--If it's not already, accessibility is becoming an increasingly important topic with regard to Web sites. This chapter explains the different levels of accessibility and discusses some techniques and tools developers can leverage to create sites for users with disabilities.Chapter 10, "Field Types and Field Controls"--Although it's a WSS 3.0 concept, field types and field controls are covered in this chapter in the context of a Publishing site. This includes creating custom field types with custom values types and controls, as well as custom field controls that leverage existing field types.Chapter 11, "Web Parts"--This chapter covers creating custom Web Parts and some advanced topics related to custom Web Part development, such as Editor Parts, customizing the Verbs menu, and leveraging asynchronous programming techniques. This chapter also covers the three Publishing-specific Web Parts and some advanced customization and styling options of the Content Query Web Part.Chapter 12, "Leveraging Workflow"--The Windows Workflow Foundation, part of the .NET Framework 3.0, is fully leveraged by WSS 3.0 and MOSS 2007. This chapter explains how to create custom workflows using Visual Studio and leveraging InfoPath Web-rendered forms.Chapter 13, "Search"--Every content-centric site needs a robust search offering. This chapter explains the different components of MOSS search, as well as many customization opportunities such as modifying the search results.Chapter 14, "Authoring Experience Extensibility"--While the authoring experience in Publishing sites is quite robust, at times developers need to extend this offering for specific content owner requirements. This chapter covers this, including customizing the Page Editing Toolbar and the Rich Text Editor HTML field control.Chapter 15, "Authentication and Authorization"--This chapter covers everything you need to know about the ASP.NET 2.0 authentication provider model SharePoint fully leverages.Chapter 16, "Implementing Sites with Multiple Languages and Devices"--This chapter covers the topic of maintaining sites that need to offer their content in multiple languages, as well as developing custom Web Parts that are multilingual aware.Chapter 17, "ContentDeployment"--A common request for larger content-centric Web sites is to have an internal authoring environment for content and then push the changed content out to a destination site, either in an organization's DMZ or at a co-location facility. This chapter describes the content deployment capability in MOSS designed to handle such business requirements.Chapter 18, "Offline Authoring with Document Converters"--While MOSS 2007 Publishing sites offer a very robust Web-based content authoring experience, SharePoint provides a way to author content offline using tools such as Microsoft Word or InfoPath. This chapter explains what you need to know about configuring the document converter infrastructure and creating custom document converters.Chapter 19, "Performance Tips, Tricks, and Traps"--Internet-facing content-centric sites built on the SharePoint platform need to be designed and developed with performance in mind. This chapter provides numerous guidelines and tips that developers can leverage to create the most performant sites.Chapter 20, "Incorporating ASP.NET 2.0 Applications"--SharePoint (both WSS 3.0 and MOSS 2007) is not an end-to-end solution but an application platform. While it provides a significant amount of functionality out of the box, developers can leverage this platform in building custom applications. This chapter discusses some techniques that can be used for such tasks.One approach book takes is not to dwell on the more common minutia of creating projects in Visual Studio, or the huge topics of core Windows SharePoint Services (WSS) 3.0 development or SharePoint administration. These topics warrant their own books, and throughout this book you will find recommended resources for these topics. This book does cover some subjects that have their roots in WSS, but they are presented within the context of a Publishing site.Finally, this book approaches every topic of implementation from the perspective of SharePoint customization and SharePoint development. While one implementation may seem to be better than the other, it takes no position on either, as the goal is to simply educate readers about the advantages and disadvantages of each. These concepts are defined in Chapter 2, "Windows SharePoint Services 3.0 Development Primer."This book is also available as part of the 4-book SharePoint 2007 Wrox Box (ISBN: 0470431946) with these 4 books:Professional SharePoint 2007 Development (ISBN: 0470117567) Real World SharePoint 2007 (ISBN: 0470168358) Professional Microsoft SharePoint 2007 Design (ISBN: 047028580X) Professional SharePoint 2007 Web Content Management Development (ISBN: 0470224754)

Professional ASP.NET Design Patterns


Scott Millett - 2008
    Design patterns are time-tested solutions to recurring problems, letting the designer build programs on solutions that have already proved effective Provides developers with more than a dozen ASP.NET examples showing standard design patterns and how using them helpsbuild a richer understanding of ASP.NET architecture, as well as better ASP.NET applications Builds a solid understanding of ASP.NET architecture that can be used over and over again in many projects Covers ASP.NET code to implement many standard patterns including Model-View-Controller (MVC), ETL, Master-Master Snapshot, Master-Slave-Snapshot, Facade, Singleton, Factory, Single Access Point, Roles, Limited View, observer, page controller, common communication patterns, and more

Git Internals


Scott Chacon - 2008
    In this PDF, Scott Chacon goes even further to explain the distributed filesystem behind the popular source code management system.If you’re tired of terse man pages or academic white papers, you’ll enjoy more than four dozen colorful diagrams that clearly explain the complicated inner workings of Git.The first 50 pages explain the storage system that powers Git, and an additional 60 pages go into detail about using Git on a day to day basis. You’ll learn not only how to use the basic commands, but will also learn different strategies for working via either a centralized or distributed collaboration model. This is a great companion to the existing PeepCode screencast or a useful book in its own right.As a bonus, several short screencasts are included which show how to use the basic Git commands.The Git source code control system continues to win over developers who are impressed with the speed and flexibility of the distributed workflow. Go beyond the basics with this PDF from PeepCode.

Concurrent Programming on Windows


Joe Duffy - 2008
    . . . This places an emphasis on understanding not only the platform's capabilities but also emerging best practices. Joe does a great job interspersing best practices alongside theory throughout his book." - From the Foreword by Craig Mundie, Chief Research and Strategy Officer, Microsoft Corporation Author Joe Duffy has risen to the challenge of explaining how to write software that takes full advantage of concurrency and hardware parallelism. In Concurrent Programming on Windows, he explains how to design, implement, and maintain large-scale concurrent programs, primarily using C# and C++ for Windows. Duffy aims to give application, system, and library developers the tools and techniques needed to write efficient, safe code for multicore processors. This is important not only for the kinds of problems where concurrency is inherent and easily exploitable--such as server applications, compute-intensive image manipulation, financial analysis, simulations, and AI algorithms--but also for problems that can be speeded up using parallelism but require more effort--such as math libraries, sort routines, report generation, XML manipulation, and stream processing algorithms. Concurrent Programming on Windows has four major sections: The first introduces concurrency at a high level, followed by a section that focuses on the fundamental platform features, inner workings, and API details. Next, there is a section that describes common patterns, best practices, algorithms, and data structures that emerge while writing concurrent software. The final section covers many of the common system-wide architectural and process concerns of concurrent programming. This is the only book you'll need in order to learn the best practices and common patterns for programming with concurrency on Windows and .NET.

Beginning C# 3.0: An Introduction to Object Oriented Programming


Jack Purdum - 2008
    If you have no prior programming experience but want a thorough, easy-to-understand introduction to C# and Object Oriented Programming, this book is an ideal guide. Using the tutorials and hands-on coding examples, you can discover tried and true tricks of the trade, understand design concepts, employ debugging aids, and design and write C# programs that are functional and that embody safe programming practices.

Build Your Own ASP.Net 3.5 Website Using C# & VB


Zak Ruvalcaba - 2008
    In addition to a massively improved performance, it also provides much more to aid developers' productivity, including better AJAX integration and new ListView and DataPager controls. The third edition of this book reflects all these changes, as well as Visual Studio 2008.Readers liked the original books for their comprehensive coverage, liberal code samples, and the practicality of developing an entire intranet application using freely available tools and software.

More Effective C#: 50 Specific Ways to Improve Your C#


Bill Wagner - 2008
    If you are serious about developing with the C# language, you need this book." -Bill Craun, Principal Consultant, Ambassador Solutions, Inc. "More Effective C# is an opportunity to work beside Bill Wagner. Bill leverages his knowledge of C# and distills his expertise down to some very real advice about programming and designing applications that every serious Visual C# user should know. More Effective C# is one of those rare books that doesn't just regurgitate syntax, but teaches you how to use the C# language." -Peter Ritchie, Microsoft MVP: Visual C# "More Effective C# is a great follow-up to Bill Wagner's previous book. The extensive C# 3.0 and LINQ coverage is extremely timely!" -Tomas Restrepo, Microsoft MVP: Visual C++, .NET, and Biztalk Server "As one of the current designers of C#, it is rare that I learn something new about the language by reading a book. More Effective C# is a notable exception. Gently blending concrete code and deep insights, Bill Wagner frequently makes me look at C# in a fresh light-one that really makes it shine. More Effective C# is at the surface a collection of very useful guidelines. Look again. As you read through it, you'll find that you acquire more than just the individual pieces of advice; gradually you'll pick up on an approach to programming in C# that is thoughtful, beautiful, and deeply pleasant. While you can make your way willy-nilly through the individual guidelines, I do recommend reading the whole book-or at least not skipping over the chapter introductions before you dive into specific nuggets of advice. There's perspective and insight to be found there that in itself can be an important guide and inspiration for your future adventures in C#." -Mads Torgersen, Program Manager, Visual C#, Microsoft "Bill Wagner has written an excellent book outlining the best practices for developers who work with the C# language. By authoring More Effective C#, he has again established himself as one of the most important voices in the C# community. Many of us already know how to use C#. What we need is advice on how to hone our skills so that we can become wiser programmers. There is no more sophisticated source of information on how to become a first-class C# developer than Bill Wagner's book. Bill is intelligent, thoughtful, experienced, and skillful. By applying the lessons from this book to your own code, you will find many ways to polish and improve the work that you produce." -Charlie Calvert, Community Program Manager, Visual C#, Microsoft In More Effective C#, Microsoft C# MVP and Regional Director Bill Wagner introduces fifty brand-new ways to write more efficient and more robust software. This all-new book follows the same format as Wagner's best-selling Effective C# (Addison-Wesley, 2005), providing clear, practical explanations, expert tips, and plenty of realistic code examples. Wagner shows how to make the most of powerful innovations built into Microsoft's new C# 3.0 and .NET Framework 3.5, as well as advanced C# language capabilities not covered in his previous book. Drawing on his unsurpassed C# experience, the author reveals new best practices for working with LINQ, generics, metaprogramming, and many other features. He also uncovers practices that compromise performance or reliability and shows exactly how to avoid them. More Effective C# shows how to Use generics to express your design intent more effectively Master advanced generics techniques, such as constraints, method constraints, and generic specialization Use the multithreaded techniques you'll need to work with the .NET framework every day Express modern design idioms using the rich palette of C# language features Successfully mix object oriented and functional programming constructs Create composable interfaces and avoid confusion in public interfaces Use extension methods to separate contracts from implementation Program successfully with C# closures and anonymous types Write more effective LINQ queries Make the most of LINQ Lazy Evaluation Queries and Lambda Expressions Distinguish and convert between delegates and expression trees Efficiently utilize nullable types and partial classes Use implicit properties for mutable, nonserializable data You're already a successful C# programmer-this book can help you become an outstanding one.

Architecting Software Intensive Systems: A Practitioners Guide


Anthony J. Lattanze - 2008
    Early design decisions establish the structures necessary for achieving broad systemic properties. However, today's organizations lack synergy between software their development processes and technological methodologies. Providing a thorough treatment of the latest theory and best practices, Architecting Software Intensive Systems: A Practitioner's Guide explains:How and when to design architectures How to weave architecture design processes into existing development processes What to do with architecture design artifacts once createdThe first section establishes key concepts in architectural design for software intensive systems, including architectural drivers, structures, and fundamental guidance for architectural design. The book goes on to describe the industry tested Architecture Centric Design Method. Each stage of the method is explained and the book provides all of the supporting templates and checklists. The last section discusses practical matters, including how to adopt disciplined architectural design practices into existing organizational development processes.With the principled understanding of design provided by this book, architects can temper their visceral instinct to react and be better prepared to address a broader range of design problems regardless of business context or their domain experience.

Home Networking All-In-One Desk Reference for Dummies


Eric Geier - 2008
    Maybe you've gone so far as to start setting up a network and given up in frustration. Well, now you can relax. Home Networking All-In-One Desk Reference For Dummies has come to the rescue! A network will make your life easier, and Home Networking All-In-One Desk Reference For Dummies makes it easier to create one. It shows you how to choose the right hardware, add user accounts, get different operating systems to work together, secure your network, exchange files, add wireless devices, and even use Wi-Fi out in public. Seven individual, self-contained minibooks cover:What a network will do for you, including a low-tech explanation of how it works Choosing a network type that will work best for your needs, and planning what equipment you'll need Installing and configuring your computers and networking gear Upgrading your equipment with the manufacturer's updates The ins and outs of using particular versions of operating systems -- Windows, Mac, and Linux -- with your network Step-by-step directions on connecting to networks, sharing files and printers, checking connection status, and much more Discovering networking accessories and gadgets to get the most out of your network Finding and using Wi-Fi hotspots, plus setting up your own You'll even find troubleshooting tips to help find and fix common problems. Home Networking All-In-One Desk Reference For Dummies will be your personal network assistant!

Photoshop CS4: The Missing Manual


Lesa Snider - 2008
    But with all its fantastic new features and options, the CS4 version can bewilder even the most seasoned professional. That's where Photoshop CS4: The Missing Manual comes in: packed with tips, tricks, and lots of practical advice, this visually rich four-color guidebook teaches you everything you need to know to edit photos and create beautiful documents in Photoshop. Whether you're an absolute beginner or a power user ready to try some advanced techniques, author and graphics pro Lesa Snider King offers crystal-clear, jargon-free instructions to help you take advantage of these powerful tools -- not only how they work, but when you should use them. You'll quickly get up to speed on new CS4 features such as:Photoshop's completely revamped workspace Smoother image display and quick zoom, including the new pixel grid view New Masks and Adjustments panels The Vibrance adjustment layer Hand-painting adjustments and using graduated filters in Camera Raw Enhanced Adobe Bridge And much more. You'll also find out which features work well, and which aren't worth your time. Written with the clarity, humor, and objective scrutiny that are hallmarks of the Missing Manual series, Photoshop CS4: The Missing Manual is the friendly, thorough resource you need. Why settle for anything less? "Lesa did a great job on the book, and in my mind, it is the new Photoshop Bible." -- Scott Kelby, Photoshop Insider

Enterprise Software without the BS


Yakov Fain - 2008
    Why some people are more successful than others.In which ways are some people a little “better” than others?Why people fail job interviews?Will IT outsourcing hurt your career?What’s a reasonable salary for a person with YOUR skills living in YOUR geographical area?Are there underpaid or overpaid people?How often should you change employers?Do you even want to have an employer or would you rather work as an IT contractor?Do you want your child to be a programmer?How to publish your book?Me coming to America.What’s one of the main motivations of innovations in the corporate world?

Photoshop Lightroom 2 for Dummies


Rob Sylvan - 2008
    You'll find out all about the Lightroom modules and their functions while understanding the role of the Lightroom catalog, how to care for it, and work with its functions. You will learn everything about working with digital photographs, from distinguishing among various file formats to managing and importing photos. You'll find out how to view, find, organize and develop photos in the library and utilize the digital darkroom. You'll even find out how to work with external editors. After reading this book, you will know how to:Install and get started with Lightroom Recognize the role and function of the Lightroom catalog Manage and save files View, find, organize, and develop photos in the library Unleash your creativity with photo editing options Share and export files to share them with friends and family Create copies, slideshows, and web galleries Complete with lists of ten resources, ten common problems and solutions, and ten favorite tips and tricks, Photoshop Lightroom 2 For Dummies is your one-stop guide to setting up, working with, and making the most of Photoshop Lightroom for all your digital photography needs.

High Performance MySQL: Optimization, Backups, Replication, and More


Baron Schwartz - 2008
    Written by noted experts with years of real-world experience building very large systems, this book covers every aspect of MySQL performance in detail, and focuses on robustness, security, and data integrity.High Performance MySQL teaches you advanced techniques in depth so you can bring out MySQL's full power. Learn how to design schemas, indexes, queries and advanced MySQL features for maximum performance, and get detailed guidance for tuning your MySQL server, operating system, and hardware to their fullest potential. You'll also learn practical, safe, high-performance ways to scale your applications with replication, load balancing, high availability, and failover. This second edition is completely revised and greatly expanded, with deeper coverage in all areas. Major additions include: Emphasis throughout on both performance and reliability Thorough coverage of storage engines, including in-depth tuning and optimizations for the InnoDB storage engine Effects of new features in MySQL 5.0 and 5.1, including stored procedures, partitioned databases, triggers, and views A detailed discussion on how to build very large, highly scalable systems with MySQL New options for backups and replication Optimization of advanced querying features, such as full-text searches Four new appendices The book also includes chapters on benchmarking, profiling, backups, security, and tools and techniques to help you measure, monitor, and manage your MySQL installations.

Windows Server 2008 All-In-One Desk Reference for Dummies


John Paul Mueller - 2008
    Services best practices and the cool IIS Web server are covered too. The eight powerful quick-reference manuals in this one-stop guide cover all the information you need to perform common administrative tasks with Windows Server 2008. You'll find sure-handed guidance and considerable detail on everything from installation to figuring out why a user can't gain access to resources on the server. You also see procedures for all common tasks -- everything from setting up Internet Connection Sharing (ICS) to promoting your server to a domain controller. Discover how to:Use Windows Server virtualization Perform a complete PC restore Configure server roles and features Measure system performance Add network clients and protocols Keep your server operating at peak performance Monitor network interactions with others Work with Active Directory RMS Use best practices for implementing security Implement scripts and cmdlets with PowerShell Uncloak viruses masquerading as services Windows Server 2008 contains so many features that it's sometimes hard to know which one to install. No problem! Just flip open Windows Server 2008 All-In-One Desk Reference For Dummies and find your answer in a flash!

Beginning OpenOffice 3: From Novice to Professional


Andy Channelle - 2008
    You will arm yourself with OpenOffice.org 3.0 tools, from creating wiki docs to automating complex design steps. OpenOffice has been downloaded almost 100 million times, and this is the book that explains why.You learn how to adopt OpenOffice 3.0 innovations. You see how to work across Windows, OS X, Google, and the Web, no matter what the format. Mail merges and wiki docs will never seem so simple.

Pro ASP.NET 3.5 in VB 2008: Includes Silverlight 2


Matthew MacDonald - 2008
    Pro ASP.NET 3.5 in VB 2008: Includes Silverlight 2 raises the bar for high?quality, practical advice on learning and deploying Microsoft's dynamic web solution.Updated with everything you need to integrate Silverlight 2.0 into your ASP.NET applications, this book teaches you all about Silverlight's exciting features so that your ASP projects can be rich in visual flair and compelling to the user. You?ll learn how to use the new levels of abstraction in the Entity Framework to design elegant, powerful application architectures.Seasoned .NET professionals Matthew MacDonald, Mario Szpuszta, and Vidya Vrat Agarwal explain how you can get the most from these groundbreaking technologies. They cover ASP.NET 3.5 as a whole, illustrating both the newer features and the functionality carried over from previous versions of ASP. This book will give you the knowledge you need to code real ASP.NET 3.5 applications in the best possible style.

Changing Software Development: Learning to Become Agile


Allan Kelly - 2008
    An underlying belief is that change is learning and learning creates knowledge. By blending the theory of knowledge management, developers and managers will gain the tools to enhance learning and change to accommodate new innovative approaches such as agile and lean computing. Changing Software Development is peppered with practical advice and case studies to explain how and why knowledge, learning and change are important in the development process. Today, managers are pre-occupied with knowledge management, organization learning and change management; while software developers are often ignorant of the bigger issues embedded in their work. This innovative book bridges this divide by linking the software world of technology and processes to the business world of knowledge, learning and change.

Django 1.0 Template Development


Scott Newman - 2008
    Getting the most out of its template system allows programmers and designers to easily and efficiently output their content in a flexible, extendable, and maintainable manner. This book will help you to master the Django template system. Built-in template tags and filters are explained with examples and usage notes, as well as information on building custom tags and filters to extend the system for your needs. You will learn to use inheritance to create modular templates that are easy to maintain. You will learn how to serve multiple templates from within the same Django project, with an example of how to serve different templates for a mobile version of your site without having to change any code in your views. Pagination, internationalization, caching, and customization of the automatic admin application are also covered. What you will learn from this book? Meet the Django template system and understand how it works Understand URL configurations, views, and generic views and streamline your project's development Master built-in tags and filters to use them efficiently in your project Split your output into manageable pieces using pagination libraries Extend your templates through inheritance Customize the look of the admin interface as you like to administer your website with ease Create and deploy custom tags and filters according to your needs Internationalize your templates to present your site in multiple languages from the same template files Improve your site's performance by using the cache framework Serve multiple sets of templates from the same project easily Approach This book is designed for readers who learn by doing and employs many examples and screenshots to let the reader dig in and start coding. This book isn't designed to be a reference; instead it has a practical, example-driven approach that teaches you by following along with the examples in the chapters. When you have completed this book, you will fully understand how the template system works, how to extend it when you have specialized needs, and how to optimize the performance and usability of your content. Who this book is written for? This book is for web developers and template authors who want to fully understand and utilize the Django template system. The reader should have completed the introductory tutorials on the Django project's website and some experience with the framework will be very helpful. Basic knowledge of Python and HTML is assumed.

SolidWorks Surfacing and Complex Shape Modeling Bible


Matt Lombard - 2008
    You'll learn how to apply concepts, utilize tools, and combine techniques and strategies in hands-on tutorials. This Bible covers the range from sketching splines and shelling to modeling blends and decorative features. Complete with professional tips and real-world examples, this inclusive guide enables you to coax more out of SolidWorks surfacing tools.

VSTO For Dummies


Bill Sempf - 2008
    This book shows developers step by step how to work with VSTO tools to create real-world applications for Word, Outlook, and Excel.VSTO enables developers to easily create custom applications for Microsoft OfficeIn the fun and friendly For Dummies style, this book explains how to build effective user interfaces and integrate VSTO applications with Sharepoint and other Microsoft server productsAll code is presented in Visual Basic, making the book accessible to both VB and VBA programmers"VSTO For Dummies" will get you up and running with this exciting technology quickly and easily.

Office & SharePoint 2007 User's Guide: Integrating SharePoint with Excel, Outlook, Access & Word: Integrating Sharepoint with Excel, Outlook, Access and Word (Expert's Voice)


Michael P. Antonovich - 2008
    Full description