Best of
Software

2011

Game Programming Patterns


Robert Nystrom - 2011
    Commercial game development expert Robert Nystrom presents an array of general solutions to problems encountered in game development. For example, you'll learn how double-buffering enables a player to perceive smooth and realistic motion, and how the service locator pattern can help you provide access to services such as sound without coupling your code to any particular sound driver or sound hardware. Games have much in common with other software, but also a number of unique constraints. Some of the patterns in this book are well-known in other domains of software development. Other of the patterns are unique to gaming. In either case, Robert Nystrom bridges from the ivory tower world of software architecture to the in-the-trenches reality of hardcore game programming. You'll learn the patterns and the general problems that they solve. You'll come away able to apply powerful and reusable architectural solutions that enable you to produce higher quality games with less effort than before. Applies classic design patterns to game programming. Introduces new patterns specific to game programming. Brings abstract software architecture down to Earth with approachable writing and an emphasis on simple code that shows each pattern in practice. What you'll learn Overcome architectural challenges unique to game programming Apply lessons from the larger software world to games. Tie different parts of a game (graphics, sound, AI) into a cohesive whole. Create elegant and maintainable architecture. Achieve good, low-level performance. Gain insight into professional, game development. Who this book is forGame Programming Patterns is aimed at professional game programmers who, while successful in shipping games, are frustrated at how hard it sometimes is to add and modify features when a game is under development. Game Programming Patterns shows how to apply modern software practices to the problem of game development while still maintaining the blazing-fast performance demanded by hard-core gamers. Game Programming Patterns also appeals to those learning about game programming in their spare time. Hobbyists and aspiring professionals alike will find much to learn in this book about pathfinding, collision detection, and other game-programming problem domains.

The Clean Coder: A Code of Conduct for Professional Programmers


Robert C. Martin - 2011
    They treat it as a craft. They are professionals. In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice-about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act. Readers will learn What it means to behave as a true software craftsman How to deal with conflict, tight schedules, and unreasonable managers How to get into the flow of coding, and get past writer's block How to handle unrelenting pressure and avoid burnout How to combine enduring attitudes with new development paradigms How to manage your time, and avoid blind alleys, marshes, bogs, and swamps How to foster environments where programmers and teams can thrive When to say "No"-and how to say it When to say "Yes"-and what yes really means Great software is something to marvel at: powerful, elegant, functional, a pleasure to work with as both a developer and as a user. Great software isn't written by machines. It is written by professionals with an unshakable commitment to craftsmanship. The Clean Coder will help you become one of them-and earn the pride and fulfillment that they alone possess.

Eloquent Ruby


Russ Olsen - 2011
    In Eloquent Ruby, Russ Olsen helps you write Ruby like true Rubyists do-so you can leverage its immense, surprising power. Olsen draws on years of experience internalizing the Ruby culture and teaching Ruby to other programmers. He guides you to the "Ah Ha!" moments when it suddenly becomes clear why Ruby works the way it does, and how you can take advantage of this language's elegance and expressiveness. Eloquent Ruby starts small, answering tactical questions focused on a single statement, method, test, or bug. You'll learn how to write code that actually looks like Ruby (not Java or C#); why Ruby has so many control structures; how to use strings, expressions, and symbols; and what dynamic typing is really good for. Next, the book addresses bigger questions related to building methods and classes. You'll discover why Ruby classes contain so many tiny methods, when to use operator overloading, and when to avoid it. Olsen explains how to write Ruby code that writes its own code-and why you'll want to. He concludes with powerful project-level features and techniques ranging from gems to Domain Specific Languages. A part of the renowned Addison-Wesley Professional Ruby Series, Eloquent Ruby will help you "put on your Ruby-colored glasses" and get results that make you a true believer.

Dependency Injection in .NET


Mark Seemann - 2011
    Instead of hard-coding dependencies, such as specifying a database driver, you inject a list of services that a component may need. The services are then connected by a third party. This technique enables you to better manage future changes and other complexity in your software.About this BookDependency Injection in .NET introduces DI and provides a practical guide for applying it in .NET applications. The book presents the core patterns in plain C#, so you'll fully understand how DI works. Then you'll learn to integrate DI with standard Microsoft technologies like ASP.NET MVC, and to use DI frameworks like StructureMap, Castle Windsor, and Unity. By the end of the book, you'll be comfortable applying this powerful technique in your everyday .NET development.This book is written for C# developers. No previous experience with DI or DI frameworks is required. 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. Winner of 2013 Jolt Awards: The Best Books—one of five notable books every serious programmer should read.What's InsideMany C#-based examplesA catalog of DI patterns and anti-patternsUsing both Microsoft and open source DI frameworksTabel of ContentsPART 1 PUTTING DEPENDENCY INJECTION ON THE MAPA Dependency Injection tasting menuA comprehensive exampleDI ContainersPART 2 DI CATALOGDI patternsDI anti-patternsDI refactoringsPART 3 DIY DIObject CompositionObject LifetimeInterceptionPART 4 DI CONTAINERSCastle WindsorStructureMapSpring.NETAutofacUnityMEF

The Art of Computer Programming, Volumes 1-4a Boxed Set


Donald Ervin Knuth - 2011
    Scientists have marveled at the beauty and elegance of his analysis, while ordinary programmers have successfully applied his "cookbook" solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. "I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up.""--"Charles Long Primarily written as a reference, some people have nevertheless found it possible and interesting to read each volume from beginning to end. A programmer in China even compared the experience to reading a poem. "If you think you're a really good programmer... read Knuth's] "Art of Computer Programming.".. You should definitely send me a resume if you can read the whole thing.""--"Bill Gates Whatever your background, if you need to do any serious computer programming, you will find your own good reason to make each volume in this series a readily accessible part of your scholarly or professional library. "It's always a pleasure when a problem is hard enough that you have to get the Knuths off the shelf. I find that merely opening one has a very useful terrorizing effect on computers.""--"Jonathan LaventholIn describing the new fourth volume, one reviewer listed the qualities that distinguish all of Knuth's work. In sum: ] "detailed coverage of the basics, illustrated with well-chosen examples; occasional forays into more esoteric topics and problems at the frontiers of research; impeccable writing peppered with occasional bits of humor; extensive collections of exercises, all with solutions or helpful hints; a careful attention to history; implementations of many of the algorithms in his classic step-by-step form."--Frank RuskeyThese four books comprise what easily could be the most important set of information on any serious programmer's bookshelf.

Lean from the Trenches


Henrik Kniberg - 2011
    Find out how the Swedish police combined XP, Scrum, and Kanban in a 60-person project. From start to finish, you'll see how to deliver a successful product using Lean principles. We start with an organization in desperate need of a new way of doing things and finish with a group of sixty, all working in sync to develop a scalable, complex system. You'll walk through the project step by step, from customer engagement, to the daily "cocktail party," version control, bug tracking, and release. In this honest look at what works--and what doesn't--you'll find out how to: Make quality everyone's business, not just the testers. Keep everyone moving in the same direction without micromanagement. Use simple and powerful metrics to aid in planning and process improvement. Balance between low-level feature focus and high-level system focus. You'll be ready to jump into the trenches and streamline your own development process.ContentsForewordPrefacePART I: HOW WE WORK1. About the Project1.1 Timeline 51.2 How We Sliced the Elephant 61.3 How We Involved the Customer 72. Structuring the Teams3. Attending the Daily Cocktail Party3.1 First Tier: Feature Team Daily Stand-up3.2 Second Tier: Sync Meetings per Specialty3.3 Third Tier: Project Sync Meeting4. The Project Board4.1 Our Cadences4.2 How We Handle Urgent Issues and Impediments5. Scaling the Kanban Boards6. Tracking the High-Level Goal7. Defining Ready and Done7.1 Ready for Development7.2 Ready for System Test7.3 How This Improved Collaboration 8. Handling Tech Stories8.1 Example 1: System Test Bottleneck8.2 Example 2: Day Before the Release8.3 Example 3: The 7-Meter Class9. Handling Bugs9.1 Continuous System Test9.2 Fix the Bugs Immediately9.3 Why We Limit the Number of Bugs in the Bug Tracker9.4 Visualizing Bugs9.5 Preventing Recurring Bugs10. Continuously Improving the Process10.1 Team Retrospectives10.2 Process Improvement Workshops10.3 Managing the Rate of Change11. Managing Work in Progress11.1 Using WIP Limits11.2 Why WIP Limits Apply Only to Features12. Capturing and Using Process Metrics12.1 Velocity (Features per Week)12.2 Why We Don’t Use Story Points12.3 Cycle Time (Weeks per Feature)12.4 Cumulative Flow12.5 Process Cycle Efficiency13. Planning the Sprint and Release13.1 Backlog Grooming13.2 Selecting the Top Ten Features13.3 Why We Moved Backlog Grooming Out of the Sprint Planning Meeting13.4 Planning the Release14. How We Do Version Control14.1 No Junk on the Trunk14.2 Team Branches14.3 System Test Branch15. Why We Use Only Physical Kanban Boards16. What We Learned16.1 Know Your Goal16.2 Experiment16.3 Embrace Failure16.4 Solve Real Problems16.5 Have Dedicated Change Agents16.6 Involve PeoplePART II: A CLOSER LOOK AT THE TECHNIQUES 17. Agile and Lean in a Nutshell17.1 Agile in a Nutshell17.2 Lean in a Nutshell17.3 Scrum in a Nutshell17.4 XP in a Nutshell17.5 Kanban in a Nutshell18. Reducing the Test Automation Backlog18.1 What to Do About It18.2 How to Improve Test Coverage a Little Bit Each Iteration18.3 Step 1: List Your Test Cases18.4 Step 2: Classify Each Test18.5 Step 3: Sort the List in Priority Order18.6 Step 4: Automate a Few Tests Each Iteration18.7 Does This Solve the Problem?19. Sizing the Backlog with Planning Poker19.1 Estimating Without Planning Poker19.2 Estimating with Planning Poker19.3 Special Cards20. Cause-Effect Diagrams20.1 Solve Problems, Not Symptoms20.2 The Lean Problem-Solving Approach: A3 Thinking20.3 How to Use Cause-Effect Diagrams20.4 Example 1: Long Release Cycle20.5 Example 2: Defects Released to Production20.6 Example 3: Lack of Pair Programming20.7 Example 4: Lots of Problems20.8 Practical Issues: How to Create and Maintain the Diagrams20.9 Pitfalls20.10 Why Use Cause-Effect Diagrams?21. Final WordsA1. Glossary: How We Avoid Buzzword BingoIndex

SQL Performance Explained


Markus Winand - 2011
    The focus is on SQL-it covers all major SQL databases without getting lost in the details of any one specific product. Starting with the basics of indexing and the WHERE clause, SQL Performance Explained guides developers through all parts of an SQL statement and explains the pitfalls of object-relational mapping (ORM) tools like Hibernate. Topics covered include: Using multi-column indexes; Correctly applying SQL functions; Efficient use of LIKE queries; Optimizing join operations; Clustering data to improve performance; Pipelined execution of ORDER BY and GROUP BY; Getting the best performance for pagination queries; Understanding the scalability of databases. Its systematic structure makes SQL Performance Explained both a textbook and a reference manual that should be on every developer's bookshelf.

Objective-C Programming: The Big Nerd Ranch Guide


Aaron Hillegass - 2011
    This is a hands-on guide to mastering Objective C - the language every MAC OS X and iPhone/iPod Touch developer needs to know.

The Art of Computer Programming, Volume 4A: Combinatorial Algorithms, Part 1


Donald Ervin Knuth - 2011
    The first three volumes of this work have long comprised a unique and invaluable resource in programming theory and practice. Scientists have marveled at the beauty and elegance of Knuth's analysis, while practicing programmers have successfully applied his "cookbook" solutions to their day-to-day problems. The level of these first three volumes has remained so high, and they have displayed so wide and deep a familiarity with the art of computer programming, that a sufficient "review" of future volumes could almost be: "Knuth, Volume n has been published." -Data Processing Digest Knuth, Volume n has been published, where n = 4A. In this long-awaited new volume, the old master turns his attention to some of his favorite topics in broadword computation and combinatorial generation (exhaustively listing fundamental combinatorial objects, such as permutations, partitions, and trees), as well as his more recent interests, such as binary decision diagrams. The hallmark qualities that distinguish his previous volumes are manifest here anew: detailed coverage of the basics, illustrated with well-chosen examples; occasional forays into more esoteric topics and problems at the frontiers of research; impeccable writing peppered with occasional bits of humor; extensive collections of exercises, all with solutions or helpful hints; a careful attention to history; implementations of many of the algorithms in his classic step-by-step form. There is an amazing amount of information on each page. Knuth has obviously thought long and hard about which topics and results are most central and important, and then, what are the most intuitive and succinct ways of presenting that material. Since the areas that he covers in this volume have exploded since he first envisioned writing about them, it is wonderful how he has managed to provide such thorough treatment in so few pages. -Frank Ruskey, Department of Computer Science, University of Victoria The book is Volume 4A, because Volume 4 has itself become a multivolume undertaking. Combinatorial searching is a rich and important topic, and Knuth has too much to say about it that is new, interesting, and useful to fit into a single volume, or two, or maybe even three. This book alone includes approximately 1500 exercises, with answers for self-study, plus hundreds of useful facts that cannot be found in any other publication. Volume 4A surely belongs beside the first three volumes of this classic work in every serious programmer's library. Finally, after a wait of more than thirty-five years, the first part of Volume 4 is at last ready for publication. Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually. Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP), http: //msp.org The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e ISBN: 0321751043

Fundamentals of Computer Programming with C# (The Bulgarian C# Book)


Svetlin Nakov - 2011
    It comes with free video lessons, presentations, exercises and solutions.This free programming tutorial starts with the first steps in programming and software development like variables, data types, conditional statements, loops and arrays and continues with other basic topics like methods, numeral systems, strings and string processing, exceptions, classes and objects.After the basics this free fundamental programming book enters into more advanced programming topics like recursion, data structures (lists, trees, hash-tables and graphs), high-quality code, unit testing and refactoring, object-oriented principles (inheritance, abstraction, encapsulation and polymorphism) and their implementation in the C# language. It also covers fundamental topics that each good developer should know like algorithm design, complexity of algorithms and problem solving.This free programming book uses C# language and Visual Studio to illustrate the programming concepts and explains some C# / .NET specific technologies like lambda expressions, extension methods and LINQ. This free programming C# book is written by a team of developers lead by Svetlin Nakov (http://www.nakov.com) who has 20+ years practical software development experience and 10+ years as software development trainer.This free book on fundamentals of programming teaches the major programming concepts and way of thinking needed to become a good software engineer and the C# language in the meantime. It is a great start for anyone who wants to become a skillful software engineer. The books does not teach technologies like databases, mobile and web development, but shows the true way to master the basics of programming regardless of the languages, technologies and tools. It is good for beginners and intermediate developers who want to put a solid base for a successful career in the software engineering industry. The book is accompanied by 27 free video lessons on C# programming (42 hours), presentation slides (27 PPTX presentations) and mind maps, as well as hundreds of exercises with solutions and live examples.Table of contentsPrefaceChapter 1. Introduction to ProgrammingChapter 2. Primitive Types and VariablesChapter 3. Operators and ExpressionsChapter 4. Console Input and OutputChapter 5. Conditional StatementsChapter 6. LoopsChapter 7. ArraysChapter 8. Numeral SystemsChapter 9. MethodsChapter 10. RecursionChapter 11. Creating and Using ObjectsChapter 12. Exception HandlingChapter 13. Strings and Text ProcessingChapter 14. Defining ClassesChapter 15. Text FilesChapter 16. Linear Data StructuresChapter 17. Trees and GraphsChapter 18. Dictionaries, Hash-Tables and SetsChapter 19. Data Structures and Algorithm ComplexityChapter 20. Object-Oriented Programming PrinciplesChapter 21. High-Quality Programming CodeChapter 22. Lambda Expressions and LINQChapter 23. Methodology of Problem SolvingChapter 24. Sample Programming Exam – Topic #1Chapter 25. Sample Programming Exam – Topic #2Chapter 26. Sample Programming Exam – Topic #3ConclusionTags: free, programming, book, computer programming, programming fundamentals, ebook, book programming, C#, CSharp, C# book, tutorial, C# tutorial; programming concepts, programming fundamentals, compiler, Visual Studio, .NET, .NET Framework, data types, variables, expressions, statements, console, conditional statements, control-flow logic, loops, arrays, numeral systems, methods, strings, text processing, StringBuilder, exceptions, exception handling, stack trace, streams, files, text files, linear data structures, list, linked list, stack, queue, tree, balanced tree, graph, depth-first search, DFS, breadth-first search, BFS, dictionaries, hash tables, associative arrays, sets, algorithms, sorting algorithm, searching algorithms, recursion, combinatorial algorithms, algorithm complexity, OOP, object-oriented programming, classes, objects, constructors, fields, properties, static members, abstraction, interfaces, encapsulation, inheritance, virtual methods, polymorphism, cohesion, coupling, enumerations, generics, namespaces, UML, design patterns, extension methods, anonymous types, lambda expressions, LINQ, code quality, high-quality code, high-quality classes, high-quality methods, code formatting, self-documenting code, code refactoring, problem solving, problem solving methodology, 9789544007737, 9544007733Download the free C# programming book, videos, presentations and other resources from http://introprogramming.info.

Professional C++


Marc Gregoire - 2011
    With this no-nonsense book, you will learn to conquer the latest release of C++. The author deciphers little-known features of C++, shares detailed code examples that you can then plug into your own code, and reveals the significant changes to C++ that accompany the latest release. You'll discover how to design and build applications that solve real-world problems and then implement the solution using the full capabilities of the language.Appeals to experienced developers who are looking for a higher level of learningDrills down the extensive changes to the latest C++ standard, C++11, including enhancements made to run-time performance, standard library, language usability, and core language Zeroes in on explaining the more poorly understood elements of the C++ feature set and addresses common pitfalls to avoid Includes case studies that feature extensive, working code that has been tested on Windows and Linux platforms Intertwines text with useful tips, tricks, and workarounds Packed with best practices for programming, testing, and debugging applications, this book is vital for taking your C++ skills to the next level.

Clojure Programming


Chas Emerick - 2011
    This book helps you learn the fundamentals of Clojure with examples relating it to the languages you know already, in the domains and topics you work with every day. See how this JVM language can help eliminate unnecessary complexity from your programming practice and open up new options for solving the most challenging problems. Clojure Programming demonstrates the language's flexibility by showing how it can be used for common tasks like web programming and working with databases, up through more demanding applications that require safe, effective concurrency and parallelism, data and statistical analysis, and more. This in-depth look helps tie together the full Clojure development experience, from how to organize your project and an introduction to Clojure build tooling, to a tutorial on how to make the most of Clojure’s REPL during development, and how to deploy your finished application in a cloud environment.Learn how to use Clojure without losing your investment in the Java platform Understand the advantages of Clojure as an efficient Lisp for the JVM See how Clojure is used today in several practical domains Discover how Clojure eliminates the need for many verbose and complicated design patterns Deploy large web applications across tens or hundreds of cloud nodes with Clojure

The Manual


Andy McMillan - 2011
    The Manual is a beautifully crafted journal that takes a fresh look, in print, at the maturing of the discipline and profession of web designIn lively, rich articles and vibrant, personal stories we explore the tiny distance between loving people and seeing them as mere specks, the deadliness of CSS galleries, the impact of the corruption of the web’s original vision as interconnected nodes, the way in which our increasingly scattered identities call for a new etiquette, the foundation of design in finely tuned critical thinking, and the urgent need to cull and surrender, focus on craftsmanship, and build a new visual language for web design.

Making Embedded Systems: Design Patterns for Great Software


Elecia White - 2011
    This easy-to-read guide helps you cultivate a host of good development practices, based on classic software design patterns and new patterns unique to embedded programming. Learn how to build system architecture for processors, not operating systems, and discover specific techniques for dealing with hardware difficulties and manufacturing requirements.Written by an expert who’s created embedded systems ranging from urban surveillance and DNA scanners to children’s toys, this book is ideal for intermediate and experienced programmers, no matter what platform you use.Optimize your system to reduce cost and increase performanceDevelop an architecture that makes your software robust in resource-constrained environmentsExplore sensors, motors, and other I/O devicesDo more with less: reduce RAM consumption, code space, processor cycles, and power consumptionLearn how to update embedded code directly in the processorDiscover how to implement complex mathematics on small processorsUnderstand what interviewers look for when you apply for an embedded systems job"Making Embedded Systems is the book for a C programmer who wants to enter the fun (and lucrative) world of embedded systems. It’s very well written—entertaining, even—and filled with clear illustrations." —Jack Ganssle, author and embedded system expert.

Introduction to Reliable and Secure Distributed Programming


Christian Cachin - 2011
    It includes algorithms to implement these abstractions in vulnerable distributed systems.

PostGIS in Action


Regina - 2011
    PostGIS, a freely available open-source spatial database extender, can help you answer questions that you could not answer using a mere relational database. Its feature set equals or surpasses proprietary alternatives, allowing you to create location-aware queries and features with just a few lines of SQL code. PostGIS in Action is the first book devoted entirely to PostGIS. It will help both new and experienced users write spatial queries to solve real-world problems. For those with experience in more traditional relational databases, this book provides a background in vector-based GIS so you can quickly move to analyzing, viewing, and mapping data. Advanced users will learn how to optimize queries for maximum speed, simplify geometries for greater efficiency, and create custom functions suited specifically to their applications. It also discusses the new features available in PostgreSQL 8.4 and provides tutorials on using additional open source GIS tools in conjunction with PostGIS.

SharePoint 2010 Web Parts in Action


Wictor Wilen - 2011
    SharePoint 2010 includes dozens of prebuilt Web Parts that you can use. It also provides an API that lets you build custom Web Parts using C# or VB.NET.SharePoint 2010 Web Parts in Actionis a comprehensive guide to deploying, customizing, and creating Web Parts. Countless examples walk you through everything from design, to development, deployment, troubleshooting, and upgrading. Because Web Parts are ASP.NET controls, you'll learn to use Visual Studio 2010 to extend existing Web Parts and to build custom components from scratch. What's InsideUsing and configuring Web PartsWeb Part and portal best practicesCustom use cases, like mobile and international appsWeb Part design patternsThis book is written for application developers working with SharePoint 2010. Knowing Visual Studio 2010 is helpful but not required. 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 Microsoft ASP.NET 4


Dino Esposito - 2011
    Web development expert Dino Esposito provides essential, architectural-level guidance, along with the in-depth technical insights designed to take youOCoand your solutionsOCoto the next level. The book covers Dynamic Data, AJAX, Microsoft Silverlight-, ASP.NET MVC, Web forms, LINQ, and security strategiesOCoand features extensive code samples in Microsoft Visual C#- 2010."

InDesign in easy steps: Covers Versions CS3, CS4, and CS5


Robert Shufflebotham - 2011
    Then, it continues to cover more and more of the extensive range of functionality InDesign has to offer.By following the book's logical structure you can develop the core skills needed to master the software.Areas covered include:Tables and TabsTable of Contents, Indexing and BooksPrinting and ExportingTransformations and TransparencyPaths and the Pen ToolFor both Windows & Mac users

Secrets to Mastering HDR Photography


Kim Y. Seng a.k.a. Captain Kimo - 2011
    The package also includes 6 Photoshop actions, 30 Photomatix Presets, and 3 Exposures so that you can follow along in the lessons. If you’ve ever wanted to know how Kim accomplishes his HDR work, he tells all in this new book, and if you know Kim, he likes to over-deliver, so you certainly won’t be disappointed. This e-book can be bought at http://captainkimo.com

Android in Practice: Includes 91 Techniques


Charlie Collins - 2011
    Written by real world Android developers, this book addresses the trickiest questions raised in forums and mailing lists. Using an easy-to-follow problem/solution/discussion format, it dives into important topics not covered in other Android books, like advanced drawing and graphics, testing and instrumentation, building and deploying applications, and using alternative languages.About the BookIt's not hard to find the information you need to build your first Android app. Then what? If you want to build real apps, you will need some how-to advice, and that's what this book is about. Android in Practice is a rich source of Android tips, tricks, and best practices, covering over 90 clever and useful techniques that will make you a more effective Android developer. Techniques are presented in an easy-to-read problem/solution/discussion format. The book dives into important topics like multitasking and services, testing and instrumentation, building and deploying applications, and using alternative languages. 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. What's InsideTechniques covering Android 1.x to 3.xAndroid for tabletsWorking with threads and concurrencyTesting and buildingUsing location awareness and GPSStyles and themesAnd much more!This book requires a working knowledge of Java, but no prior experience with Android is assumed. Source Code can be found at https://code.google.com/p/android-in-...Table of ContentsPART 1 BACKGROUND AND FUNDAMENTALSIntroducing AndroidAndroid application fundamentalsManaging lifecycle and statePART 2 REAL WORLD RECIPESGetting the pixels perfectManaging background tasks with ServicesThreads and concurrencyStoring data locallySharing data between appsHTTP networking and web servicesLocation is everythingAppeal to the senses using multimedia2D and 3D drawingPART 3 BEYOND STANDARD DEVELOPMENTTesting and instrumentationBuild managementDeveloping for Android tablets

Flourish. Banner. Frame.: 555 Ornaments and Motifs for Design and Illustration


Von Glitschka - 2011
    Flourish. Banner. Frame. is an amazing library of 555 original symbols, floral motifs, border treatments, frills, banners, shields, crests, ornaments, decorative frames, placards and cartouches. Each design element has been crafted with vector precision, and you can use this artwork within the context of your own projects, whether they are personal or professional in nature.There are 10 real-life examples in the book, so you can be inspired by top designers and illustrators. This extensive volume of ornaments and motifs is easy to use for any design or illustration project: publication layouts, book covers, website backgrounds, t-shirt graphics, scrapbooks, textiles, crafts, stencils, tattoos—and everything in between. Whether you are a beginner or an advanced design professional, you’ll turn to this resource again and again for years to come.Royalty-free ornaments included on DVD for your use!

OS X and iOS Kernel Programming


Ole Henry Halvorsen - 2011
    You'll learn fundamental concepts such as memory management and thread synchronization, as well as the I/O Kit framework. You'll also learn how to write your own kernel-level extensions, such as device drivers for USB and Thunderbolt devices, including networking, storage and audio drivers. OS X and iOS Kernel Programming provides an incisive and complete introduction to the XNU kernel, which runs iPhones, iPads, iPods, and Mac OS X servers and clients. Then, you'll expand your horizons to examine Mac OS X and iOS system architecture. Understanding Apple's operating systems will allow you to write efficient device drivers, such as those covered in the book, using I/O Kit. With OS X and iOS Kernel Programming, you'll: Discover classical kernel architecture topics such as memory management and thread synchronization Become well-versed in the intricacies of the kernel development process by applying kernel debugging and profiling tools Learn how to deploy your kernel-level projects and how to successfully package them Write code that interacts with hardware devices Examine easy to understand example code that can also be used in your own projects Create network filtersWhether you're a hobbyist, student, or professional engineer, turn to OS X andiOS Kernel Programming and find the knowledge you need to start developing What you'll learn OS X and iOS common core architecture How to write extremely efficient code by exploiting kernel details Coding kernel-level extensions How to write device drivers How to program the I/O Kit framework Key mobile device topics like power management driversand video capture modules To understand OS X memory management and threads To parse kernel debug messages and package projects ready for deployment Who this book is forThis book is suited for Intermediate and advanced iPhone and OS X programmers ready for the next step Kernel-level programmers interested in how OS X and iOS function Open source programmers with a background in Linuxor BSD, OS X and iOS Programmers interested in application performance System administrators running OS X clusters Table of Contents Operating System Fundamentals Mac OS X and iOS Xcode and the Kernel Development Environment The I/O Kit Framework Interacting with Drivers fromApplications Memory Management Synchronisation and Threading USB Drivers PCI and Thunderbolt Power Management Serial Port Drivers Core Audio Network Drivers Storage Drivers and Filesystems User-Space Drivers Debugging and Profiling Advanced Kernel Programming Deployment

Oracle Database 11g Release 2 High Availability: Maximize Your Availability with Grid Infrastructure, Rac and Data Guard


Scott Jesse - 2011
    Oracle Database 11g Release 2 High Availability: Maximize Your Availability with Grid Infrastructure, Oracle Real Application Clusters, and Oracle Data Guard, Second Edition provides cost-effective solutions to current availability challenges. Discover how to grid-enable your IT framework, roll out Oracle Real Application Clusters, maintain standby databases, and deploy Oracle Flashback. Monitoring, tuning, and disaster recovery techniques are also covered in this comprehensive resource.Install Oracle Clusterware (as part of Oracle's grid infrastructure) or upgrade from an earlier version Build test clusters and hosts using Oracle VM Work with Oracle Automatic Storage Management and Oracle Automatic Storage Management Cluster File System Create synchronized standby databases using Oracle Data Guard Reliably archive and restore data with Oracle Recovery Manager Use Oracle Flashback to identify and undo user errors Configure Oracle Enterprise Manager Grid Control for management of an Oracle maximum availability architecture environment

Graph-Based Natural Language Processing and Information Retrieval


Rada Mihalcea - 2011
    Traditionally, these areas have been perceived as distinct, with different algorithms, different applications, and different potential end-users. However, recent research has shown that these disciplines are intimately connected, with a large variety of natural language processing and information retrieval applications finding efficient solutions within graph-theoretical frameworks. This book extensively covers the use of graph-based algorithms for natural language processing and information retrieval. It brings together topics as diverse as lexical semantics, text summarization, text mining, ontology construction, text classification, and information retrieval, which are connected by the common underlying theme of the use of graph-theoretical methods for text and information processing tasks. Readers will come away with a firm understanding of the major methods and applications in natural language processing and information retrieval that rely on graph-based representations and algorithms.

HTML5 Multimedia: Develop and Design


Ian Devlin - 2011
    Websites no longer have to rely on a third-party tool such as Flash or Silverlight to play video and audio. This book is an easy, approachable guide to building native HTML5 multimedia into a website, from the simplest addition to more advanced features. It's written in a simple, straightforward style that's not too techy, yet advanced enough for the more experienced coder who just needs to get up to speed on these powerful new capabilities. The book's companion website provides all the examples in a working format for easy access and enhanced visualization for the reader. Topics include: Using Audio: How to add audio to web documents using the HTML5 audio element.Using Video: How to add video to web documents using the HTML5 video element.JavaScript API and Custom Controls: How to use the HTML5 Media JavaScript API to create custom controls for HTML5 audio and video.Styling Media Elements with CSS: Shows how HTML5 media elements can be styled with CSS2.1 and CSS3. Using Video with SVG: Shows how SVG and HTML5 video can work together.Using Video with Canvas: Introduces the HTML5 canvas element and shows how HTML5 video and canvas can work together.

Secrets of ZBrush Experts: Tips, Techniques, and Insights for Users of All Abilities


Daryl Wise - 2011
    The artists featured in this book use ZBrush to create 3D models for some of the most prestigious studios in the industry such as Disney, Weta Digital, Sony, Dreamworks, Blur and Digital Domain. SECRETS OF ZBRUSH EXPERTS: TIPS, TECHNIQUES, AND INSIGHTS FOR USERS OF ALL ABILITIES allows you the opportunity to look into the creative process of these remarkable artists. Each chapter details the professional background of an individual expert and includes techniques, insights, and resources followed by an image gallery highlighting some of the artist's work, both personal and professional. The book features a companion website that includes image galleries, motion graphics, tutorials, favorite Internet links, and free content. This book and web resource will provide inspiration, insight, and practical advice for ZBrush artists of all abilities.

Foundation Html5 Animation with JavaScript


Billy Lamberta - 2011
    It provides information on all the relevant math you'll need, before moving on to physics concepts like acceleration, velocity, easing, springs, collision detection, conservation of momentum, 3D, and forward and inverse kinematics. Foundation HTML5 Animation with JavaScript is a fantastic resource for all web developers working in HTML5 or switching over from Flash to create standards-compliant games, applications, and animations that will work across all modern browsers and most mobile devices, including iPhones, iPads, and Android devices. You will learn how to utilize the amazing animation and physics-based code originally created by author Keith Peters in his hugely successful Foundation ActionScript Animation in all of your HTML5 applications. In no time at all, you'll understand the concepts behind scripted animation and also have the ability to create all manner of exciting animations and games.

Pro Web Project Management


Justin Emond - 2011
    This isn't a book about project management theory. Pro Web Project Management tells how to create real deliverables, get answers from indecisive clients, manage wayward programmers, and use checklists to wow clients. This book is made up of real examples, real lessons, real documents, and real tips woven together into a step-by-step walkthrough of a project's life cycle. Pro Web Project Management is written for both the full-time project manager and the aspiring project manager who might have a role that blends client support, web development, and project management. The project budget sweet spot for this book is $50,000 to $500,000. If you manage a project in this space, reading this book will make you a better project manager.Learn how to manage a modern web project with a budget of $50,000 to $500,000 Get actionable tips on dealing with real project management challenges Learn the simple, defined processrefined over the yearsto take simple and complex projects from proposal to successful launch What you'll learn How to run an effective meeting How to write scopes of work that lead to successful projects How to create awesome screen mock-ups and wire frames How to use checklists to ensure successful project launches How to create deliverables like site maps, agendas, technical specifications, and requirements documents How to keep developers on track without micro-managing Who this book is forPro Web Project Management is for project managers, project managers in training, and client sponsors that need real advice, tips, and guidance on small and medium-sized projects. It's an excellent choice for consulting organizations that build web sites and web applications for clients. Table of Contents The ProjectLifecycle The Project Definition & Scope of Work Meetings, Meetings, Meetings Discovery and Requirements Project Schedule & Budgeting Running the Project Technical Specification Development Quality Assurance & Testing Deployment Support and Operations

The Software IP Detective's Handbook: Measurement, Comparison, and Infringement Detection


Bob Zeidman - 2011
    This book explains the key elements better than anything else I have seen. I highly recommend it to anyone who develops software or needs to protect proprietary software algorithms, and to all attorneys involved with IP litigation.""-Capers Jones, President, Capers Jones & Associates LLC" "Intellectual property is an engine of growth for our high tech world and a valuable commodity traded in its own right. Bob Zeidman is a leading authority on software intellectual property, and in this book he shares his expertise with us. The book is comprehensive. It contains clear explanations of many difficult subjects. Business people who study it will learn how to protect their IP. Lawyers will use it to understand the specifics of how software embodies IP. Judges will cite it in their decisions on IP litigation.""-Abraham Sofaer, George P. Shultz Senior Fellow in Foreign Policy and National Security Affairs, Hoover Institution, Stanford University"The Definitive Software IP Guide for Developers, Managers, Entrepreneurs, Attorneys, and Consultants In "The Software IP Detective's Handbook, " pioneering expert Bob Zeidman-creator of CodeSuite(R), the world's #1 software IP analysis tool-thoroughly covers all technical and legal aspects of IP theft detection. Using his rigorous framework and practical examples, you can accurately determine whether software copying, theft, or infringement has occurred, and fully support your findings in any venue. This book will help you Understand the key concepts that underlie software IP analysis Compare and correlate source code for signs of theft or infringement Uncover signs of copying in object code when source code is inaccessible Track malware and third-party code in applications Use software clean rooms to avoid IP infringement Understand IP issues associated with open source and DMCA Visit www.SAFE-corp.biz to download a free trial version of CodeSuite(R), the #1 tool for detecting software copying.

Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers


Tammy Noergaard - 2011
    This book is perfect for those starting out as technical professionals such as engineers, programmers and designers of embedded systems; and also for students of computer science, computer engineering and electrical engineering. It gives a much-needed 'big picture' for recently graduated engineers grappling with understanding the design of real-world systems for the first time, and provides professionals with a systems-level picture of the key elements that can go into an embedded design, providing a firm foundation on which to build their skills.Real-world approach to the fundamentals, as well as the design and architecture process, makes this book a popular reference for the daunted or the inexperienced: if in doubt, the answer is in here!Fully updated with new coverage of FPGAs, testing, middleware and the latest programming techniques in C, plus complete source code and sample code, reference designs and tools online make this the complete packageVisit the companion web site at http: //booksite.elsevier.com/9780123821966/ for source code, design examples, data sheets and more

How to Reduce the Cost of Software Testing


Matthew Heusser - 2011
    A series of essays written by some of the leading minds in software testing, How to Reduce the Cost of Software Testing provides tips, tactics, and techniques to help readers accelerate the testing process, improve the performance of the test teams, and lower costs.The distinguished team of contributors-that includes corporate test leaders, best paper authors, and keynote speakers from leading software testing conferences-supply concrete suggestions on how to find cost savings without sacrificing outcome. Detailing strategies that testers can immediately put to use to reduce costs, the book explains how to make testing nimble, how to remove bottlenecks in the testing process, and how to locate and track defects efficiently and effectively.Written in language accessible to non-technical executives, as well as those doing the testing, the book considers the latest advances in test automation, ideology, and technology. Rather than present the perspective of one or two experts in software testing, it supplies the wide-ranging perspectives of a team of experts to help ensure your team can deliver a completed test cycle in less time, with more confidence, and reduced costs.

Responding to Significant Software Events


Gerald M. Weinberg - 2011
    But measurement alone is insufficient to produce quality software. With measurements in hand, a manager must first interpret the significance of those measurements. Yet again, understanding significance is useless unless the manager responds appropriately.Responding to Significant Software Events is a comprehensive guide to those two basic measurement activities every organization must perform to manage the software development process.Many management failures occur even when observations are well done. Responding to Significant Software Events tells how to determine the significance of those observations, and then to respond with appropriate actions.Numerous examples and diagrams illustrate the author's points, and exercises challenge readers to test their understanding of the concepts. Topics include• measuring emotional significance• translating observation into action• dealing with swarms of failures* planning projects composed of measurable tasks• communicating about plans and progress• reviews as basic measurement tools• measuring failures before they happen• listening with precision• using requirements as the basis of measurement.This stand-alone text is the fourth in a series of volumes in which acclaimed author Gerald Weinberg explores the most difficult aspects of building high-quality software.

Startup Engineering Management


Piaw Na - 2011
     · How to pick engineering leaders? · How would you define processes and when don’t you need them. · How to report to your managers. · How compensation systems and promotion systems work, and when they fail.

Enabling Programmable Self with HealthVault


Vaibhav Bhandari - 2011
    Using Microsoft HealthVault, people interested in monitoring their health have an unprecedented opportunity to research their own data. This concise book explains how HealthVault users can collect and analyze their data, and how application developers can help them with mobile or web-based applications.You’ll learn how to use HealthVault’s open API, flexibility, and connections with multiple health-care providers to develop health data applications, enable automatic updates from well-known fitness devices, and use programming libraries to create reports and investigate trends.Get a walkthrough of HealthVault functionality available to end usersUse HealthVault to capture data from devices that measure a user’s healthExamine HealthVault’s API for interacting with applications and devices, using .NET code samplesDevelop a Quantified Self application for consumers that can track more than 80 data typesLearn how to build mobile apps for HealthVault by exploring an end-to-end example for Windows Phone 7Use best practices for releasing, maintaining, and marketing HealthVault applications to end users

Software Project Management: A Process-Driven Approach


Ashfaque Ahmed - 2011
    Emphasizing the critical components of successful large-scale software projects, Software Project Management: A Process-Driven Approach discusses human resources, software engineering, and technology to a level that exceeds most university-level courses on the subject. The book is organized into five parts. Part I defines project management with information on project and process specifics and choices, the skills and experience needed, the tools available, and the human resources organization and management that brings it all together. Part II explores software life-cycle management. Part III tackles software engineering processes and the range of processing models devised by several domestic and international organizations. Part IV reveals the human side of project management with chapters on managing the team, the suppliers, and the customers themselves. Part V wraps up coverage with a look at the technology, techniques, templates, and checklists that can help your project teams meet and exceed their goals. A running case study provides authoritative insight and insider information on the tools and techniques required to ensure product quality, reduce costs, and meet project deadlines. Praise for the book: This book presents all aspects of modern project management practices … includes a wealth of quality templates that practitioners can use to build their own tools. … equally useful to students and professionals alike. —Maqbool Patel, PhD, SVP/CTO/Partner, Acuitec

Applied Wpf 4 in Context


Raffaele Garofalo - 2011
    Using this book, you'll learn how to implement world-class Windows Professional Foundation (WPF) solutions in a real-world line of business applications, developing the code from the ground up, and understand how to apply best development practices and related .NET products and technologies to your solutions. You will cover designing and developing the application, testing and debugging, data access, reporting, and applying styles and themes to enhance the look of the user interface--all using WPF in a very practical, eminently useful context. You'll create asynchronous and parallel code, and learn how to distribute the application's components using Windows Communication Foundation (WCF). You'll also apply the Model-View-ViewModel pattern, again in a real-world WPF application.Elegant and functional WPF applications are easier to create than ever before with Applied WPF 4 in Context.

Visual Usability


Tania Schlatter - 2011
    "Visual Usability" gets into the nitty-gritty of applying visual design principles to complex application design.You ll learn how to avoid common mistakes, make informed decisions about application design, and elevate the ordinary. We ll review three key principles that affect application design consistency, hierarchy, and personality and illustrate how to apply tools like typography, color, and layout to digital application design. Whether you re a UI professional looking to fine-tune your skills, a developer who cares about making applications beautiful and usable, or someone entirely new to the design arena, Visual Usability is your one-stop, practical guide to visual design. Discover the principles and rules that underlie successful application design Learn how to develop a rationale to support design strategy and move teams forwardMaster the visual design toolkit to increase user-friendliness and make complicated processes feel straightforward for your product"

Yii 1.1 Application Development Cookbook


Alexander Makarov - 2011
    It is full of practically useful solutions and concepts explained with code and the required pictorial illustrations. If you are a developer with a good knowledge of PHP5, are familiar with the basics of Yii, and have tried to develop applications using Yii, then this book is for you. Knowledge of the object oriented approach and MVC pattern will be a great advantage as Yii uses these extensively.

Nhibernate 3 Beginner's Guide


Gabriel Nicolas Schenker - 2011
    There are appropriate screenshots throughout the book and plenty of code, which is explained in a well-thought-out format. If you are a new or seasoned developer of .NET web or desktop applications who is looking for a better way to access database data, then this book is for you. It is a basic introduction to NHibernate, with enough information to get a solid foundation in using NHibernate. Some advanced concepts are presented where appropriate to enhance functionality or in situations where they are commonly used. Absolutely no knowledge of NHibernate is required to read this book.

Html5 Developer's Cookbook


Chuck Hudson - 2011
    Simply put, every web developer needs to master HTML5-and the sooner you do so, the greater advantage you'll have. HTML5 Developer's Cookbook provides all the expert advice and proven code you need to start building production-quality HTML5 applications right now. Authors Chuck Hudson and Tom Leadbetter present tested, modular recipes at beginner, intermediate, and advanced levels. You'll learn exactly how to deliver state-of-the-art user experiences by integrating HTML5's new and enhanced elements with CSS3, multimedia, and JavaScript APIs. Reflecting current standards, this book prioritizes HTML5 features with substantial browser support and identifies the level of browser support for each feature discussed. Coverage includes Understanding and using HTML5's new structural elements Using grouping, text-level, and redefined semantics Managing browser-handling in HTML5 Leveraging new CSS3 layout and style techniques Maximizing interactivity with HTML5 Web Forms Embedding audio and video with HTML5 Drawing with the canvas Controlling browser histories Integrating location awareness with the Geolocation API Implementing client side storage Working with local files Managing communication and threading Optimizing the HTML5 browser experience Integrating device data Turn to HTML5 Developer's Cookbook for expert answers, real solutions, and the code required to implement them. It's all you need to jumpstart any HTML5 project and create rich, high-value web applications your users will love.

OpenCL in Action: How to accelerate graphics and computation


Matthew Scarpino - 2011
    It begins by presenting the core concepts behind OpenCL, including vector computing, parallel programming, and multi-threaded operations, and then guides you step-by-step from simple data structures to complex functions.About the TechnologyWhatever system you have, it probably has more raw processing power than you're using. OpenCL is a high-performance programming language that maximizes computational power by executing on CPUs, graphics processors, and other number-crunching devices. It's perfect for speed-sensitive tasks like vector computing, matrix operations, and graphics acceleration.About this BookOpenCL in Action blends the theory of parallel computing with the practical reality of building high-performance applications using OpenCL. It first guides you through the fundamental data structures in an intuitive manner. Then, it explains techniques for high-speed sorting, image processing, matrix operations, and fast Fourier transform. The book concludes with a deep look at the all-important subject of graphics acceleration. Numerous challenging examples give you different ways to experiment with working code.A background in C or C++ is helpful, but no prior exposure to OpenCL is needed. 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. What's InsideLearn OpenCL step by stepTons of annotated codeTested algorithms for maximum performance * * * * * * * * * **Table of ContentsPART 1 FOUNDATIONS OF OPENCL PROGRAMMINGIntroducing OpenCLHost programming: fundamental data structuresHost programming: data transfer and partitioningKernel programming: data types and device memoryKernel programming: operators and functionsImage processingEvents, profiling, and synchronizationDevelopment with C++Development with Java and PythonGeneral coding principlesPART 2 CODING PRACTICAL ALGORITHMS IN OPENCLReduction and sortingMatrices and QR decompositionSparse matricesSignal processing and the fast Fourier transformPART 3 ACCELERATING OPENGL WITH OPENCLCombining OpenCL and OpenGLTextures and renderbuffers

Drupal: The Guide to Planning and Building Websites


Cynthia McCourt - 2011
    In order to maximize what Drupal can do for you, you need to plan. Whether you are building with Drupal 6 or 7, this book details the steps necessary to plan your site so you can make informed decisions before you start to build.Explains how to define the scope of your project Shows you how to create a design plan taking into consideration how Drupal works Helps you make informed decisions regarding development methodologies, environments, standards, and site security Reviews ways to assess the use of existing and/or custom Drupal modules Teaches you how to avoid common pitfalls that can impact a successful site launch Walks you through preparing for post-launch site maintenance and management tasks Details incorporating the nature of open source systems into your management strategies Identifies ways to interact with members of the Drupal community The processes and techniques provided in this book will empower you to create a successful and sustainable site with Drupal.