Like the previous editions, this textbook uses real processors to demonstrate both technology and techniques; shows readers how to apply principles to actual design practice; stresses necessary fundamentals that can be applied to evolving technologies; and helps readers gain facility to design large, complex embedded systems. Updates in this edition include: description of cyber-physical systems; exploration of the PIC and TI OMAP processors; high-level representations of systems using signal flow graphs; enhanced material on interprocess communication and buffering in operating systems; and design examples that include an audio player, digital camera, and cell phone. The author maintains a robust ancillary site at http://www.marilynwolf.us/CaC3e/index.html which includes a variety of support materials for instructors and students, including PowerPoint slides for each chapter; lab assignments developed for multiple systems including the ARM-based BeagleBoard computer; downloadable exercises solutions and source code; and links to resources and additional information on hardware, software, systems, and more.
This book will appeal to students in an embedded systems design course as well as to researchers and savvy professionals schooled in hardware or software design.Description of cyber-physical systems: physical systems with integrated computation to give new capabilitiesExploration of the PIC and TI OMAP multiprocessorsHigh-level representations of systems using signal flow graphsEnhanced material on interprocess communication and buffering in operating systemsDesign examples include an audio player, digital camera, cell phone, and more
Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You’ll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.Discover how microservices allow you to align your system design with your organization’s goalsLearn options for integrating a service with the rest of your systemTake an incremental approach when splitting monolithic codebasesDeploy individual microservices through continuous integrationExamine the complexities of testing and monitoring distributed servicesManage security with user-to-service and service-to-service modelsUnderstand the challenges of scaling microservice architectures
This new edition is an ideal resource for professional digital system designers, programmers, application developers, and system software developers. It will also be of interest to undergraduate students in Computer Science, Computer Engineering and Electrical Engineering courses in Computer Organization, Computer Design, ranging from Sophomore required courses to Senior Electives.Winner of a 2014 Texty Award from the Text and Academic Authors AssociationIncludes new examples, exercises, and material highlighting the emergence of mobile computing and the cloudCovers parallelism in depth with examples and content highlighting parallel hardware and software topics Features the Intel Core i7, ARM Cortex-A8 and NVIDIA Fermi GPU as real-world examples throughout the book Adds a new concrete example, "Going Faster," to demonstrate how understanding hardware can inspire software optimizations that improve performance by 200 timesDiscusses and highlights the "Eight Great Ideas" of computer architecture: Performance via Parallelism; Performance via Pipelining; Performance via Prediction; Design for Moore's Law; Hierarchy of Memories; Abstraction to Simplify Design; Make the Common Case Fast; and Dependability via RedundancyIncludes a full set of updated and improved exercises
Filled with practical, do-it-yourself gadgets, Arduino + Android Projects for the Evil Genius shows you how to create Arduino devices and control them with Android smartphones and tablets. Easy-to-find equipment and components are used for all the projects in the book.
This wickedly inventive guide covers the Android Open Application Development Kit (ADK) and USB interface and explains how to use them with the basic Arduino platform. Methods of communication between Android and Arduino that don't require the ADK--including sound, Bluetooth, and WiFi/Ethernet are also discussed. An Arduino ADK programming tutorial helps you get started right away.
Arduino + Android Projects for the Evil Genius:Contains step-by-step instructions and helpful illustrations Provides tips for customizing the projects Covers the underlying principles behind the projects Removes the frustration factor--all required parts are listed Provides all source code on the book's website
Build these and other devious devices:Bluetooth robot Android Geiger counter Android-controlled light show TV remote Temperature logger Ultrasonic range finder Home automation controller Remote power and lighting control Smart thermostat RFID door lock Signaling flags Delay timer
Raspberry Pi User Guide, 3rdEdition containseverything you need to know to get up and running with RaspberryPi. This book is the go-to guide for Noobs who want to dive rightin. This updated third edition covers the model B+ Raspberry Pi andits software, additional USB ports, and changes to the GPIO,including new information on Arduino and Minecraft on the Pi.You’ll find clear, step-by-step instruction for everythingfrom software installation and configuration to customizing yourRaspberry Pi with capability-expanding add-ons. Learn the basicLinux SysAdmin and flexible programming languages that allow you tomake your Pi into whatever you want it to be.
The Raspberry Pi was created by the UK Non-profit Raspberry PiFoundation to help get kids interested in programming. Affordable,portable, and utterly adorable, the Pi exceeded all expectations,introducing millions of people to programming since its creation.The Raspberry Pi User Guide, 3rd Edition helpsyou and your Pi get acquainted, with clear instruction in easy tounderstand language.Install software, configure, and connect your Raspberry Pi toother devicesMaster basic Linux System Admin to better understandnomenclature and conventionsWrite basic productivity and multimedia programs in Scratch andPythonExtend capabilities with add-ons like Gertboard, Arduino, andmore
The Raspberry Pi has become a full-fledged phenomenon, popularwith tinkerers, hackers, experimenters, and inventors. If you wantto get started but aren’t sure where to begin, RaspberryPi User Guide, 3rd Edition contains everything youneed.
With the invention of the unique credit-card sized single-boardcomputer, the Raspberry Pi, comes a new wave of hardware geeks,hackers, and hobbyists who are excited about the possibilities ofthe Raspberry Pi, and this is the perfect guide to get you startedin this exhilarating new arena. With this fun and friendly book,you'll quickly discover why the supply for the Pi cannot keep upwith the demand! Veteran tech authors Sean McManus and Mike Cookshow you how to download and install the operating system, use theinstalled applications, and much more.Covers connecting the Pi to other devices such as a keyboard,mouse, monitor, and moreTeaches you basic Linux System AdminWalks you through editing images, creating web pages, andplaying musicDetails how to program with Scratch and PythonExplores creating simple hardware projects
Raspberry Pi For Dummies makes computing as easy aspie.
Now discover the history of Raspberry Pi!
The Raspberry Pi sold a million units in its first year, and camefrom a previously unknown organisation, The Raspberry PiFoundation. If you’ve ever wondered how it came into being,and what inspired its creation, ahref="http://www.sean.co.uk/"Sean McManus/a, co-author ofRaspberry Pi For Dummies, has the answer. He has set up a sectionon his website to share bonus content, which includes a shorthistory of the Raspberry Pi. At Sean’s website, you can alsoread reviews of the book, see videos of its projects, and readseveral exclusive blog posts about the Raspberry Pi and itscommunity.
ahref="http://www.sean.co.uk/books/raspberry-pi-for-dummies/index.shtm"VisitSean’s homepage for Raspberry Pi For Dummies here/a!
The book begins with a summary of the nontechnical aspects of interviewing, such as common mistakes, strategies for a great interview, perspectives from the other side of the table, tips on negotiating the best offer, and a guide to the best ways to use EPI.
The technical core of EPI is a sequence of chapters on basic and advanced data structures, searching, sorting, broad algorithmic principles, concurrency, and system design. Each chapter consists of a brief review, followed by a broad and thought-provoking series of problems. We include a summary of data structure, algorithm, and problem solving patterns.
You will learn how to write a robust game loop, how to organize your entities using components, and take advantage of the CPUs cache to improve your performance. You'll dive deep into how scripting engines encode behavior, how quadtrees and other spatial partitions optimize your engine, and how other classic design patterns can be used in games.
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
“The cool thing about this book is that it’s great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there.”—Kent Beck, author of Extreme Programming Explained: Embrace Change
“I found this book to be a great mix of solid advice and wonderful analogies!”—Martin Fowler, author of Refactoring and UML Distilled
“I would buy a copy, read it twice, then tell all my colleagues to run out and grab a copy. This is a book I would never loan because I would worry about it being lost.”—Kevin Ruland, Management Science, MSG-Logistics
“The wisdom and practical experience of the authors is obvious. The topics presented are relevant and useful.... By far its greatest strength for me has been the outstanding analogies—tracer bullets, broken windows, and the fabulous helicopter-based explanation of the need for orthogonality, especially in a crisis situation. I have little doubt that this book will eventually become an excellent source of useful information for journeymen programmers and expert mentors alike.”—John Lakos, author of Large-Scale C++ Software Design
“This is the sort of book I will buy a dozen copies of when it comes out so I can give it to my clients.”—Eric Vought, Software Engineer
“Most modern books on software development fail to cover the basics of what makes a great software developer, instead spending their time on syntax or technology where in reality the greatest leverage possible for any software team is in having talented developers who really know their craft well. An excellent book.”—Pete McBreen, Independent Consultant
“Since reading this book, I have implemented many of the practical suggestions and tips it contains. Across the board, they have saved my company time and money while helping me get my job done quicker! This should be a desktop reference for everyone who works with code for a living.”—Jared Richardson, Senior Software Developer, iRenaissance, Inc.
“I would like to see this issued to every new employee at my company....”—Chris Cleeland, Senior Software Engineer, Object Computing, Inc.
“If I’m putting together a project, it’s the authors of this book that I want. . . . And failing that I’d settle for people who’ve read their book.”—Ward Cunningham
Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how toFight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation.
Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.
This fully updated edition is comprised of six chapters that follow a consistent framework: explanation of the ideas in each chapter; a crosscutting issues section, which presents how the concepts covered in one chapter connect with those given in other chapters; a putting it all together section that links these concepts by discussing how they are applied in real machine; and detailed examples of misunderstandings and architectural traps commonly encountered by developers and architects. Formulas for energy, static and dynamic power, integrated circuit costs, reliability, and availability are included. The book also covers virtual machines, SRAM and DRAM technologies, and new material on Flash memory. Other topics include the exploitation of instruction-level parallelism in high-performance processors, superscalar execution, dynamic scheduling and multithreading, vector architectures, multicore processors, and warehouse-scale computers (WSCs). There are updated case studies and completely new exercises. Additional reference appendices are available online.
This book will be a valuable reference for computer architects, programmers, application developers, compiler and system software developers, computer system designers and application developers.Part of Intel's 2012 Recommended Reading List for DevelopersUpdated to cover the mobile computing revolutionEmphasizes the two most important topics in architecture today: memory hierarchy and parallelism in all its forms.Develops common themes throughout each chapter: power, performance, cost, dependability, protection, programming models, and emerging trends ("What's Next")Includes three review appendices in the printed text. Additional reference appendices are available online.Includes updated Case Studies and completely new exercises.
Topics include:The pros and cons of braced initialization, noexcept specifications, perfect forwarding, and smart pointer make functionsThe relationships among std::move, std::forward, rvalue references, and universal referencesTechniques for writing clear, correct, effective lambda expressionsHow std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency APIHow best practices in "old" C++ programming (i.e., C++98) require revision for software development in modern C++
Effective Modern C++ follows the proven guideline-based, example-driven format of Scott Meyers' earlier books, but covers entirely new material.
"After I learned the C++ basics, I then learned how to use C++ in production code from Meyer's series of Effective C++ books. Effective Modern C++ is the most important how-to book for advice on key guidelines, styles, and idioms to use modern C++ effectively and well. Don't own it yet? Buy this one. Now".
-- Herb Sutter, Chair of ISO C++ Standards Committee and C++ Software Architect at Microsoft
Through carefully analyzed case studies from each of these disciplines, it demonstrates how to apply these concepts to tackle practical system design problems. To support the focus on design, the text identifies and explains abstractions that have proven successful in practice such as remote procedure call, client/service organization, file systems, data integrity, consistency, and authenticated messages. Most computer systems are built using a handful of such abstractions. The text describes how these abstractions are implemented, demonstrates how they are used in different systems, and prepares the reader to apply them in future designs.
The book is recommended for junior and senior undergraduate students in Operating Systems, Distributed Systems, Distributed Operating Systems and/or Computer Systems Design courses; and professional computer systems designers.Features: Concepts of computer system design guided by fundamental principles.Cross-cutting approach that identifies abstractions common to networking, operating systems, transaction systems, distributed systems, architecture, and software engineering.Case studies that make the abstractions real: naming (DNS and the URL); file systems (the UNIX file system); clients and services (NFS); virtualization (virtual machines); scheduling (disk arms); security (TLS).Numerous pseudocode fragments that provide concrete examples of abstract concepts.Extensive support. The authors and MIT OpenCourseWare provide on-line, free of charge, open educational resources, including additional chapters, course syllabi, board layouts and slides, lecture videos, and an archive of lecture schedules, class assignments, and design projects.
Yukihiro "Matz" Matsumoto, creator, designer and lead developer of Ruby and author of Ruby in a Nutshell, which has been expanded and revised to become this book.
why the lucky stiff, artist and Ruby programmer extraordinaire.This book begins with a quick-start tutorial to the language, and then explains the language in detail from the bottom up: from lexical and syntactic structure to datatypes to expressions and statements and on through methods, blocks, lambdas, closures, classes and modules.
The book also includes a long and thorough introduction to the rich API of the Ruby platform, demonstrating -- with heavily-commented example code -- Ruby's facilities for text processing, numeric manipulation, collections, input/output, networking, and concurrency. An entire chapter is devoted to Ruby's metaprogramming capabilities.
The Ruby Programming Language documents the Ruby language definitively but without the formality of a language specification. It is written for experienced programmers who are new to Ruby, and for current Ruby programmers who want to challenge their understanding and increase their mastery of the language.
Now in its fourth edition, this best-selling text has been expanded with increased coverage of industrial systems and PLCs and more consideration has been given to IEC 1131-3 and all the programming methods in the standard. The new edition brings the book fully up to date with the current developments in PLCs, describing new and important applications such as PLC use in communications (e.g. Ethernet – an extremely popular system), and safety – in particular proprietary emergency stop relays (now appearing in practically every PLC based system).
The coverage of commonly used PLCs has been increased, including the ever popular Allen Bradley PLCs, making this book an essential source of information both for professionals wishing to update their knowledge, as well as students who require a straight forward introduction to this area of control engineering.
Having read this book, readers will be able to:
* Identify the main design characteristics and internal architecture of PLCs
* Describe and identify the characteristics of commonly used input and output devices
* Explain the processing of inputs and outputs of PLCs
* Describe communication links involved with control systems
* Develop ladder programs for the logic functions AND, OR, NOT, NAND, NOT and XOR
* Develop functional block, instruction list, structured text and sequential function chart programs
* Develop programs using internal relays, timers, counters, shift registers, sequencers and data handling
* Identify safety issues with PLC systems
* Identify methods used for fault diagnosis, testing and debugging programs
Fully matched to the requirements of BTEC Higher Nationals, students are able to check their learning and understanding as they work through the text using the Problems section at the end of each chapter. Complete answers are provided in the back of the book.
* Thoroughly practical introduction to PLC use and application - not device specific, ensuring relevance to a wide range of courses
* New edition expanded with increased coverage of IEC 1131-3, industrial control scenarios and communications - an important aspect of PLC use
* Problems included at the end of each chapter, with a complete set of answers given at the back of the book
A Practical Guide to the Most Popular Agile Process
The Single-Source, Comprehensive Guide to Scrum for All Team Members, Managers, and Executives
If you want to use Scrum to develop innovative products and services that delight your customers, Essential Scrum is the complete, single-source reference you’ve been searching for. Leading Scrum coach and trainer Kenny Rubin illuminates the values, principles, and practices of Scrum, and describes flexible, proven approaches that can help you implement it far more effectively.
Whether you are new to Scrum or years into your use, this book will introduce, clarify, and deepen your Scrum knowledge at the team, product, and portfolio levels. Drawing from Rubin’s experience helping hundreds of organizations succeed with Scrum, this book provides easy-to-digest descriptions enhanced by more than two hundred illustrations based on an entirely new visual icon language for describing Scrum’s roles, artifacts, and activities.
Essential Scrum will provide every team member, manager, and executive with a common understanding of Scrum, a shared vocabulary they can use in applying it, and practical knowledge for deriving maximum value from it.
Design and implement an agile service-oriented enterprise computing infrastructure using the detailed information in this Oracle Press guide. Written by an Oracle ACE director, Oracle SOA Suite 11g Handbook uses a hands-on case study to illustrate each programming, management, and governance concept. Get expert techniques for modeling and implementing complex business processes and deploying and securing Web services, while maximizing decoupling and code reuse.Install Oracle SOA Suite 11g or migrate from a previous version Design and develop composite applications using SCA and SDO Model processes using BPEL, BPMN, and human task components Connect components through mapping and filtering with Oracle Mediator Apply the principles of event-driven architecture through complex event processing, the event delivery network, and Oracle Business Activity Monitoring server Benefit from the power of Java through the Spring component and the interaction with Oracle Validate, enrich, transform, route, and operate on data using the Oracle Service Bus Deploy, test, and manage composite applications from the Oracle Enterprise Manager control console
The book tells you everything you need to know about the logical design and operation, physical design and operation, performance characteristics and resulting design trade-offs, and the energy consumption of modern memory hierarchies. You learn how to to tackle the challenging optimization problems that result from the side-effects that can appear at any point in the entire hierarchy.
As a result you will be able to design and emulate the entire memory hierarchy.Understand all levels of the system hierarchy -Xcache, DRAM, and disk. Evaluate the system-level effects of all design choices.Model performance and energy consumption for each component in the memory hierarchy.
Presenting material refined over more than a decade of teaching parallel computing, author Gerassimos Barlas minimizes the challenge with multiple examples, extensive case studies, and full source code. Using this book, you can develop programs that run over distributed memory machines using MPI, create multi-threaded applications with either libraries or directives, write optimized applications that balance the workload between available computing resources, and profile and debug programs targeting multicore machines.Comprehensive coverage of all major multicore programming tools, including threads, OpenMP, MPI, and CUDADemonstrates parallel programming design patterns and examples of how different tools and paradigms can be integrated for superior performanceParticular focus on the emerging area of divisible load theory and its impact on load balancing and distributed systemsDownload source code, examples, and instructor support materials on the book's companion website
Designed to work on multiple platforms and with wide industry support, OpenCL will help you more effectively program for a heterogeneous future. Written by leaders in the parallel computing and OpenCL communities, Heterogeneous Computing with OpenCL explores memory spaces, optimization techniques, graphics interoperability, extensions, and debugging and profiling. It includes detailed examples throughout, plus additional online exercises and other supporting materials that can be downloaded at http://www.heterogeneouscompute.org/?page_id=7
This book will appeal to software engineers, programmers, hardware engineers, and students/advanced students.Explains principles and strategies to learn parallel programming with OpenCL, from understanding the four abstraction models to thoroughly testing and debugging complete applications.Covers image processing, web plugins, particle simulations, video editing, performance optimization, and more.Shows how OpenCL maps to an example target architecture and explains some of the tradeoffs associated with mapping to various architecturesAddresses a range of fundamental programming techniques, with multiple examples and case studies that demonstrate OpenCL extensions for a variety of hardware platforms
The text describes the fundamental technology in terms of hardware, software, and a set of principles to guide the development of Platform FPGA systems. The goal is to show how to systematically and creatively apply these principles to the construction of application-specific embedded system architectures. There is a strong focus on using free and open source software to increase productivity. Each chapter is organized into two parts. The white pages describe concepts, principles, and general knowledge. The gray pages provide a technical rendition of the main issues of the chapter and show the concepts applied in practice. This includes step-by-step details for a specific development board and tool chain so that the reader can carry out the same steps on their own.
Rather than try to demonstrate the concepts on a broad set of tools and boards, the text uses a single set of tools (Xilinx Platform Studio, Linux, and GNU) throughout and uses a single developer board (Xilinx ML-510) for the examples.Explains how to use the Platform FPGA to meet complex design requirements and improve product performancePresents both fundamental concepts together with pragmatic, step-by-step instructions for building a system on a Platform FPGAIncludes detailed case studies, extended real-world examples, and lab exercises
Whole chapters are dedicated to:
Debugging using the new CoreSight technology
Migrating effectively from the ARM7
The Memory Protection Unit
...and much more!
*The only available guide to programming and using the groundbreaking ARM Cortex-M3 processor
*Easy-to-understand examples, diagrams, quick reference appendices, full instruction and Thumb-2 instruction sets are all included
*The author, an ARM engineer on the M3 development team, teaches end users how to start from the ground up with the M3, and how to migrate from the ARM7
—Andrew Hedges, Tapulous
Semantic Web for the Working Ontologist transforms this information into the practical knowledge that programmers and subject domain experts need. Authors Allemang and Hendler begin with solutions to the basic problems, but don’t stop there: they demonstrate how to develop your own solutions to problems of increasing complexity and ensure that your skills will keep pace with the continued evolution of the Semantic Web.
• Provides practical information for all programmers and subject matter experts engaged in modeling data to fit the requirements of the Semantic Web.
• De-emphasizes algorithms and proofs, focusing instead on real-world problems, creative solutions, and highly illustrative examples.
• Presents detailed, ready-to-apply “recipes” for use in many specific situations.
• Shows how to create new recipes from RDF, RDFS, and OWL constructs.
Distributed Algorithms contains the most significant algorithms and impossibility results in the area, all in a simple automata-theoretic setting. The algorithms are proved correct, and their complexity is analyzed according to precisely defined complexity measures. The problems covered include resource allocation, communication, consensus among distributed processes, data consistency, deadlock detection, leader election, global snapshots, and many others.
The material is organized according to the system model—first by the timing model and then by the interprocess communication mechanism. The material on system models is isolated in separate chapters for easy reference.
The presentation is completely rigorous, yet is intuitive enough for immediate comprehension. This book familiarizes readers with important problems, algorithms, and impossibility results in the area: readers can then recognize the problems when they arise in practice, apply the algorithms to solve them, and use the impossibility results to determine whether problems are unsolvable. The book also provides readers with the basic mathematical tools for designing new algorithms and proving new impossibility results. In addition, it teaches readers how to reason carefully about distributed algorithms—to model them formally, devise precise specifications for their required behavior, prove their correctness, and evaluate their performance with realistic measures.
Filled with practice questions, CompTIA Cloud Essentials Certification Study Guide (Exam CLO-001) covers what you need to know--and shows you how to prepare--for this challenging exam.100% complete coverage of all official objectives for CLO-001 Exam Readiness Checklist--you're ready for the exam when all objectives on the list are checked off Exam Watch notes call attention to information about, and potential pitfalls in, the exam Two-Minute Drills for quick review at the end of every chapter
Covers all the exam topics, including:
Characteristics of Cloud Services from a Business Perspective * Cloud Computing and Business Value * Technical Perspective/Cloud Types * Steps to Successful Adoption of Cloud Computing * Impact and Changes of Cloud Computing on IT Service Management * Risk and Consequences of Cloud Computing
Electronic content includes:Complete MasterExam practice testing engine, featuring: One practice exam Detailed answers with explanations Score Report performance assessment tool Bonus downloadable MasterExam practice exam
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.
Organized into subareas to provide a more intuitive flow to the reader, this second edition adds more than a hundred pages of new content, including inductance models for interdigitated structures, design strategies for multi-layer power grids, advanced methods for efficient power grid design and analysis, and methodologies for simultaneously placing on-chip multiple power supplies and decoupling capacitors. The emphasis of this additional material is on managing the complexity of on-chip power distribution networks.
Morville discusses the Internet, GIS, and other network technologies that are coming together to make unlimited findability possible. He explores how the melding of these innovations impacts society, since Web access is now a standard requirement for successful people and businesses. But before he does that, Morville looks back at the history of wayfinding and human evolution, suggesting that our fear of being lost has driven us to create maps, charts, and now, the mobile Internet.
The book's central thesis is that information literacy, information architecture, and usability are all critical components of this new world order. Hand in hand with that is the contention that only by planning and designing the best possible software, devices, and Internet, will we be able to maintain this connectivity in the future. Morville's book is highlighted with full color illustrations and rich examples that bring his prose to life.
Ambient Findability doesn't preach or pretend to know all the answers. Instead, it presents research, stories, and examples in support of its novel ideas. Are we truly at a critical point in our evolution where the quality of our digital networks will dictate how we behave as a species? Is findability indeed the primary key to a successful global marketplace in the 21st century and beyond. Peter Morville takes you on a thought-provoking tour of these memes and more -- ideas that will not only fascinate but will stir your creativity in practical ways that you can apply to your work immediately.
"A lively, enjoyable and informative tour of a topic that's only going to become more important."
--David Weinberger, Author, Small Pieces Loosely Joined and The Cluetrain Manifesto
"I envy the young scholar who finds this inventive book, by whatever strange means are necessary. The future isn't just unwritten--it's unsearched."
--Bruce Sterling, Writer, Futurist, and Co-Founder, The Electronic Frontier Foundation
"Search engine marketing is the hottest thing in Internet business, and deservedly so. Ambient Findability puts SEM into a broader context and provides deeper insights into human behavior. This book will help you grow your online business in a world where being found is not at all certain."
--Jakob Nielsen, Ph.D., Author, Designing Web Usability: The Practice of Simplicity
"Information that's hard to find will remain information that's hardly found--from one of the fathers of the discipline of information architecture, and one of its most experienced practitioners, come penetrating observations on why findability is elusive and how the act of seeking changes us."
--Steve Papa, Founder and Chairman, Endeca
"Whether it's a fact or a figure, a person or a place, Peter Morville knows how to make it findable. Morville explores the possibilities of a world where everything can always be found--and the challenges in getting there--in this wide-ranging, thought-provoking book."
--Jesse James Garrett, Author, The Elements of User Experience
"It is easy to assume that current searching of the World Wide Web is the last word in finding and using information. Peter Morville shows us that search engines are just the beginning. Skillfully weaving together information science research with his own extensive experience, he develops for the reader a feeling for the near future when information is truly findable all around us. There are immense implications, and Morville's lively and humorous writing brings them home."
--Marcia J. Bates, Ph.D., University of California Los Angeles
"I've always known that Peter Morville was smart. After reading Ambient Findability, I now know he's (as we say in Boston) wicked smart. This is a timely book that will have lasting effects on how we create our future.
--Jared Spool, Founding Principal, User Interface Engineering
"In Ambient Findability, Peter Morville has put his mind and keyboard on the pulse of the electronic noosphere. With tangible examples and lively writing, he lays out the challenges and wonders of finding our way in cyberspace, and explains the mutually dependent evolution of our changing world and selves. This is a must read for everyone and a practical guide for designers."
--Gary Marchionini, Ph.D., University of North Carolina
"Find this book! Anyone interested in making information easier to find, or understanding how finding and being found is changing, will find this thoroughly researched, engagingly written, literate, insightful and very, very cool book well worth their time. Myriad examples from rich and varied domains and a valuable idea on nearly every page. Fun to read, too!
--Joseph Janes, Ph.D., Founder, Internet Public Library
Arduino is a programmable circuit board that is being used byeveryone from scientists, programmers, and hardware hackers toartists, designers, hobbyists, and engineers in order to addinteractivity to objects and projects and experiment withprogramming and electronics. This easy-to-understand book is anideal place to start if you are interested in learning more aboutArduino's vast capabilities. Featuring an array of cool projects,this Arduino beginner guide walks you through every step of each ofthe featured projects so that you can acquire a clear understandingof the different aspects of the Arduino board.Introduces Arduino basics to provide you with a solidfoundation of understanding before you tackle your firstprojectFeatures a variety of fun projects that show you how to doeverything from automating your garden's watering system toconstructing a keypad entry system, installing a tweeting cat flap,building a robot car, and much moreProvides an easy, hands-on approach to learning more aboutelectronics, programming, and interaction design for Makers of allages
Arduino Projects For Dummies is your guide to turningeveryday electronics and plain old projects into incredibleinnovations.
Get Connected! To find out more about Brock Craftand his recent Arduino creations, visit ahref="http://www.facebook.com/ArduinoProjectsForDummies"www.facebook.com/ArduinoProjectsForDummies/a
Levy profiles the imaginative brainiacs who found clever and unorthodox solutions to computer engineering problems. They had a shared sense of values, known as "the hacker ethic," that still thrives today. Hackers captures a seminal period in recent history when underground activities blazed a trail for today's digital world, from MIT students finagling access to clunky computer-card machines to the DIY culture that spawned the Altair and the Apple II.
John Morton is author of the popular PIC: Your Personal Introductory Course, also published by Newnes.
*The hands-on way of learning to use the Atmel AVR microcontroller
*Project work designed to put the AVR through its paces
*The only book designed to get you up-and-running with the AVR from square one
As an agile coach, you can help project teams become outstanding at agile, creating products that make them proud and helping organizations reap the powerful benefits of teams that deliver both innovation and excellence.
More and more frequently, ScrumMasters and project managers are being asked to coach agile teams. But it’s a challenging role. It requires new skills—as well as a subtle understanding of when to step in and when to step back. Migrating from “command and control” to agile coaching requires a whole new mind-set.
In Coaching Agile Teams, Lyssa Adkins gives agile coaches the insights they need to adopt this new mind-set and to guide teams to extraordinary performance in a re-energized work environment. You’ll gain a deep view into the role of the agile coach, discover what works and what doesn’t, and learn how to adapt powerful skills from many allied disciplines, including the fields of professional coaching and mentoring.
Coverage includesUnderstanding what it takes to be a great agile coach Mastering all of the agile coach’s roles: teacher, mentor, problem solver, conflict navigator, and performance coach Creating an environment where self-organized, high-performance teams can emerge Coaching teams past cooperation and into full collaboration Evolving your leadership style as your team grows and changes Staying actively engaged without dominating your team and stunting its growth Recognizing failure, recovery, and success modes in your coaching Getting the most out of your own personal agile coaching journey
Whether you’re an agile coach, leader, trainer, mentor, facilitator, ScrumMaster, project manager, product owner, or team member, this book will help you become skilled at helping others become truly great. What could possibly be more rewarding?
Assuming no prior knowledge of microcontrollers and introducing the PIC Microcontroller's capabilities through simple projects, this book is ideal for electronics hobbyists, students, school pupils and technicians. The step-by-step explanations and the useful projects make it ideal for student and pupil self-study: this is not just a reference book - you start work with the PIC microcontroller straight away.
The revised third edition focuses entirely on the re-programmable flash PIC microcontrollers such as the PIC16F54, PIC16F84 and the extraordinary 8-pin PIC12F508 and PIC12F675 devices.Demystifies the leading microcontroller for students, engineers an hobbyistsEmphasis on putting the PIC to work, not theoretical microelectronicsSimple programs and circuits introduce key features and commands through project work
It covers the revolutionary change from sequential to parallel computing, with a chapter on parallelism and sections in every chapter highlighting parallel hardware and software topics. It includes an appendix by the Chief Scientist and the Director of Architecture of NVIDIA covering the emergence and importance of the modern GPU, describing in detail for the first time the highly parallel, highly multithreaded multiprocessor optimized for visual computing. A companion CD provides a toolkit of simulators and compilers along with tutorials for using them, as well as advanced content for further study and a search utility for finding content on the CD and in the printed text. For the convenience of readers who have purchased an ebook edition or who may have misplaced the CD-ROM, all CD content is available as a download at bit.ly/nFXcLq.
This book is recommended for professional digital system designers, programmers, application developers, and system software developers; and undergraduate students in Computer Science, Computer Engineering and Electrical Engineering courses in Computer Organization, Computer Design, ranging from Sophomore required courses to Senior Electives.This Revised Fourth Edition of Computer Organization and Design has been updated with new exercises and improvements throughout suggested by instructors teaching from the bookCovers the revolutionary change from sequential to parallel computing, with a chapter on parallelism and sections in every chapter highlighting parallel hardware and software topicsIncludes an appendix by the Chief Scientist and the Director of Architecture of NVIDIA covering the emergence and importance of the modern GPU, describing in detail for the first time the highly parallel, highly multithreaded multiprocessor optimized for visual computing
Beginning with digital logic gates and progressing to the design of combinational and sequential circuits, the book uses these fundamental building blocks as the basis for the design of an actual MIPS processor. It provides practical examples of how to interface with peripherals using RS232, SPI, motor control, interrupts, wireless, and analog-to-digital conversion. SystemVerilog and VHDL are integrated throughout the text in examples illustrating the methods and techniques for CAD-based circuit design. There are also additional exercises and new examples of parallel and advanced architectures, practical I/O applications, embedded systems, and heterogeneous computing, plus a new appendix on C programming to strengthen the connection between programming and processor architecture.
This new edition will appeal to professional computer engineers and to students taking a course that combines digital logic and computer architecture.Updated based on instructor feedback with more exercises and new examples of parallel and advanced architectures, practical I/O applications, embedded systems, and heterogeneous computingPresents digital system design examples in both VHDL and SystemVerilog (updated for the second edition from Verilog), shown side-by-side to compare and contrast their strengthsIncludes a new chapter on C programming to provide necessary prerequisites and strengthen the connection between programming and processor architectureCompanion Web site includes links to Xilinx CAD tools for FPGA design, lecture slides, laboratory projects, and solutions to exercisesInstructors can also register at textbooks.elsevier.com for access to: Solutions to all exercises (PDF), Lab materials with solutions, HDL for textbook examples and exercise solutions, Lecture slides (PPT), Sample exams, Sample course syllabus, Figures from the text (JPG, PPT)
The authors of Social Engineering Penetration Testing show you hands-on techniques they have used at RandomStorm to provide clients with valuable results that make a real difference to the security of their businesses. You will learn about the differences between social engineering pen tests lasting anywhere from a few days to several months. The book shows you how to use widely available open-source tools to conduct your pen tests, then walks you through the practical steps to improve defense measures in response to test results.Understand how to plan and execute an effective social engineering assessment Learn how to configure and use the open-source tools available for the social engineer Identify parts of an assessment that will most benefit time-critical engagements Learn how to design target scenarios, create plausible attack situations, and support various attack vectors with technology Create an assessment report, then improve defense measures in response to test results
Online Multimedia Advertising: Techniques and Technologies unites recent research efforts in online multimedia advertising. This book include introductions to basic concepts and fundamental technologies for online advertising, basic multimedia technologies for online multimedia advertising, and modern multimedia advertising schemes, theories and technologies.
In Java: The Complete Reference, Eighth Edition, bestselling programming author Herb Schildt shows you everything you need to develop, compile, debug, and run Java programs. Updated for Java Platform, Standard Edition 7 (Java SE 7), this comprehensive volume covers the entire Java language, including its syntax, keywords, and fundamental programming principles. You'll also find information on key elements of the Java API library. JavaBeans, servlets, applets, and Swing are examined and real-world examples demonstrate Java in action. In addition, new Java SE 7 features such as try-with-resources, strings in switch, type inference with the diamond operator, NIO.2, and the Fork/Join Framework are discussed in detail.
Coverage includes:Data types and operators Control statements Classes and objects Constructors and methods Method overloading and overriding Interfaces and packages Inheritance Exception handling Generics Autoboxing Enumerations Annotations The try-with-resources statement Varargs Multithreading The I/O classes Networking The Collections Framework Applets and servlets JavaBeans AWT and Swing The Concurrent API Much, much more
WPF is the new presentation framework for Windows Vista that also works with Windows XP. It's a cornucopia of new technologies, which includes a new graphics engine that supports 3-D graphics, animation, and more; an XML-based markup language, called XAML, for declaring the structure of your Windows UI; and a radical new model for controls.
This second edition includes new chapters on printing, XPS, 3-D, navigation, text and documents, along with a new appendix that covers Microsoft's new WPF/E platform for delivering richer UI through standard web browsers -- much like Adobe Flash. Content from the first edition has been significantly expanded and modified. Programming WPF includes:Scores of C# and XAML examples that show you what it takes to get a WPF application up and running, from a simple "Hello, Avalon" program to a tic-tac-toe gameInsightful discussions of the powerful new programming styles that WPF brings to Windows development, especially its new model for controlsA color insert to better illustrate WPF support for 3-D, color, and other graphics effectsA tutorial on XAML, the new HTML-like markup language for declaring Windows UIAn explanation and comparison of the features that support interoperability with Windows Forms and other Windows legacy applications
WPF represents the best of the control-based Windows world and the content-based web world. Programming WPF helps you bring it all together.
With 25 years of experience in designing computing equipment, the author stresses the practical design of state machines. He clearly delineates each step of the structured and rigorous design principles that can be applied to practical applications. The book begins by reviewing the analysis of combinatorial logic and Boolean algebra, and goes on to define sequential machines and discuss traditional and alternative methods for synthesizing synchronous sequential machines. The final chapters deal with asynchronous sequential machines and pulse-mode asynchronous sequential machines. Because this volume is technology-independent, these techniques can be used in a variety of fields, such as electrical and computer engineering as well as nanotechnology.
By presenting each method in detail, expounding on several corresponding examples, and providing over 500 useful figures, Sequential Logic is an excellent tutorial on analysis and synthesis procedures.