Mac OS X Internals: A Systems Approach


Amit Singh - 2006
    Understanding the design, implementation, and workings of Mac OS X requires examination of several technologies that differ in their age, origins, philosophies, and roles. Mac OS X Internals: A Systems Approach is the first book that dissects the internals of the system, presenting a detailed picture that grows incrementally as you read. For example, you will learn the roles of the firmware, the bootloader, the Mach and BSD kernel components (including the process, virtual memory, IPC, and file system layers), the object-oriented I/O Kit driver framework, user libraries, and other core pieces of software. You will learn how these pieces connect and work internally, where they originated, and how they evolved. The book also covers several key areas of the Intel-based Macintosh computers.A solid understanding of system internals is immensely useful in design, development, and debugging for programmers of various skill levels. System programmers can use the book as a reference and to construct a better picture of how the core system works. Application programmers can gain a deeper understanding of how their applications interact with the system. System administrators and power users can use the book to harness the power of the rich environment offered by Mac OS X. Finally, members of the Windows, Linux, BSD, and other Unix communities will find the book valuable in comparing and contrasting Mac OS X with their respective systems. Mac OS X Internals focuses on the technical aspects of OS X and is so full of extremely useful information and programming examples that it will definitely become a mandatory tool for every Mac OS X programmer.

Agile Estimating and Planning


Mike Cohn - 2005
    In this book, Agile Alliance cofounder Mike Cohn discusses the philosophy of agile estimating and planning and shows you exactly how to get the job done, with real-world examples and case studies.Concepts are clearly illustrated and readers are guided, step by step, toward how to answer the following questions: What will we build? How big will it be? When must it be done? How much can I really complete by then? You will first learn what makes a good plan-and then what makes it agile.Using the techniques in Agile Estimating and Planning , you can stay agile from start to finish, saving time, conserving resources, and accomplishing more. Highlights include:Why conventional prescriptive planning fails and why agile planning works How to estimate feature size using story points and ideal days--and when to use each How and when to re-estimate How to prioritize features using both financial and nonfinancial approaches How to split large features into smaller, more manageable ones How to plan iterations and predict your team's initial rate of progress How to schedule projects that have unusually high uncertainty or schedule-related risk How to estimate projects that will be worked on by multiple teams Agile Estimating and Planning supports any agile, semiagile, or iterative process, including Scrum, XP, Feature-Driven Development, Crystal, Adaptive Software Development, DSDM, Unified Process, and many more. It will be an indispensable resource for every development manager, team leader, and team member.

Learn You a Haskell for Great Good!


Miran Lipovača - 2011
    Learn You a Haskell for Great Good! introduces programmers familiar with imperative languages (such as C++, Java, or Python) to the unique aspects of functional programming. Packed with jokes, pop culture references, and the author's own hilarious artwork, Learn You a Haskell for Great Good! eases the learning curve of this complex language, and is a perfect starting point for any programmer looking to expand his or her horizons. The well-known web tutorial on which this book is based is widely regarded as the best way for beginners to learn Haskell, and receives over 30,000 unique visitors monthly.

Dont Make Me Think (Blinkist Summaries)


Blinkist
    Witty, commonsensical, and eminently practical, it’s one of the best-loved and most recommended books on the subject.In this 3rd edition, Steve returns with fresh perspective to reexamine the principles that made Don’t Make Me Think a classic-–with updated examples and a new chapter on mobile usability. And it’s still short, profusely illustrated…and best of all–fun to read.If you’ve read it before, you’ll rediscover what made Don’t Make Me Think so essential to Web designers and developers around the world. If you’ve never read it, you’ll see why so many people have said it should be required reading for anyone working on Web sites.

BDD in Action: Behavior-driven development for the whole software lifecycle


John Ferguson Smart - 2014
    First you'll learn how to apply BDD to requirements analysis to define features that focus your development efforts on underlying business goals. Then, you'll discover how to automate acceptance criteria and use tests to guide and report on the development process. Along the way, you'll apply BDD principles at the coding level to write more maintainable and better documented code.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.About the TechnologyYou can't write good software if you don't understand what it's supposed to do. Behavior-Driven Development (BDD) encourages teams to use conversation and concrete examples to build up a shared understanding of how an application should work and which features really matter. With an emerging body of best practices and sophisticated new tools that assist in requirement analysis and test automation, BDD has become a hot, mainstream practice.About the BookBDD in Action teaches you BDD principles and practices and shows you how to integrate them into your existing development process, no matter what language you use. First, you'll apply BDD to requirements analysis so you can focus your development efforts on underlying business goals. Then, you'll discover how to automate acceptance criteria and use tests to guide and report on the development process. Along the way, you'll apply BDD principles at the coding level to write more maintainable and better documented code. No prior experience with BDD is required.What's InsideBDD theory and practiceHow BDD will affect your teamBDD for acceptance, integration, and unit testingExamples in Java, .NET, JavaScript, and moreReporting and living documentationAbout the AuthorJohn Ferguson Smart is a specialist in BDD, automated testing, and software lifecycle development optimization. Table of ContentsPART 1: FIRST STEPSBuilding software that makes a differenceBDD—the whirlwind tourPART 2: WHAT DO I WANT? DEFINING REQUIREMENTS USING BDDUnderstanding the business goals: Feature Injection and related techniquesDefining and illustrating featuresFrom examples to executable specificationsAutomating the scenariosPART 3: HOW DO I BUILD IT? CODING THE BDD WAYFrom executable specifications to rock-solid automated acceptance testsAutomating acceptance criteria for the UI layerAutomating acceptance criteria for non-UI requirementsBDD and unit testingPART 4: TAKING BDD FURTHERLiving Documentation: reporting and project managementBDD in the build process

Web Form Design: Filling in the Blanks


Luke WroblewskiMicah Alpern - 2008
    In Web Form Design, Luke Wroblewski draws on original research, his considerable experience at Yahoo! and eBay, and the perspectives of many of the field's leading designers to show you everything you need to know about designing effective and engaging Web forms.

Computer Graphics with OpenGL


Donald Hearn - 2003
    The text converts all programming code into the C++ language.

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.

Domain-Driven Design in PHP


Carlos Buenosvinos
    Explore applying the Hexagonal Architecture within your application, whether within an open source framework or your own bespoke system. Finally, look into integrating Bounded Contexts, using REST and Messaging approaches.

Assembly Language Programming And Organization Of The Ibm Pc


Andrew B.C. Yu - 1992
    This text includes coverage of I/O control, video/graphics control, text display, and OS/2. Its also illustrates examples of structured programming.

Fine Art Wedding Photography: How to Capture Images with Style for the Modern Bride


José Villa - 2011
    And today, that means lifestyle photography, also referred to as "fine art wedding photography." Fine art wedding photography isn't just a catchy phrase; it's a modern approach in which design is paramount. Fine art wedding images are more graphic and stylized than traditional wedding photojournalism, as if they were pulled from the pages of a glossy wedding or lifestyle magazine. Acclaimed wedding photographer Jose Villa was a pioneer in fine art wedding photography before it became a trendy buzzword. Here, he shares his secrets for bringing a stylized sense of composition, lighting, posing, and most important, design, to your images, while still keeping them organic and narrative. You’ll learn Jose’s trademark technique of capturing the more natural moment after a pose, and tips for getting images right in-camera to avoid the need for heavy postproduction. Final chapters show you how to integrate design through the delivered product, whether an album or slideshow, and continue nurturing clients after the wedding by expanding to baby and family portraiture. Packed with real-life examples, solid techniques, and stunning images from one of the wedding industry's brightest stars, this book will both educate and inspire photographers seeking to update their work and satisfy a new generation of brides.

Programming In Ansi C


E. Balagurusamy - 1992
    

Head First C#


Andrew Stellman - 2007
    Built for your brain, this book covers C# 3.0 and Visual Studio 2008, and teaches everything from language fundamentals to advanced topics including garbage collection, extension methods, and double-buffered animation. You'll also master C#'s hottest and newest syntax, LINQ, for querying SQL databases, .NET collections, and XML documents. By the time you're through, you'll be a proficient C# programmer, designing and coding large-scale applications. Every few chapters you will come across a lab that lets you apply what you've learned up to that point. Each lab is designed to simulate a professional programming task, increasing in complexity until-at last-you build a working Invaders game, complete with shooting ships, aliens descending while firing, and an animated death sequence for unlucky starfighters. This remarkably engaging book will have you going from zero to 60 with C# in no time flat.

Running Linux


Matthias Kalle Dalheimer - 2005
    Matt Welsh wrote the original Linux Installation and Getting Started guide; Matthias Dalheimer now leads the KDE Foundation. Their knowledge shows, whether they re talking about system administration, multimedia, or programming. You ll start by getting comfortable and productive: navigating command lines and GUIs; using browsers and office software; even gaming. Then, the authors lead you into the heart of Linux. You ll build kernels, process text, manage startup, troubleshoot X Window video. You ll implement print, file, network, and Internet services. There s even a full chapter on building LAMP application environments. Along the way, the authors introduce a raft of new topics, from encrypted email to groupware -- all with the clarity and accuracy you need to get results. Bill Camarda, from the February 2006 href="http://www.barnesandnoble.com/newslet... Only

Manage Your Project Portfolio


Johanna Rothman - 2008
    But how much time you actually spend on your projects, and how much time do you spend responding to emergencies? This book will introduce you to different ways of ordering all of the projects you are working on now, and help you figure out how to staff those projects--even when you've run out of project teams to do the work. Once you learn to manage your portfolio better, you'll avoid emergency "firedrills." The trick is adopting lean and agile approaches to projects, whether they are software projects, projects that include hardware, or projects that depend on chunks of functionality from other suppliers. You may be accustomed to spending time in meetings where you still don't have the data you need to evaluate your projects. Here, with a few measures, you'll be able to quickly evaluate each project and come to a decision quickly. You'll learn how to define your team's, group's, or department's mission with none of the buzzwords that normally accompany a mission statement. Armed with the work and the mission, you can make those decisions that define the true leaders in the organization.