{"title":"Systems analysis and design Books","description":"","products":[{"product_id":"software-development-pearls-9780137487776","title":"Software Development Pearls","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cb\u003eKarl Wiegers\u003c\/b\u003e is Principal Consultant with Process Impact, a software development consulting and training company in Happy Valley, Oregon. Previously, he spent eighteen years at Kodak, where he held positions as a photographic research scientist, software developer, software manager, and software process and quality improvement leader. Karl received a PhD in organic chemistry from the University of Illinois. Karl is the author of twelve previous books and has written many articles on software development, management, design, consulting, chemistry, and military history. Karl has served on the editorial board for \u003ci\u003eIEEE Software\u003c\/i\u003e magazine and as a contributing editor for \u003ci\u003eSoftware Development\u003c\/i\u003e magazine.\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003e\"This is a collection of lessons that Karl Wiegers has learned over his long and, I can say this honestly, distinguished career. It is a retrospective of all the good things (and some of the bad) he picked up along the way. However, this is not a recollection of 'It was like this in my day' aphorisms, but lessons that are relevant and will benefit anybody involved, even tangentially, in software development today. The book is surprising. It is not simply a list of pearls of wisdom--each lesson is carefully argued and explained. Each one carries an explanation of why it is important to you, and importantly, how you might bring the lesson to your reality.\" \u003cbr\u003e-- \u003cb\u003eJames Robertson\u003c\/b\u003e, author of \u003ci\u003eMastering the Requirements Process\u003c\/i\u003e \u003cbr\u003e \u003cbr\u003e\"They say experience is the best teacher. But experience is fraught with danger, because you'll make many expensive mistakes along its path. And experience is also a slow teacher. Experience's final lessons come just before you graduate--into retirement! \u003cbr\u003e \u003cbr\u003e\"Wouldn't it be great to gain a lifetime's experience early in your career, when it's most useful, without having to pay for the inevitable errors of your own experience? Much of Karl Wiegers's half-century in software and management has been as a consultant, where he's often been called upon to rectify debacles of other people's making. In \u003ci\u003eSoftware Development Pearls\u003c\/i\u003e, Karl lays out the most common and egregious types of maladies that he's run into. It's valuable to know where the most expensive potholes are and which potholes people keep hitting time and time again. \u003cbr\u003e \u003cbr\u003e\"Not just a disaster correspondent, Karl is well versed in the best techniques of business analysis, software engineering, and project management. So from Karl's experience and knowledge you'll gain concise but important insights into how to recover from setbacks as well as how to avoid them in the first place. \u003cbr\u003e \u003cbr\u003e\"Forty-six years ago I was lucky enough to stumble onto Fred Brooks's classic \u003ci\u003eThe Mythical Man-Month\u003c\/i\u003e, which gave me tremendous insights into my new career. Karl's book is in a similar vein, but broader in scope and more relevant for today's world. My own half-century of experience confirms that he's right on the money with the lessons that he's chosen for \u003ci\u003eSoftware Development Pearls\u003c\/i\u003e.\" \u003cbr\u003e-- \u003cb\u003eMeilir Page-Jones\u003c\/b\u003e, Senior Business Analyst, Wayland Systems Inc. \u003cbr\u003e \u003cbr\u003e\"Karl Wiegers has done it again! He's created yet another wonderful book full of well-rounded advice for software developers. His wisdom will be relatable to all development professionals and students--young and old, new and experienced. Although I've been doing software development for many years, this book brought timely reminders of things my team should do better. I cannot wait to have our new-to-the-job team members read this, so they can be better equipped in their learning journey. \u003cbr\u003e \u003cbr\u003e\" \u003ci\u003eSoftware Development Pearls\u003c\/i\u003e is rooted in actual experiences from many years of real projects, with a dose of thorough research to back up the lessons. Many software development books are so dry to read, but as with all of Karl's books, he keeps it light and engaging, chock-full of relatable stories and a few funny comments. You can read it from front to back or just dive into a particular section that's relevant to the areas you're looking to improve today. An enjoyable read plus practical advice--you can't go wrong!\" \u003cbr\u003e-- \u003cb\u003eJoy Beatty\u003c\/b\u003e, Vice President at Seilevel \u003cbr\u003e \u003cbr\u003e\"Karl Wiegers's \u003ci\u003eSoftware Development Pearls\u003c\/i\u003e achieves the challenging goal of capturing and explaining many insights that you're unlikely to be exposed to in your training, that most practitioners learn through the school of hard knocks, and yet are critical to developing great software. \u003cbr\u003e \u003cbr\u003e\"While the book's structure compels you to connect with your experience and identify how to shift your behavior as a result, it's the content that shines: a collection of 59+1 lessons that cover the broad landscape of the software development ecosystem. These insights will help you save time, collaborate more effectively, build better systems, and change your view on common misconceptions. \u003ci\u003eSoftware Development Pearls\u003c\/i\u003e is an easy read and is backed by a wide range of references to other experts who have discovered these same insights in their travels. \u003cbr\u003e \u003cbr\u003e\"These lessons truly are pearls: timelessly valuable elements of wisdom to make you better at developing great software, regardless of your role. You might consider getting two copies of the book: one for yourself, and one to leave where others on the team can pick it up and discover their own pearls.\" \u003cbr\u003e-- \u003cb\u003eJim Brosseau\u003c\/b\u003e, Clarrus \u003cbr\u003e \u003cbr\u003e\"This is an excellent book for anyone involved in software development, whether they're business analysts, software project managers or QA professionals. One of the brilliant (and unusual) aspects of the book is the way it is organized into self-contained lessons. Once you read them, they work like memes--memorable chunks of distilled knowledge that spring to mind when you need them. (This happened to me recently when I was discussing the need for a requirements competency on agile projects with a senior executive and immediately thought of Lesson #8, 'The overarching objective of requirements development is clear and effective communication.') From personal experience, I can attest to the value of lessons like #22, 'Many system problems take place at the interfaces,' but only because I was burned badly by not paying enough attention to them. Anyone in software development eventually accumulates hard-won lessons like these about what to do (and not do) in the future. This book will get you there with much less pain. As Karl Wiegers says in Lesson #7, 'The cost of recording knowledge is small compared to the cost of acquiring knowledge.' Not only is that good advice for practitioners, it also neatly captures why you should buy this book.\" \u003cbr\u003e-- \u003cb\u003eHoward Podeswa\u003c\/b\u003e, author of \u003ci\u003eThe Agile Guide to Business Analysis and Planning: From Strategic Plan to Continuous Value Delivery\u003c\/i\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003ci\u003eForeword xix\u003cbr\u003eAcknowledgments xxi\u003cbr\u003eAbout the Author xxiii\u003c\/i\u003e \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 1: Learning from Painful Experience 1\u003c\/b\u003e \u003cbr\u003eMy Perspective 1 \u003cbr\u003eAbout the Book 2 \u003cbr\u003eA Note on Terminology 4 \u003cbr\u003eYour Opportunity 5 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 2: Lessons About Requirements 7\u003c\/b\u003e \u003cbr\u003eIntroduction to Requirements 7 \u003cbr\u003eFirst Steps: Requirements 11 \u003cbr\u003eLesson 1: Get the requirements right or the project will fail 12 \u003cbr\u003eLesson 2: Requirements development delivers shared understanding 15 \u003cbr\u003eLesson 3: Stakeholder interests intersect at the requirements 17 \u003cbr\u003eLesson 4: Favor a usage-centric approach to requirements 21 \u003cbr\u003eLesson 5: Requirements development demands iteration 25 \u003cbr\u003eLesson 6: Agile requirements aren't different from other requirements 28 \u003cbr\u003eLesson 7: Recording knowledge is cheaper than acquiring it 33 \u003cbr\u003eLesson 8: Requirements are about clear communication 37 \u003cbr\u003eLesson 9: Requirements quality is in the eye of the beholder 41 \u003cbr\u003eLesson 10: Requirements must be good enough to reduce risk 44 \u003cbr\u003eLesson 11: People don't simply gather requirements 46 \u003cbr\u003eLesson 12: Elicitation brings the customer's voice to the developer 51 \u003cbr\u003eLesson 13: Telepathy and clairvoyance don't work 55 \u003cbr\u003eLesson 14: Large groups have difficulty agreeing on requirements 57 \u003cbr\u003eLesson 15: Avoid decibel prioritization 61 \u003cbr\u003eLesson 16: Define scope to know whether your scope is creeping 64 \u003cbr\u003eNext Steps: Requirements 69 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 3: Lessons About Design 71\u003c\/b\u003e \u003cbr\u003eIntroduction to Design 71 \u003cbr\u003eFirst Steps: Design 75 \u003cbr\u003eLesson 17: Design demands iteration 76 \u003cbr\u003eLesson 18: It's cheaper to iterate at higher levels of abstraction 79 \u003cbr\u003eLesson 19: Make products easy to use correctly, hard to use incorrectly 84 \u003cbr\u003eLesson 20: You can't optimize all desirable quality attributes 87 \u003cbr\u003eLesson 21: An ounce of design is worth a pound of recoding 92 \u003cbr\u003eLesson 22: Many system problems take place at interfaces 94 \u003cbr\u003eNext Steps: Design 100 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 4: Lessons About Project Management 103\u003c\/b\u003e \u003cbr\u003eIntroduction to Project Management 103 \u003cbr\u003eFirst Steps: Project Management 108 \u003cbr\u003eLesson 23: Work plans must account for friction 109 \u003cbr\u003eLesson 24: Don't give anyone an estimate off the top of your head 114 \u003cbr\u003eLesson 25: Icebergs are always larger than they first appear 116 \u003cbr\u003eLesson 26: Data strengthens your negotiating position 121 \u003cbr\u003eLesson 27: Use historical data to improve estimates 124 \u003cbr\u003eLesson 28: Don't change an estimate just to make someone happy 127 \u003cbr\u003eLesson 29: Stay off the critical path 129 \u003cbr\u003eLesson 30: Incomplete tasks get no partial credit 132 \u003cbr\u003eLesson 31: A project team needs flexibility to adapt to change 136 \u003cbr\u003eLesson 32: Uncontrolled project risks will control you 140 \u003cbr\u003eLesson 33: The customer is not always right 145 \u003cbr\u003eLesson 34: We do too much pretending in software 149 \u003cbr\u003eNext Steps: Project Management 151 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 5: Lessons About Culture and Teamwork 153\u003c\/b\u003e \u003cbr\u003eIntroduction to Culture and Teamwork 153 \u003cbr\u003eFirst Steps: Culture and Teamwork 158 \u003cbr\u003eLesson 35: Knowledge is not zero-sum 159 \u003cbr\u003eLesson 36: Don't make commitments you know you can't fulfill 163 \u003cbr\u003eLesson 37: Higher productivity requires training and better practices 166 \u003cbr\u003eLesson 38: The flip side of every right is a responsibility 171 \u003cbr\u003eLesson 39: Surprisingly little separation can inhibit communication 173 \u003cbr\u003eLesson 40: Small-team approaches don't scale to large projects 177 \u003cbr\u003eLesson 41: Address culture change during a change initiative 180 \u003cbr\u003eLesson 42: Engineering techniques don't work with unreasonable people 185 \u003cbr\u003eNext Steps: Culture and Teamwork 187 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 6: Lessons About Quality 189\u003c\/b\u003e \u003cbr\u003eIntroduction to Quality 189 \u003cbr\u003eFirst Steps: Quality 194 \u003cbr\u003eLesson 43: Pay for quality now or pay more later 195 \u003cbr\u003eLesson 44: High quality naturally leads to higher productivity 200 \u003cbr\u003eLesson 45: Organizations somehow find time to fix bad software 205 \u003cbr\u003eLesson 46: Beware the crap gap 207 \u003cbr\u003eLesson 47: Never let anyone talk you into doing a bad job 209 \u003cbr\u003eLesson 48: Strive to have peers find defects 213 \u003cbr\u003eLesson 49: A fool with a tool is an amplified fool 217 \u003cbr\u003eLesson 50: Rushed development leads to maintenance nightmares 221 \u003cbr\u003eNext Steps: Quality 224 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 7: Lessons About Process Improvement 225\u003c\/b\u003e \u003cbr\u003eIntroduction to Process Improvement 225 \u003cbr\u003eFirst Steps: Software Process Improvement 228 \u003cbr\u003eLesson 51: Watch out for \"Management by Businessweek\" 229 \u003cbr\u003eLesson 52: Ask not, \"What's in it for me?\" Ask, \"What's in it for us?\" 233 \u003cbr\u003eLesson 53: The best motivation for changing how people work is pain 236 \u003cbr\u003eLesson 54: Steer change with gentle pressure, relentlessly applied 238 \u003cbr\u003eLesson 55: Don't make all the mistakes other people already have 241 \u003cbr\u003eLesson 56: Good judgment and experience can trump a process 244 \u003cbr\u003eLesson 57: Shrink templates to fit your project 247 \u003cbr\u003eLesson 58: Learn and improve so the next project goes better 252 \u003cbr\u003eLesson 59: Don't do ineffective things repeatedly 256 \u003cbr\u003eNext Steps: Software Process Improvement 259 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eChapter 8: What to Do Next 261\u003c\/b\u003e \u003cbr\u003eLesson 60: You can't change everything at once 262 \u003cbr\u003eAction Planning 266 \u003cbr\u003eYour Own Lessons 267 \u003cbr\u003e \u003cbr\u003e \u003cb\u003eAppendix: Summary of Lessons 269\u003c\/b\u003e \u003cbr\u003e \u003cbr\u003e \u003ci\u003eReferences 273\u003cbr\u003eIndex 285\u003c\/i\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732341829975,"sku":"9780137487776","price":999.99,"currency_code":"GBP","in_stock":false}]},{"product_id":"software-architecture-and-decisionmaking-9780138249731","title":"Software Architecture and DecisionMaking","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003eSrinath \u003c\/strong\u003e\u003cstrong\u003ePerera\u003c\/strong\u003e has been an Apache open source developer for the last 20 years. He has played a major role in the architecture of Apache Axis2, Apache Airavata, WSO2 CEP (Siddhi), and WSO2 Choreo. He has designed two SOAP engines and helped build four. He is a committer (a developer who can commit to a code base) for Apache Axis, Axis2, Apache Geronimo, and Apache Airavata.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eHe joined WSO2 in 2009 after finishing his PhD. WSO2 products are used by many Fortune 500 companies such as airlines, banks, and governments. At WSO2, he has played an architecture review role for 10+ projects and 100+ releases. He reviewed hundreds of customer solution architectures and deployments and sat in on thousands of architecture reviews. He has published 40+ peer-reviewed research articles, which have been referenced by thousands of other research publications.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003eChapter 1: Introduction to Software Leadership\u003c\/strong\u003e   1\u003c\/p\u003e \u003cp\u003eRole of Judgment   1\u003c\/p\u003e \u003cp\u003eGoal of This Book   3\u003c\/p\u003e \u003cp\u003ePart I: Introduction   6\u003c\/p\u003e \u003cp\u003ePart II: Essential Background   7\u003c\/p\u003e \u003cp\u003ePart III: System Design   7\u003c\/p\u003e \u003cp\u003ePart IV: Putting Everything Together   8\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 2: Understanding Systems, Design, and Architecture\u003c\/strong\u003e   9\u003c\/p\u003e \u003cp\u003eWhat Is Software Architecture?    9\u003c\/p\u003e \u003cp\u003eHow to Design a System   11\u003c\/p\u003e \u003cp\u003eFive Questions   12\u003c\/p\u003e \u003cp\u003eSeven Principles: The Overarching Concepts   16\u003c\/p\u003e \u003cp\u003eDesigning for an Online Bookstore   24\u003c\/p\u003e \u003cp\u003eDesigning for the Cloud   27\u003c\/p\u003e \u003cp\u003eSummary   29\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 3: Mental Models for Understanding and Explaining System Performance\u003c\/strong\u003e   31\u003c\/p\u003e \u003cp\u003eA Computer System   32\u003c\/p\u003e \u003cp\u003eModels for Performance   33\u003c\/p\u003e \u003cp\u003eOptimization Techniques   41\u003c\/p\u003e \u003cp\u003eIntuitive Feel for Performance   46\u003c\/p\u003e \u003cp\u003eLeadership Considerations   46\u003c\/p\u003e \u003cp\u003eSummary   47\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 4: Understanding User Experience (UX)\u003c\/strong\u003e    49\u003c\/p\u003e \u003cp\u003eGeneral UX Concepts for Architects   49\u003c\/p\u003e \u003cp\u003eUX Design for Configurations   53\u003c\/p\u003e \u003cp\u003eUX Design for APIs   54\u003c\/p\u003e \u003cp\u003eUX Design for Extensions   56\u003c\/p\u003e \u003cp\u003eLeadership Considerations   57\u003c\/p\u003e \u003cp\u003eSummary   57\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 5: Macro Architecture: Introduction\u003c\/strong\u003e   59\u003c\/p\u003e \u003cp\u003eHistory of Macro Architecture   60\u003c\/p\u003e \u003cp\u003eModern Architectures   62\u003c\/p\u003e \u003cp\u003eMacro Architectural Building Blocks   63\u003c\/p\u003e \u003cp\u003eLeadership Considerations   66\u003c\/p\u003e \u003cp\u003eSummary   68\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 6: Macro Architecture: Coordination\u003c\/strong\u003e   69\u003c\/p\u003e \u003cp\u003eApproach 1: Drive Flow from Client   69\u003c\/p\u003e \u003cp\u003eApproach 2: Use Another Service   70\u003c\/p\u003e \u003cp\u003eApproach 3: Use Centralized Middleware   71\u003c\/p\u003e \u003cp\u003eApproach 4: Implement Choreography   71\u003c\/p\u003e \u003cp\u003eLeadership Considerations   73\u003c\/p\u003e \u003cp\u003eSummary   73\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 7: Macro Architecture: Preserving Consistency of State\u003c\/strong\u003e   75\u003c\/p\u003e \u003cp\u003eWhy Transactions?    75\u003c\/p\u003e \u003cp\u003eWhy Do We Need to Go Beyond Transactions?    76\u003c\/p\u003e \u003cp\u003eGoing Beyond Transactions   77\u003c\/p\u003e \u003cp\u003eBest Practices   80\u003c\/p\u003e \u003cp\u003eLeadership Considerations   81\u003c\/p\u003e \u003cp\u003eSummary   83\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 8: Macro Architecture: Handling Security\u003c\/strong\u003e   85\u003c\/p\u003e \u003cp\u003eUser Management   86\u003c\/p\u003e \u003cp\u003eInteraction Security   88\u003c\/p\u003e \u003cp\u003eStorage, GDPR, and Other Regulations   96\u003c\/p\u003e \u003cp\u003eSecurity Strategy and Advice   98\u003c\/p\u003e \u003cp\u003eLeadership Considerations   101\u003c\/p\u003e \u003cp\u003eSummary   103\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 9: Macro Architecture: Handling High Availability and Scale\u003c\/strong\u003e   105\u003c\/p\u003e \u003cp\u003eAdding High Availability   105\u003c\/p\u003e \u003cp\u003eUnderstanding Scalability   109\u003c\/p\u003e \u003cp\u003eScaling for a Modern Architecture: Base Solution   110\u003c\/p\u003e \u003cp\u003eScaling: The Tools of Trade   111\u003c\/p\u003e \u003cp\u003eBuilding Scalable Systems   113\u003c\/p\u003e \u003cp\u003eLeadership Considerations   117\u003c\/p\u003e \u003cp\u003eSummary   118\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 10: Macro Architecture: Microservices Considerations\u003c\/strong\u003e   119\u003c\/p\u003e \u003cp\u003eDecision 1: Handling Shared Database(s)    120\u003c\/p\u003e \u003cp\u003eDecision 2: Securing Microservices   122\u003c\/p\u003e \u003cp\u003eDecision 3: Coordinating Microservices    122\u003c\/p\u003e \u003cp\u003eDecision 4: Avoiding Dependency Hell   122\u003c\/p\u003e \u003cp\u003eLoosely Coupled, Repository-Based Teams as an Alternative to Microservices   125\u003c\/p\u003e \u003cp\u003eLeadership Considerations   126\u003c\/p\u003e \u003cp\u003eSummary   127\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 11: Server Architectures\u003c\/strong\u003e   129\u003c\/p\u003e \u003cp\u003eWriting a Service   129\u003c\/p\u003e \u003cp\u003eUnderstanding Best Practices for Writing a Service   130\u003c\/p\u003e \u003cp\u003eUnderstanding Advanced Techniques   132\u003c\/p\u003e \u003cp\u003eUsing These Techniques in Practice   143\u003c\/p\u003e \u003cp\u003eLeadership Considerations   146\u003c\/p\u003e \u003cp\u003eSummary   147\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 12: Building Stable Systems\u003c\/strong\u003e   149\u003c\/p\u003e \u003cp\u003eWhy Do Systems Fail, and What Can We Do About Them?    149\u003c\/p\u003e \u003cp\u003eHow to Handle Known Errors   151\u003c\/p\u003e \u003cp\u003eCommon Bugs   159\u003c\/p\u003e \u003cp\u003eHow to Handle Unknown Errors   161\u003c\/p\u003e \u003cp\u003eGraceful Degradation   163\u003c\/p\u003e \u003cp\u003eLeadership Considerations   163\u003c\/p\u003e \u003cp\u003eSummary   164\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 13: Building and Evolving the Systems\u003c\/strong\u003e   165\u003c\/p\u003e \u003cp\u003eGetting Your Hands Dirty   165\u003c\/p\u003e \u003cp\u003eCommunicating the Design   172\u003c\/p\u003e \u003cp\u003eEvolving the System: How to Learn from Your Users and Improve the System   172\u003c\/p\u003e \u003cp\u003eLeadership Considerations   175\u003c\/p\u003e \u003cp\u003eSummary   176\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cem\u003eIndex\u003c\/em\u003e   179\u003c\/p\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48732342419799,"sku":"9780138249731","price":28.79,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780138249731.jpg?v=1719996492"},{"product_id":"data-structures-using-python-9780190124083","title":"Data Structures using Python","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eData Structures using Python provides an introduction to design, analysis, and implementation of data structures using the powerful language Python. This book is designed for a first course on the subject. It is written for the undergraduate engineering students of Computer Science, Information Technology and allied disciplines.The book begins with an overview of the concept, need, nomenclature followed by discussion of Arrays, Stacks, Queues, Double Ended Queues, Linked List - all under a chapter on Linear Data Structures. This is followed by a chapter on Non-linear Data Structures where Heap, Hash Table, Trie, and Disjoint Sets are discussed. Trees, though a non-linear data structure, is discussed as a separate chapter to emphasize upon its importance. The last few chapters of the book discusses Graphs, Searching, and Sorting finally ending with an appendix on Python built-in class functions.\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e1. Data Structures-Introduction  1.1 Introduction 1.2 What is a Data Structure? 1.3 Why Do We Need Data Structures? 1.4 How to Study\/Prepare Data Structures? Why Does It Appear Difficult? 1.5 Different Types of Data Structures 1.6 How to Select a Data Structure? 1.7 How are Data Structures Implemented? 1.8 Real-Life Scenarios for Data Structures 1.6 Difference Between Data Structures and Database Management Systems 2. Abstract Data Type and Analysis  2.1 Introduction- Abstract Data Type 2.2 Complexity 2.2.1 Time Complexity 2.2.2 Space Complexity 2.3 Asymptotic Notations 2.3.1 Big-O 2.3.2 Big-Omega 2.3.3 Big-Theta 2.3.4 Small-O 2.3.5 Small-Omega 2.4 Recursion 2.4.1 How does Recursion Work? 2.4.2 Inefficient Recursion 2.4.3 Tail Call Elimination 2.4.4 Analysis of Recursive Functions 2.5 Applications of Recursion 3. Linear Data Structures  3.1 Arrays-Introduction 3.2 Declaration of Arrays 3.3 Implementation 3.3.1 Insertion 3.3.2 Deletion 3.3.3 Merging 3.3.4 Some More Operations 3.3.5 Complexity Analysis 3.4 Applications 3.5 Python Sequences 4. Continuous Memory Based Linear Data Structures  4.1 Introduction 4.2 Stack 4.2.1 Working-Push Operation 4.2.2 Working-Pop Operation 4.2.3 Working-Top Operation 4.3 Implementation of Stack Using Pointers 4.4 Complex Operations 4.4.1 Searching 4.4.2 Sorting 4.4.3 Complexity Analysis 4.5 Applications of Stacks 4.5.1 Application: Infix-to-Postfix Conversion 4.5.2 Application: Evaluation of Prefix Expression 4.6 Queues 4.7 ingle-Ended Queues 4.7.1 Working-Enqueue Operation 4.7.2 Working-Dequeue Operation 4.7.3 Working-Front Operation 4.7.4 Implementation of Single-Ended Queues using Lists 4.7.5 Complex Operations 4.7.6 Circular Array-based Implementation of Single-ended Queues 4.8 Double-Ended Queues 4.8.1 Working: Push_Front Operation 4.8.2 Working: Push_Back Operation 4.8.3 Working: Pop-Front Operation 4.8.4 Working: Pop_Back Operation 4.8.5 Working: Front Operation 4.8.6 Working: Rear Operation 4.8.7 Implementation of a Deque 4.8.8 Complex Operations 4.8.9 Complexity Analysis 4.9 Priority Queues 4.9.1 Implementation of Priority Queues 4.1 Applications of Queues 4.10.1 Application: Check if a Given String is a Palindrome 5. Pointer-Based Linear Data Structures  5.1 Introduction to Linked Lists 5.2 Singly Linked Lists 5.2.1 Working-Insert Node Operation 5.2.2 Working-Delete Node Operation 5.2.3 Working-ValueAt Operation 5.2.4 Implementation of Singly Linked Lists 5.2.5 Complex Operations-Searching 5.2.6 Complex Operations-Sorting 5.2.7 Complexity Analysis 5.3 Doubly Linked Lists 5.3.1 Working-Insert Node Operation 5.3.2 Working-Delete Node Operation 5.3.3 Working-ValueAt Operation 5.3.4 Implementation of Doubly Linked Lists 5.3.5 Complexity Analysis 5.4 Circular Linked Lists 5.4.1 Working-Insert Node Operation 5.4.3 Implementation of Circular Linked Lists 5.4.4 Complexity Analysis 5.5 Applications of Linked Lists 6. Pointer Based Hierarchical Data Structures  6.1 Introduction-Non-Linear Data Structures 6.2 TREES 6.2.1 Definitions 6.3 Binary Trees 6.3.1 Types of Binary Trees 6.4 Implementation of Binary Trees 6.4.1 Pointer-based Implementation 6.4.2 Array-based Implementation 6.4.3 Linked List-based Implementation 6.5 Traversal 6.5.1 In-order Traversal 6.5.2 Pre-order Traversal 6.5.3 Post-order Traversal 6.5.4 Level-ordered Traversal 6.6 Basic Operations 6.6.1 Inserting a Node 6.6.2 Deleting a Node 6.7 Threaded Binary Trees 6.8 Applications of Trees 7. Search Trees  7.1 Introduction 7.2 Binary Search Trees 7.2.1 Operation-Search Value 7.2.2 Operation-Insert a Node 7.2.3 Operation-Delete a Node 7.2.4 Implementation of Binary Search Trees 7.2.5 Complexity Analysis 7.3 Avl Trees 7.3.1 Operation-Search Value 7.3.2 Operation- Insert a Node 7.3.3 Operation-Deleting a Node 7.3.4 Implementation of AVL Trees 7.3.5 Complexity Analysis 7.4 Red-Black Trees 7.4.1 Operation-Insertion 7.4.2 Operation-Delete a Node 7.4.3 Implementation of Red-Black Trees 7.4.4 Complexity Analysis 7.5 Splay Trees 7.5.1 Operation-'Search a Value' or 'Splay a Value' 7.5.2 Operation-Insert a Node 7.5.3 Operation-Delete a Node 7.5.4 Implementation of Splay Trees 7.5.5 Complexity Analysis 7.6 B-TREES 7.6.1 In-order Traversal 7.6.2 Operation-Search a Node 7.6.3 Operation-Insert a Node 7.6.4 Operation-Delete a Node 7.6.5 Implementation of B-Trees 7.6.6 Complexity Analysis 7.7 Applications of Search Trees 8. Priority Queues and Heaps  8.1 Introduction-Heap 8.2 Binary Heaps 8.2.1 Operation-Insertion 8.2.2 Operation-Deletion 8.2.3 Implementation of Max Heap 8.2.4 Complexity Analysis 8.3 Leftist Heaps 8.3.1 Operation-Merging 8.3.2 Operation-Insertion 8.3.3 Operation-Deletion 8.3.4 Implementation of Leftist Heaps 8.3.5 Complexity Analysis 8.4 Priority Queues Using Heaps 8.5 Applications of Heaps 9. Other Non-Linear Data Structures 9.1 Introduction-Non-Linear, Non-Hierarchical Data Structures 9.2 Trie 9.2.1 Insertion of a Key 9.2.2 Searching a Key 9.2.3 Implementation 9.2.4 Complexity Analysis 9.2.5 Applications of Trie 9.3 Dictionary 9.3.1 Inserting a Key and its Value 9.3.2 Deleting a Key along with Value 9.3.3 Merging Dictionaries 9.3.4 Handling Tabular Data 9.3.5 Implementation 9.3.6 Complexity 9.3.7 Applications of Dictionary 9.4 Hash Table 9.4.1 Linear Probing 9.4.2 Chaining the Elements 9.4.3 Implementation 9.4.4 Complexity 9.4.5 Applications of Hash Tables 9.5 Sets 9.5.1 Operation-Insertion of an Element 9.5.2 Operation-Removal of Elements 9.5.3 Binary Set Operations 9.5.4 Other Utility Functions 9.5.5 Implementation 9.5.6 Complexity Analysis 9.5.7 Applications of Set 9.5.8 Variants of Set Data Structure 9.5 Counter\/Multisets 9.5.1 Accessing 9.5.2 Binary Operations on Counters 10. Memory Management 10.1 Introduction-Memory Management 10.2 Data Structures in Memory Management 10.3 B+ Trees 10.3.1 Working 10.3 Memory Hierarchy and Caching 11. Graphs 11.1 Graph-Introduction 11.2 Components of a Graph 11.4 Graph Representation 11.4.1 Linked List Based Representation 11.4.2 Matrix Based Representation 11.2.3 Pointer Based Representation 11.2.4 Performance Comparison of Graph Representation 11.3 Types of Graph 11.4 Working 11.4.1 Insertion of a node 11.4.2 Insertion of an edge 11.4.3 Deletion of an edge 11.4.4 Deletion of a node 11.5 Traversal 11.5.1 Depth First Search 11.5.2 Breadth First Search 11.7 Implementation of Graph 11.7.1 Adjacency List Based Representation 11.7.2 Adjacency Matrix Based Representation 11.7.3 Incidence Matrix Based Representation 11.8 Complexity Analysis 11.9 Topological Sorting 11.9.1 Implementation 11.9.2 Complexity Analysis 11.1 Spanning Tree 11.10.1 Kruskal Algorithm 11.10.2 Prim's Algorithm 11.11 Shortest Distance 11.11.1 Dijkstra's Algorithm 11.11.2 Floyd-Warshall Algorithm 11.12 Graph Connectivity 11.12 Applications Of Graph 12. Sorting 12.1 Introduction to Sorting 12.2 Importance of Sorting Algorithms 12.3 Exchange Sort 12.3.1 Bubble Sort 12.4 Selection Sort 12.4.1 Straight Selection Sort 12.4.2 Heap Sort 12.5 Insertion Sort 12.5.1 Simple Insertion Sort 12.5.2 Shell Sort 12.6 Divide and Conquer 12.6.1 Merge Sort 12.6.2 Quick Sort 12.7 Distributed Sort 12.7.1 Bucket Sort 12.7.2 Counting Sort 12.7.3 Radix Sort 12.8 Comparison of Sorts 13. Searching 13.1 Introduction-What is Searching? 13.2 Linear Search 13.2.1 Working 13.2.2 Implementation 13.3.3 Complexity Analysis 13.3 Binary Search 13.3.1 Working 13.3.2 Implementation 13.3.3 Complexity Analysis 13.4 Tree-Based Search 13.5 Hashing 13.5.1 Working 13.5.2 Problem of Collision 13.5.4 Implementation 13.5.5 Complexity Analysis 13.6 Case Studies of Searching Techniques ANNEXURE 1 - Python classes and built in Functions","brand":"OUP India","offers":[{"title":"Default Title","offer_id":48732533948759,"sku":"9780190124083","price":75.99,"currency_code":"GBP","in_stock":false}]},{"product_id":"thoughtful-interaction-design-a-design-perspective-on-information-technology-9780262622097","title":"Thoughtful Interaction Design A Design","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eThe authors of \u003ci\u003eThoughtful Interaction Design\u003c\/i\u003e go beyond the usual technical concerns of usability and usefulness to consider interaction design from a design perspective. The shaping of digital artifacts is a design process that influences the form and functions of workplaces, schools, communication, and culture; the successful interaction designer must use both ethical and aesthetic judgment to create designs that are appropriate to a given environment. This book is not a how-to manual, but a collection of tools for thought about interaction design.\u003cp\u003eWorking with information technology—called by the authors the material without qualities—interaction designers create not a static object but a dynamic pattern of interactivity. The design vision is closely linked to context and not simply focused on the technology. The authors' action-oriented and context-dependent design theory, drawing on design theorist Donald Schön's concept of the reflective practitioner, hel\u003c\/p\u003e","brand":"MIT Press Ltd","offers":[{"title":"Default Title","offer_id":48733479403863,"sku":"9780262622097","price":27.55,"currency_code":"GBP","in_stock":true}]},{"product_id":"building-evolutionary-architectures-9781492097549","title":"Building Evolutionary Architectures","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48739719414103,"sku":"9781492097549","price":999.99,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781492097549.jpg?v=1720052987"},{"product_id":"fundamentals-of-usercentered-design-9781498764360","title":"Fundamentals of UserCentered Design","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eThere has been some solid work done in the area of User-Centered Design (UCD) over the last few years. What's been missing is an in-depth, comprehensive textbook that connects UCD to usability and User Experience (UX) principles and practices. This new textbook discusses a theoretical framework in relation to other design theories. It provides a repeatable, practical process for implementation, offering numerous examples, methods, and case studies for support, and it emphasizes best practices in specific environments, including mobile and web applications, print products, as well as hardware.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003e\u003cp\u003e\"Yes! This is the book I have been looking for over the past 10 years of teaching media design. It is sufficiently practical but also with a high-level of theoretical underpinnings.\"\u003cbr\u003e— \u003cem\u003eBrett Oppegaard, University of Hawaii, USA\u003c\/em\u003e\u003c\/p\u003e\u003cp\u003e\"\u003cem\u003eFundamentals\u003c\/em\u003e of \u003ci\u003eUser-Centered Design: A Practical Approach\u003c\/i\u003e is a \"one-stop shop\" for students and practitioners who need a comprehensive, well-written introduction to UCD principles and usability testing practices from authors who clearly have some \"dirt under their fingernails.\" It’s full of excellent examples and practical illustrations from industry, and it’s written in a very comprehensible voice that even basic undergraduate students can understand.\"\u003cbr\u003e— \u003cem\u003eTharon W. Howard, Clemson University, USA\u003c\/em\u003e\u003c\/p\u003e\u003cbr\u003e\u003cp\u003e\"Yes! This is the book I have been looking for over the past 10 years of teaching media design. It is sufficiently practical but also with a high-level of theoretical underpinnings.\"\u003cbr\u003e— \u003cem\u003eBrett Oppegaard, University of Hawaii, USA\u003c\/em\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\"\u003cem\u003eFundamentals\u003c\/em\u003e of \u003ci\u003eUser-Centered Design: A Practical Approach\u003c\/i\u003e is a \"one-stop shop\" for students and practitioners who need a comprehensive, well-written introduction to UCD principles and usability testing practices from authors who clearly have some \"dirt under their fingernails.\" It’s full of excellent examples and practical illustrations from industry, and it’s written in a very comprehensible voice that even basic undergraduate students can understand.\"\u003cbr\u003e— \u003cem\u003eTharon W. Howard, Clemson University, USA\u003c\/em\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003eIntroduction to User-Centered Design; Origins; UCD Principles; Research Users; Assess the Situation; Balance and Filter Design Features; Build Out an Operative Image; Test the Design; RIDE (Report, Iterate, Deploy, Evaluate); International UCD; Hardware UCD; Print UCD; Mobile UCD; UCD Teams; UCD Tools and Technologies; Index\u003c\/p\u003e","brand":"Taylor \u0026 Francis Inc","offers":[{"title":"Default Title","offer_id":48739782328663,"sku":"9781498764360","price":130.06,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781498764360.jpg?v=1791472730"},{"product_id":"designing-apis-with-swagger-and-openapi-9781617296284","title":"Designing APIs with Swagger and OpenAPI","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eUsing standards like OpenAPI, you can provide reliable, easy-to-use interfaces that allow other developers safe, controlled access to your software. \u003ci\u003e\u003cb\u003eDesigning APIs withSwagger and OpenAPI\u003c\/b\u003e \u003c\/i\u003eis a hands-on primer to properly designing and describing your APIs using the most widely-adopted standard.  \u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003ci\u003eDesigning APIswith Swagger and OpenAPI \u003c\/i\u003e\u003c\/b\u003eintroduces you to a design-first paradigm that will teach you the best practices for describing and designing RESTful APIs using OpenAPI and Swagger. You'll build upon progressively-enhanced examples as you learn to describe an API andthen extend it in the kind of scenarios you'd encounter in the real world. As you go, you'll use the popular Open Source tools to define APIs, generate documentation, and build other developer-friendly components like mocks, server stubs, and client SDKs.\u003c\/p\u003e \u003cp\u003eModern web applications are made of multiple components, services, and servers connected through APIs, often using HTTP and REST as their primary interfaces. These architectures rely on APIs that allow access to the functionality of a component without requiring developers to understand the details of how it was implemented. The OpenAPI specification standardizes how you describe RESTful APIs. OpenAPI is vendor-neutral and has been adopted bybig tech companies such as Google, Microsoft, and Amazon.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003e\u003cp\u003e“A great introduction to the design process of APIs by helping youto understand OpenAPI and Swagger.” \u003cb\u003eBen McNamara\u003c\/b\u003e   \u003c\/p\u003e \u003cp\u003e“The book's instructional design was very well thought out.Instructions are clear and the topics flow quite smoothly.” \u003cb\u003eTed Hagos    \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e“I would recommend this book to anyone interested in learningabout API design!” \u003cb\u003eTravis Wisnasky    \u003c\/b\u003e\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740644815191,"sku":"9781617296284","price":999.99,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617296284.jpg?v=1791474867"},{"product_id":"elasticsearch-in-action-9781617299858","title":"Elasticsearch in Action","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cb\u003eBuild powerful, production-ready search applications using the incredible features of Elasticsearch.\u003c\/b\u003e   \u003cbr\u003e   \u003cbr\u003eIn    \u003ci\u003e\u003cb\u003eElasticSearch in Action, Second Edition\u003c\/b\u003e\u003c\/i\u003e you will discover:   \u003cbr\u003e   \u003cbr\u003e   \u003cul\u003e\n\u003cli\u003eArchitecture, concepts, and fundamentals of Elasticsearch\u003c\/li\u003e\n\u003cli\u003eInstalling, configuring and running Elasticsearch and Kibana\u003c\/li\u003e\n\u003cli\u003eCreating an index with custom settings\u003c\/li\u003e\n\u003cli\u003eData types, mapping fundamentals, and templates\u003c\/li\u003e\n\u003cli\u003eFundamentals of text analysis and working with text analyzers\u003c\/li\u003e\n\u003cli\u003eIndexing, deleting, and updating documents\u003c\/li\u003e\n\u003cli\u003eIndexing data in bulk and reindexing and aliasing operations\u003c\/li\u003e\n\u003cli\u003eLearning search concepts, relevancy scores and similarity algorithms\u003c\/li\u003e\n\u003c\/ul\u003e   \u003cbr\u003e   \u003ci\u003e\u003cb\u003eElasticsearch in Action, Second Edition\u003c\/b\u003e\u003c\/i\u003e teaches you to build scalable search applications using Elasticsearch. This completely new edition explores Elasticsearch fundamentals from the ground up. You'll deep dive into design principles, search architectures, and Elasticsearch's essential APIs. Every chapter is clearly illustrated with diagrams and hands-on examples. You'll even explore real-world use cases for full text search, data visualisations, and machine-learning.      about the technology  Modern search seems like magic. You type a few words and the search engine appears to know what you want. With the Elasticsearch near-real-time search and analytics engine, you can give your users this magical experience without having to do complex low-level programming or understand advanced data science algorithms. You just install it, tweak it, and get on with your work.    about the book    \u003ci\u003e\u003cb\u003eElasticsearch in Action, Second Edition\u003c\/b\u003e\u003c\/i\u003e is a hands-on guide to developing fully functional search engines with Elasticsearch and Kibana. Rewritten for the latest version of Elasticsearch, this completely new second edition explores Elasticsearch's high-level architecture, reveals infrastructure patterns, and walks through the search and analytics capabilities of numerous Elasticsearch APIs.  \u003cbr\u003e  \u003cbr\u003eIt covers dozens of awesome techniques, such as:  \u003cbr\u003e  \u003cbr\u003e  \u003cul\u003e\n\u003cli\u003eDeveloping a multitude of search queries\u003c\/li\u003e\n\u003cli\u003eWorking with various query types\u003c\/li\u003e\n\u003cli\u003eEnabling search results with sorting and pagination functionality\u003c\/li\u003e\n\u003cli\u003eWriting and working with advanced search queries\u003c\/li\u003e\n\u003cli\u003eWorking analytics and aggregations\u003c\/li\u003e\n\u003cli\u003eDeveloping high level visualizations in Kibana\u003c\/li\u003e\n\u003cli\u003eConfiguring and scaling the clusters, and tuning performance\u003c\/li\u003e\n\u003c\/ul\u003e  \u003cbr\u003eYou'll quickly progress from the basics of installation and configuring clusters, to indexing documents, advanced aggregations, and putting your servers into production. By the time you're done, you'll be ready to build amazing search engines for your clients that take advantage of Elasticsearch's modern features.    about the author    \u003cb\u003eMadhusudhan Konda\u003c\/b\u003e is a full-stack lead engineer, architect, mentor, and conference speaker. He delivers live online training on Elasticsearch and the Elastic Stack.    \u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003e'Elasticsearch is a complicated topic to master, but the author introduces all of Elasticsearch's tenets in a very relatable way, piece by piece, with lots of examples that can be executed in seconds.'  \u003cb\u003eSergio Fernandez\u003c\/b\u003e    \u003cbr\u003e    'The author explains the content very well, with proper and accurate illustrations to assist.'  \u003cb\u003eAdam Wan\u003c\/b\u003e    \u003cbr\u003e    'A gentle introduction to the technology.'  \u003cb\u003eGiovanni Costagliola\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003etable of contents      READ IN LIVEBOOK  1OVERVIEW      READ IN LIVEBOOK  2GETTING STARTED      READ IN LIVEBOOK  3ARCHITECTURE      READ IN LIVEBOOK  4MAPPING      READ IN LIVEBOOK  5WORKING WITH DOCUMENTS      READ IN LIVEBOOK  6INDEXING OPERATIONS      READ IN LIVEBOOK  7TEXT ANALYSIS      8 TERM LEVEL SEARCH      9 FULL TEXT SEARCH      10 ADVANCED SEARCH      11 AGGREGATIONS      12 KIBANA VISUALISATIONS      13 MACHINE LEARNING      14 TIME SERIES ANALYTICS      15 PERFORMANCE TUNING      16 ADMINISTRATION    APPENDIXES    READ IN LIVEBOOK  APPENDIX A: INSTALLATION      APPENDIX B: NATIVE CLIENTS      APPENDIX C: HOSTING      APPENDIX D: ELASTICSEARCH VS SOLR","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48740647240023,"sku":"9781617299858","price":999.99,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617299858.jpg?v=1791474869"},{"product_id":"design-and-applications-of-active-integrated-antennas-9781630813581","title":"Design and Applications of Active Integrated","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eUsing Active Integrated Antenna (AIA) instead of the conventional sub-system designs of individual components will provide a system designer with more features and enhance performance. This book explains how active integration and co-design between the active components (amplifier, oscillator, mixer, diodes) and the antenna can provide better power transfer, higher gains, increased efficiencies, switched beam patterns and smaller design footprints.   As new antenna designs will require closer integration with other radio electronics, AIA are expected to be used in future wireless terminals. The book introduces the fundamental aspects of AIA and discusses in detail the various types of AIA, such as oscillator, amplifier, mixer, transceiver, frequency reconfigurable, on-chip and on package, as well as non-foster AIA covering various frequency bands and wireless standards. It presents co-design procedures for AIA applied to multiple-input-multiple-output (MIMO) front ends as well as examples of narrowband and wideband designs.   This is the first book to elaborate on AIA design with detailed step-by-step tutorials and the use of software packages (provided in an accompanying CD). It contains real world cases and illustrations, and is a must-have title for practicing and research engineers.\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003eAn excellent new references is a recommended pick for college-level collections strong in electrical engineering and antenna design, offering engineers solid discussions of theory, applications, and different systems and their management. Mohammad S. Sharawi and Oualid Hammi's Design and Applications of Active Integrated Antennas offers professionals the latest methods in designing active integrated antennas for wireless devices, considering design protocol, interfaces between active components, increasing efficiency, and working between the active and passive parts of AIA. Design examples for such systems cover both narrowband and wideband applications and incorporate the latest design methods and applications. Both are solid references college-level electrical engineers will find essential. * Midwest Book Review *\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003eIntroduction; Impedance Matching Methods; Amplifier Design; Antenna Fundamentals; Active Integrated Antennas; A Co-Design Approach for Designing AIA.","brand":"Artech House Publishers","offers":[{"title":"Default Title","offer_id":48740695736663,"sku":"9781630813581","price":128.25,"currency_code":"GBP","in_stock":false}]},{"product_id":"business-analysis-techniques-123-essential-tools-for-success-9781780175690","title":"Business Analysis Techniques: 123 essential tools","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003eBusiness Analysis has never been more important, and valuable, to organisations as they strive to adapt to an ever-changing and faster-changing environment. This expanded edition of Business Analysis Techniques provides detailed guidance on the range and application of the techniques available to assist business analysts and others in their work.\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eBusiness Analysis Techniques provides a foundation for the effective specification, design and development of digital solutions, solutions that are based on a proper understanding of the real business need and the requirements for solutions to meet them. With 123 of the most widely used techniques covered, this book is an essential resource for any business analyst.\u003c\/p\u003e \u003cp\u003eThis book:\u003c\/p\u003e \u003cul\u003e\n\u003cli\u003ePlaces a large number of techniques into the context of the Business Analysis Service Framework, providing clear guidance on the applicability and use of 123 of the most-used techniques available in the business analyst’s toolbox\u003c\/li\u003e\n\u003cli\u003eProvides detailed information on the use of each technique\u003c\/li\u003e\n\u003cli\u003eAccessibly written with worked examples of all of the techniques described\u003c\/li\u003e\n\u003cli\u003eOffers practical tips for using and adapting the techniques in the real world\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003ePair it with Business Analysis, also published BCS for even greater insights.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003eBusiness Analysts have always had a wealth of techniques at their disposal but how the toolkit has grown! If you are looking to shine as a business analyst you will be well aware of the importance of becoming the master of our rich BA toolkit, know what technique to use for each occasion and how to use it to good effect. This upgrade on a ‘must have’ BA classic extends the toolkit by another 24 techniques! I encourage all BAs to use this book to build their confidence in their own professionalism and be regarded as masters of their BA toolkit. -- Ian Richards, Director, Business Analysis, Capita\u003cbr\u003eI found this new edition to be crammed full of tried, tested and trusted business analysis techniques. Yet again giving the BA more tools for analysis success. Each technique is described in full, with scenarios to bring them to life, along with developed examples. The narrative does not shy away from giving you technique limitations or when to blend techniques together to achieve a better analysis outcome. It’s the BA book I return to again and again. -- Sarah Bullen, Head of Business Analysis, BBC, Technology and Digital Products Group, UK\u003cbr\u003eThe latest version brings even more techniques to bear, extending to areas of user experience, process improvement and testing; helpfully mapped against key project phases. This book is a must have resource for all BAs at any stage of their career. -- Jamie Clouting, Lead Consultant, BAE Systems Applied Intelligence\u003cbr\u003eBeware, this will very quickly become the most thumbed and tabbed book in your collection. For me it’s a must-have companion, especially for brushing up on a technique you’ve not used in a while or to signpost community members seeking advice to a specific page. Also fond of the addition of aligning techniques to the BA Service Framework, which makes it even easier to find new approaches. -- Jamie Toyne, Head of Business Analysis, Ministry of Justice - Digital and Technology\u003cbr\u003eA treasure trove of techniques for every Business Analyst (BA). Essential reading for anyone entering the profession and an excellent refresher for seasoned BAs. All the techniques are laid out in-synch with most project delivery models making it easy to navigate your way through. Each technique is described with some great thoughts on how to use it. Brilliant to see all the available techniques laid out in one place. -- Tazeem Wafa, Principal Business Analyst, Bank of England\u003cbr\u003eThis is THE body of knowledge about business analysis techniques. Comprehensive and comprehensible. The presentation of techniques is encyclopaedic, however the authors explain not only what the technique is and how it works, but why, and in what circumstances, you would use it. The use of examples helps enormously to understand how to apply the techniques. For any business analyst looking to expand his\/her skill set — and I recommend all business analysts should do so — this is the book. -- James Robertson, co-author of 'Mastering the Requirements Process'\u003cbr\u003eGood chefs have their own variations of classic recipes, but a set of standard recipes is the firm basis for any chef. This book offers such a standard. Sometimes a technique is carried out “how we always do it” but having a clear and complete set of the original definitions helps to keep to the right track. If ever in doubt, you can always begin with, or go back to, the techniques as described here! -- Danny Kalkhoven, Le Blanc Advies\u003cbr\u003eMany business analysts still make the mistake of trying to do their job using only a couple of the most basic techniques. Today’s business problems demand that you have far more in your toolkit. This business analysis classic is something every business analyst should have ready to hand when trying to solve a new problem or looking for existing ways to tackle old, intractable ones, and every edition becomes more invaluable. -- Kevin Brennan, Chief Business Architect, Aligned Outcomes \u0026amp; Former EVP at IIBA, led development of BABOK Guide versions 2 and 3\u003cbr\u003eEach new edition of Business Analysis Techniques introduces more ideas and tools than the last. But that doesn’t mean it’s carrying any extra weight. On the contrary, it’s pure unadulterated goodness – just the essentials that you need to know about each technique, whether it’s a very well-known standard or something more obscure. The most comprehensive and useful reference work on the ‘mental furniture’ that a BA needs – I recommend it. -- Nick de Voil, Director, De Voil Consulting\u003cbr\u003eA must have in your bookshelf if you are looking to improve your skills in business analysis. 123 tools that can be used on their own or in combination makes it the perfect reference book for hands-on consultants. -- Peter Gerstbach, Founder \u0026amp; Managing Director, Gerstbach Business Analyse GmbH\u003cbr\u003eThis is the most comprehensive collection of business analyst techniques I’ve come across. The authors have clearly gone to a lot of trouble to balance detail with brevity, and they found just the right balance. The descriptions provide clear direction in the why and how of all the common business analysis techniques and many more. This is a must have resource in the library of every professional business analyst. -- Carl Sudholz, Digital Transformation Consultant and Senior Business Analyst, AGContext® Digital Transformations\u003cbr\u003eIf you need to put together a business analysis toolkit to use in your forthcoming transformation initiative – as an individual BA, or as a BA team – then Business Analysis Techniques is the perfect source to start with. It is THE book to help you widen your perspectives, boost your curiosity and empathy. -- Milena Mileva, Managing Consultant, PMBA\u003cbr\u003eBusiness analysis practitioners need to learn and utilize the various techniques to create value for the business. This book provides a detailed explanation of various techniques that a Business Analyst can apply to the initiatives to add value to the stakeholders. The techniques are categorically defined and easy to understand. Keep learning! -- Deepak Gupta, Principal Consultant, Wipro Technologies, India\u003cbr\u003eSimple, practical \u0026amp; accessible. Each of the tools are articulated \u0026amp; linked in a way that is quick and easy to understand without the need to wade through pages of theory. The concise examples bring to life when \u0026amp; how to use each of the analysis techniques. Whether you are starting out on your business change career, or you are a seasoned professional, this new volume is an essential reference tool for anyone looking to bring discipline \u0026amp; structure to their analysis. -- Christian Hunter, Business Analysis Services Director, Infinity Associates\u003cbr\u003eThe 123 business analysis techniques described in this book are useful for both the seasoned senior business analyst and the less experienced junior business analyst. It is well written, descriptive and provides excellent examples of what, how, why and when to use the appropriate analysis techniques dependent on the task, business need or scenario encountered. I found the book easy to read and I look forward to applying these business analysis techniques into my day-to-day life as a business analyst. -- Allamin Ali, Senior Business Analyst, Welsh Government, United Kingdom\u003cbr\u003eMy original copy is always close to hand. Where else would I find so many techniques all in one place, excellently summarised and  demonstrated? But the icing on the cake is that techniques are now grouped by Business Analysis Service Framework categories. It's a no-brainer tool for supporting my team to provide the best possible BA service and also nicely complements my Delivering Business Analysis handbook. -- Karen Newnham, Head of Business Analysis, DVSA\u003cbr\u003eThis book covers some key elements of business analysis which are often overlooked - the significance of emotional factors in customer journey mapping, stakeholder perspectives, negotiation, and in conflict resolution. Describing concepts like ‘Weltanschauung’, which refers to the fundamental cognitive orientation of an entity encompassing a holistic point of view, allows readers to employ such theories regardless of which sector or industry they work with. If, like me, you believe in exploring the power of psychology for mutually beneficial outcomes at the workplace, this book will help you uncover some true gems. -- Zeinab Shabbir Tinwala, Director \u0026amp; CEO, Starsons International (Pvt) Ltd, Business Architect, Corporate Trainer, Career Coach\u003cbr\u003eI found this book very interesting and exciting; the writing style is captivating, accessible and full of intriguing knowledge. The techniques are introduced simply, yet are very rich, specific and comprehensive. All techniques are articulated and linked to one another, with real-life examples. Overall, it’s a highly practical and easy to understand reference, not only for senior business analysts, but also for beginners. Highly recommended! -- Irene Gweed, Business Analyst Lead, Product Owner \u0026amp; Business Analysis Trainer, Egypt\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003e1. Strategic Context\u003c\/p\u003e \u003cp\u003e2. Situation Investigation\u003c\/p\u003e \u003cp\u003e3. Feasibility Assessment and Business Case Development \u003c\/p\u003e \u003cp\u003e4. Business Process Improvement\u003c\/p\u003e \u003cp\u003e5. Requirements Definition\u003c\/p\u003e \u003cp\u003e6. Business Acceptance Testing \u003c\/p\u003e \u003cp\u003e7. Business Change Deployment\u003c\/p\u003e \u003cp\u003e8. Stakeholder Engagement \u003c\/p\u003e","brand":"BCS Learning \u0026 Development Limited","offers":[{"title":"Default Title","offer_id":48740983112023,"sku":"9781780175690","price":47.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781780175690.jpg?v=1720056210"},{"product_id":"cloud-computing-principles-systems-and-applications-9783319546445","title":"Cloud Computing: Principles, Systems and","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eThis practically-focused reference presents a comprehensive overview of the state of the art in Cloud Computing, and examines the potential for future Cloud and Cloud-related technologies to address specific industrial and research challenges. This new edition explores both established and emergent principles, techniques, protocols and algorithms involved with the design, development, and management of Cloud-based systems. The text reviews a range of applications and methods for linking Clouds, undertaking data management and scientific data analysis, and addressing requirements both of data analysis and of management of large scale and complex systems. This new edition also extends into the emergent next generation of mobile telecommunications, relating network function virtualization and mobile edge Cloud Computing, as supports Smart Grids and Smart Cities. As with the first edition, emphasis is placed on the four quality-of-service cornerstones of efficiency, scalability, robustness, and security.\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003e\u003cb\u003ePart I: General Principles\u003c\/b\u003e \u003c\/p\u003e  \u003cp\u003eThe Rise of Cloud Computing in the Era of Emerging Networked Society\u003cbr\u003e\u003ci\u003eBhaskar Prasad Rimal and Ian Lumb\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eMirror, Mirror on the Wall, How Do I Dimension My Cloud After All?\u003cbr\u003e\u003ci\u003eRafaelli Coutinho, Yuri Frota, Kary Ocaña, Daniel de Oliveira and Lúcia Drummond\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eA Taxonomy of Adaptive Resource Management Mechanisms in Virtual Machines: Recent Progress and Challenges\u003cbr\u003e\u003ci\u003eJos\u003c\/i\u003e\u003ci\u003eé\u003c\/i\u003e\u003ci\u003e Simão and Luís Veiga\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003ePart II: \u003c\/b\u003e\u003cb\u003eScience Cloud\u003c\/b\u003e\u003cbr\u003e\u003c\/p\u003e  \u003cp\u003eExploring Cloud Elasticity in Scientific Applications\u003cbr\u003e\u003ci\u003eGuilherme Galante and Rodrigo Da Rosa Righi\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eClouds and Reproducibility: A Way to Go to Scientific Experiments?\u003cbr\u003e\u003ci\u003eAry Henrique Morais de Oliveira, Daniel de Oliveira and Marta Mattoso\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eBig Data Analytics in Healthcare: A Cloud-Based Framework for Generating Insights\u003cbr\u003e\u003ci\u003eAshiq Anjum, Sanna Aizad, Bilal Arshad, Moeez Subhani, Dominic Davies-Tagg, Tariq Abdullah and Nick Antonopoulos\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003ePart III:\u003c\/b\u003e\u003cb\u003e Data Cloud\u003c\/b\u003e\u003cbr\u003e\u003c\/p\u003e  \u003cp\u003eImplementing MapReduce Applications in Dynamic Cloud Environments\u003cbr\u003e\u003ci\u003eDomenico Talia, Paolo Trunfio and Fabrizio Marozzo\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eHigh Performance Graph Data Management and Mining in Cloud Environments with X10\u003cbr\u003eMiyuru Dayarathna and Toyotaro Suzumura\u003c\/p\u003e  \u003cp\u003e\u003cb\u003ePart IV: \u003c\/b\u003e\u003cb\u003eMulti-Clouds\u003c\/b\u003e\u003cbr\u003e\u003c\/p\u003e  \u003cp\u003eFacilitating Cloud Federation Management via Data Interoperability\u003cbr\u003e\u003ci\u003eVincent Chimaobi Emeakaroha, Philip Healy and John Morrison\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eApplying Self-* Principles in Heterogeneous Cloud Environments\u003cbr\u003e\u003ci\u003eIoan Dragan, Teodor-Florin Fortis, Gabriel Iuhasz, Dana Petcu and Marian Neagul\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003ePart V: Performance and Efficiency\u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003eOptimizing the Profit and QoS of Virtual Brokers in the Cloud\u003cbr\u003e\u003ci\u003eSantiago Iturriaga, Sergio Nesmachnow and Bernabe Dorronsoro\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eAdaptive Resource Allocation for Load Balancing in Cloud\u003cbr\u003e\u003ci\u003eSomnath Mazumdar, Alberto Scionti and Anoop S. Kumar\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eCloud-Supported Certification for Energy-Efficient Web Browsing and Services\u003cbr\u003e\u003ci\u003eGonçalo Avelar, Jos\u003c\/i\u003e\u003ci\u003eé\u003c\/i\u003e\u003ci\u003e Simão and Luís Veiga\u003c\/i\u003e\u003c\/p\u003e  \u003cp\u003eDatacentre Event Analysis for Knowledge Discovery in Large-Scale Cloud Environments\u003cbr\u003e\u003ci\u003eJohn Panneerselvam, Lu Liu and Yao Lu\u003c\/i\u003e\u003c\/p\u003e","brand":"Springer International Publishing AG","offers":[{"title":"Default Title","offer_id":48743098024279,"sku":"9783319546445","price":126.79,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9783319546445.jpg?v=1720064101"},{"product_id":"requirements-engineering-9783319610726","title":"Requirements Engineering","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eWritten for those who want to develop their knowledge of requirements engineering process, whether practitioners or students.\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eUsing the latest research and driven by practical experience from industry, \u003ci\u003e\u003cb\u003eRequirements Engineering\u003c\/b\u003e\u003c\/i\u003e gives useful hints to practitioners on how to write and structure requirements.  It explains the importance of Systems Engineering and the creation of effective solutions to problems.  It describes the underlying representations used in system modeling and introduces the UML2, and considers the relationship between requirements and modeling.  Covering a generic multi-layer requirements process, the book discusses the key elements of effective requirements management.  The latest version of DOORS (Version 7) - a software tool which serves as an enabler of a requirements management process - is also introduced to the reader here.\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eAdditional material and links are available at: http:\/\/www.requirementsengineering.info\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003eIntroduction.- A Generic Process for Requirements Engineering.- System Modelling for Requirements Engineering.- Writing and Reviewing Requirements.- Requirements Engineering in the Problem Domain.- Requirements Engineering in the Solution Domain.- Advanced Traceability.- DOORS: A Tool to Manage Requirements.- Management Aspects of Requirements Engineering.- ","brand":"Springer International Publishing AG","offers":[{"title":"Default Title","offer_id":48743099924823,"sku":"9783319610726","price":999.99,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9783319610726.jpg?v=1791481727"},{"product_id":"real-time-c-efficient-object-oriented-and-template-microcontroller-programming-9783662629987","title":"Real-Time C++: Efficient Object-Oriented and","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eWith this book, Christopher Kormanyos delivers a highly practical guide to programming real-time embedded microcontroller systems in C++. It is divided into three parts plus several appendices. Part I provides a foundation for real-time C++ by covering language technologies, including object-oriented methods, template programming and optimization. Next, part II presents detailed descriptions of a variety of C++ components that are widely used in microcontroller programming. It details some of C++’s most powerful language elements, such as class types, templates and the STL, to develop components for microcontroller register access, low-level drivers, custom memory management, embedded containers, multitasking, etc. Finally, part III describes mathematical methods and generic utilities that can be employed to solve recurring problems in real-time C++. The appendices include a brief C++ language tutorial, information on the real-time C++ development environment and instructions for building GNU GCC cross-compilers and a microcontroller circuit.\u003c\/p\u003e  \u003cp\u003eFor this fourth edition, the most recent specification of C++20 is used throughout the text. Several sections on new C++20 functionality have been added, and various others reworked to reflect changes in the standard. Also several new example projects ranging from introductory to advanced level are included and existing ones extended, and various reader suggestions have been incorporated. Efficiency is always in focus and numerous examples are backed up with runtime measurements and size analyses that quantify the true costs of the code down to the very last byte and microsecond.\u003c\/p\u003e  \u003cp\u003eThe target audience of this book mainly consists of students and professionals interested in real-time C++. Readers should be familiar with C or another programming language and will benefit most if they have had some previous experience with microcontroller electronics and the performance and size issues prevalent in embedded systems programming.\u003c\/p\u003e\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003cbr\u003e\u003cp\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003ePart I: Language Technologies for Real-Time C++.- 1. Getting Started with Real-Time C++.- 2. Working with a Real-Time C++ Program on a Board.- 3. An Easy Jump Start in Real-Time C++.- 4. Object-Oriented Techniques for Microcontrollers.- 5. C++ Templates for Microcontrollers.- 6. Optimized C++ Programming for Microcontrollers.- Part II: Components for Real-Time C++.- 7. Accessing Microcontroller Registers.- 8. The Right Start.- 9. Low-Level Hardware Drivers in C++.- 10. Custom Memory Management.- 11. C++ Multitasking.- Part III: Mathematics and Utilities for Real-Time C++.- 12. Floating-Point Mathematics.-       13. Fixed-Point Mathematics.- 14. High-Performance Digital Filters.- 15. C++ Utilities.- 16. Extending the C++ Standard Library and the STL.- 17. Using C-Language Code in C++.- Additional Reading.","brand":"Springer-Verlag Berlin and Heidelberg GmbH \u0026 Co. KG","offers":[{"title":"Default Title","offer_id":48743142916439,"sku":"9783662629987","price":40.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9783662629987.jpg?v=1720064297"},{"product_id":"computer-architecture-and-organization-fundamentals-and-architecture-security-9789811656613","title":"Computer Architecture and Organization:","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eIn today’s workplace, computer and cybersecurity professionals must understand both hardware and software to deploy effective security solutions. This book introduces readers to the fundamentals of computer architecture and organization for security, and provides them with both theoretical and practical solutions to design and implement secure computer systems. Offering an in-depth and innovative introduction to modern computer systems and patent-pending technologies in computer security, the text integrates design considerations with hands-on lessons learned to help practitioners design computer systems that are immune from attacks.\u003c\/p\u003e  \u003cp\u003eStudying computer architecture and organization from a security perspective is a new area. There are many books on computer architectures and many others on computer security. However, books introducing computer architecture and organization with security as the main focus are still rare. This book addresses not only how to secure computer components (CPU, Memory, I\/O, and network) but also how to secure data and the computer system as a whole. It also incorporates experiences from the author’s recent award-winning teaching and research.\u003c\/p\u003e  The book also introduces the latest technologies, such as trusted computing, RISC-V, QEMU, cache security, virtualization, cloud computing, IoT, and quantum computing, as well as other advanced computing topics into the classroom in order to close the gap in workforce development. \u003cp\u003e\u003c\/p\u003e  \u003cp\u003eThe book is chiefly intended for undergraduate and graduate students in computer architecture and computer organization, as well as engineers, researchers, cybersecurity professionals, and middleware designers.\u003c\/p\u003e\u003cbr\u003e\u003cp\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cbr\u003e","brand":"Springer Verlag, Singapore","offers":[{"title":"Default Title","offer_id":48743291191639,"sku":"9789811656613","price":47.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9789811656613.jpg?v=1720064951"},{"product_id":"data-deduplication-for-high-performance-storage-system-9789811901119","title":"Data Deduplication for High Performance Storage","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eThis book comprehensively introduces data deduplication technologies for storage systems. It first presents the overview of data deduplication including its theoretical basis, basic workflow, application scenarios and its key technologies, and then the book focuses on each key technology of the deduplication to provide an insight into the evolution of the technology over the years including chunking algorithms, indexing schemes, fragmentation reduced schemes, rewriting algorithm and security solution. In particular, the state-of-the-art solutions and the newly proposed solutions are both elaborated. At the end of the book, the author discusses the fundamental trade-offs in each of deduplication design choices and propose an open-source deduplication prototype. The book with its fundamental theories and complete survey can guide the beginners, students and practitioners working on data deduplication in storage system. It also provides a compact reference in the perspective of key data deduplication technologies for those researchers in developing high performance storage solutions.\u003cbr\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003ePreface.- Deduplication: Beginning from Data Backup System.- Overview of Data Deduplication.- Chunking Algorithms.- Indexing Schemes.- Rewriting Algorithms.- Secure Deduplication.- Post-deduplication Delta Compression Schemes.- The Framework of Data Deduplication.- References.\u003c\/p\u003e","brand":"Springer Verlag, Singapore","offers":[{"title":"Default Title","offer_id":48743292731735,"sku":"9789811901119","price":999.99,"currency_code":"GBP","in_stock":false}]},{"product_id":"domaindriven-design-distilled-9780134434421","title":"DomainDriven Design Distilled","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003eVaughn Vernon\u003c\/strong\u003e is a champion of simplifying software architecture and development, with an emphasis on reactive methods. He has a unique ability to teach and lead with Domain-Driven Design using lightweight tools to unveil unimagined value. He helps organizations achieve competitive advantages using enduring tools such as architectures, patterns, and approaches, and through partnerships between business stakeholders and software developers.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003e\u003c\/p\u003e \u003ci\u003e\u003c\/i\u003e\u003cp\u003e\u003ci\u003ePreface xi\u003c\/i\u003e\u003c\/p\u003e\u003cp\u003e\u003ci\u003eAcknowledgments xv\u003c\/i\u003e\u003c\/p\u003e\u003cp\u003e\u003ci\u003eAbout the Author xvii\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cbr\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cb\u003eChapter 1: DDD for Me 1\u003c\/b\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eWill DDD Hurt? 2\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eGood, Bad, and Effective Design 3\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eStrategic Design 7\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eTactical Design 8\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eThe Learning Process and Refining Knowledge 9\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eLet’s Get Started! 10\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e \u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cb\u003eChapter 2: Strategic Design with Bounded Contexts and the Ubiquitous Language 11\u003c\/b\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eDomain Experts and Business Drivers 17\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eCase Study 21\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eFundamental Strategic Design Needed 25\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eChallenge and Unify 29\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eDeveloping a Ubiquitous Language 34\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eArchitecture 41\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eSummary 44\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e \u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cb\u003eChapter 3: Strategic Design with Subdomains 45\u003c\/b\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eWhat Is a Subdomain? 46\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eTypes of Subdomains 46\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eDealing with Complexity 47\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eSummary 50\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e \u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cb\u003eChapter 4: Strategic Design with Context Mapping 51\u003c\/b\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eKinds of Mappings 54\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eMaking Good Use of Context Mapping 60\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eAn Example in Context Mapping 70\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eSummary 73\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e \u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cb\u003eChapter 5: Tactical Design with Aggregates 75\u003c\/b\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eWhy Used 76\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eAggregate Rules of Thumb 81\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eModeling Aggregates 88\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eSummary 98\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e \u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cb\u003eChapter 6: Tactical Design with Domain Events 99\u003c\/b\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eDesigning, Implementing, and Using Domain Events 100\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eEvent Sourcing 107\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eSummary 109\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e \u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cb\u003eChapter 7: Acceleration and Management Tools 111\u003c\/b\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eEvent Storming 112\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eManaging DDD on an Agile Project 125\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eTimeboxed Modeling 132\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003eSummary 136\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003ci\u003e\u003cbr\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e \u003ci\u003e\u003ci\u003e\u003c\/i\u003e\u003c\/i\u003e\u003cp\u003e\u003ci\u003e\u003ci\u003eReferences 137\u003c\/i\u003e\u003c\/i\u003e\u003c\/p\u003e\u003cp\u003e \u003c\/p\u003e\u003cp\u003e\u003ci\u003e\u003ci\u003eIndex 139\u003c\/i\u003e\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48864170574167,"sku":"9780134434421","price":28.02,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780134434421.jpg?v=1722270721"},{"product_id":"refactoring-9780134757599","title":"Refactoring","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp style=\"margin:0px;\"\u003e\u003cb\u003eMartin Fowler\u003c\/b\u003e is Chief Scientist at ThoughtWorks. He describes himself as an author, speaker, consultant and general loud-mouth on software development. Fowler concentrates on designing enterprise software: exploring what makes a good design and what practices are needed to create one.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003ePreface\u003c\/li\u003e\n\u003cli\u003e1. Refactoring, a First Example\u003c\/li\u003e\n\u003cli\u003e2. Principles in Refactoring\u003c\/li\u003e\n\u003cli\u003e3. Bad Smells in Code\u003c\/li\u003e\n\u003cli\u003e4. Building Tests\u003c\/li\u003e\n\u003cli\u003e5. Toward a Catalog of Refactorings\u003c\/li\u003e\n\u003cli\u003e6. Composing Methods\u003c\/li\u003e\n\u003cli\u003e7. Moving Features between Objects\u003c\/li\u003e\n\u003cli\u003e8. Organizing Data\u003c\/li\u003e\n\u003cli\u003e9. Simplifying Conditional Expressions\u003c\/li\u003e\n\u003cli\u003e10. Making Method Calls Simpler\u003c\/li\u003e\n\u003cli\u003e11. Dealing with Generalization\u003c\/li\u003e\n\u003cli\u003e12. Big Refactorings\u003c\/li\u003e\n\u003cli\u003e13. Refactoring, Reuse, and Reality\u003c\/li\u003e\n\u003cli\u003e14. Refactoring Tools\u003c\/li\u003e\n\u003cli\u003e15. Putting It All Together\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48864171721047,"sku":"9780134757599","price":43.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780134757599.jpg?v=1722270727"},{"product_id":"understanding-software-dynamics-9780137589739","title":"Understanding Software Dynamics","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cb\u003eRichard L. Sites\u003c\/b\u003e wrote his first computer program in 1959 and has spent most of his career at the boundary between hardware and software, with a particular interest in CPU\/software performance interactions. His past work includes VAX microcode, DEC Alpha co-architect, and inventing the performance counters found in nearly all processors today. He has done low-overhead microcode and software tracing at DEC, Adobe, Google, and Tesla. Dr. Sites earned his PhD at Stanford in 1974; he holds 66 patents and is a member of the US National Academy of Engineering.\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003e\u003cp\u003e\"Complex software often uses threads, events, and I\/O to produce results. Even intermittent performance bugs can lead to functional failures when results are time sensitive. Here Sites shares his methods from decades of experience as a real-world performance detective to enable you to approach the deduction skills of an IT Sherlock Holmes.\"\u003cbr\u003e—\u003cem\u003eMark D. Hill, Partner Hardware Architect at Microsoft and Professor Emeritus at the University of Wisconsin-Madison\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\"I think that any senior CS student or professional can benefit by reading this book. While all the material in the first half of the book leads up to the use of KUTrace, the first two parts are worth reading on their own by anyone who wants to better understand the systems they are building and using.\"—\u003cem\u003eRik Farrow, ;login\u003c\/em\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003ci\u003eForeword xix\u003cbr\u003ePreface xxi\u003cbr\u003eAcknowledgments xxv\u003cbr\u003eAbout the Author xxvii\u003c\/i\u003e \u003cbr\u003e \u003cbr\u003e \u003cb\u003ePart I: Measurement 1\u003c\/b\u003e \u003cbr\u003eChapter 1: My Program Is Too Slow 3 \u003cbr\u003eChapter 2: Measuring CPUs 15 \u003cbr\u003eChapter 3: Measuring Memory 31 \u003cbr\u003eChapter 4: CPU and Memory Interaction 49 \u003cbr\u003eChapter 5: Measuring Disk\/SSD 61 \u003cbr\u003eChapter 6: Measuring Networks 85 \u003cbr\u003eChapter 7: Disk and Network Database Interaction 111 \u003cbr\u003e \u003cbr\u003e \u003cb\u003ePart II: Observation 131\u003c\/b\u003e \u003cbr\u003eChapter 8: Logging 133 \u003cbr\u003eChapter 9: Aggregate Measures 141 \u003cbr\u003eChapter 10: Dashboards 157 \u003cbr\u003eChapter 11: Other Existing Tools 167 \u003cbr\u003eChapter 12: Traces 193 \u003cbr\u003eChapter 13: Observation Tool Design Principles 209 \u003cbr\u003e \u003cbr\u003e \u003cb\u003ePart III: Kernel-User Trace 217\u003c\/b\u003e \u003cbr\u003eChapter 14: KUtrace: Goals, Design, Implementation 219 \u003cbr\u003eChapter 15: KUtrace: Linux Kernel Patches 227 \u003cbr\u003eChapter 16: KUtrace: Linux Loadable Module 239 \u003cbr\u003eChapter 17: KUtrace: User-Mode Runtime Control 245 \u003cbr\u003eChapter 18: KUtrace: Postprocessing 249 \u003cbr\u003eChapter 19: KUtrace: Display of Software Dynamics 257 \u003cbr\u003e \u003cbr\u003e \u003cb\u003ePart IV: Reasoning 267\u003c\/b\u003e \u003cbr\u003eChapter 20: What to Look For 269 \u003cbr\u003eChapter 21: Executing Too Much 271 \u003cbr\u003eChapter 22: Executing Slowly 279 \u003cbr\u003eChapter 23: Waiting for CPU 289 \u003cbr\u003eChapter 24: Waiting for Memory 299 \u003cbr\u003eChapter 25: Waiting for Disk 307 \u003cbr\u003eChapter 26: Waiting for Network 319 \u003cbr\u003eChapter 27: Waiting for Locks 337 \u003cbr\u003eChapter 28: Waiting for Time 357 \u003cbr\u003eChapter 29: Waiting for Queues 361 \u003cbr\u003eChapter 30: Recap 383 \u003cbr\u003e \u003cbr\u003eAppendix A: Sample Servers 387 \u003cbr\u003eAppendix B: Trace Entries 391 \u003cbr\u003e \u003cbr\u003e \u003ci\u003eGlossary 397\u003cbr\u003eReferences 405\u003cbr\u003eIndex 415\u003c\/i\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48864175358295,"sku":"9780137589739","price":36.09,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780137589739.jpg?v=1722270743"},{"product_id":"patterns-for-api-design-9780137670109","title":"Patterns for API Design","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003eOlaf Zimmermann\u003c\/strong\u003e is professor of software architecture at the Institute for Software at Eastern Switzerland University of Applied Sciences, Distinguished IT Architect at The Open Group, and co-editor of \u003cem\u003eIEEE Software\u003c\/em\u003e's Insights column. \u003cstrong\u003eMirko Stocker\u003c\/strong\u003e is professor of software engineering at Eastern Switzerland University of Applied Sciences, specializing on Web development and cloud solutions. \u003cstrong\u003eDaniel Lübke\u003c\/strong\u003e is an independent coding and consulting architect who specializes in business process automation and digitization projects. \u003cstrong\u003eUwe Zdun\u003c\/strong\u003e is professor of software architecture at the University of Vienna, focusing on distributed systems engineering, DevOps, patterns, modeling, and empirical software engineering. \u003cstrong\u003eCesare Pautasso \u003c\/strong\u003eis a professor at the Università della Svizzera Italiana, where he leads the Architecture, Design, and Web Information Systems Engineering research group. The authors are active community members participating in pattern writer's workshops, shepherding other authors, serving on program committees, and chairing conferences.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003e\u003cem\u003eForeword by Vaughn Vernon, Series Editor\u003c\/em\u003e     xvii\u003c\/p\u003e \u003cp\u003e\u003cem\u003eForeword by Frank Leymann\u003c\/em\u003e     xxi\u003c\/p\u003e \u003cp\u003e\u003cem\u003ePreface\u003c\/em\u003e     xxiii\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart 1: Foundations and Narratives\u003c\/strong\u003e     1\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 1:\u003c\/strong\u003e Application Programming Interface (API) Fundamentals     3\u003c\/p\u003e \u003cp\u003e     From Local Interfaces to Remote APIs     3\u003c\/p\u003e \u003cp\u003e     Decision Drivers in API Design     14\u003c\/p\u003e \u003cp\u003e     A Domain Model for Remote APIs     22\u003c\/p\u003e \u003cp\u003e     Summary     28\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 2:\u003c\/strong\u003e Lakeside Mutual Case Study     31\u003c\/p\u003e \u003cp\u003e     Business Context and Requirements     31\u003c\/p\u003e \u003cp\u003e     Architecture Overview     35\u003c\/p\u003e \u003cp\u003e     API Design Activities     39\u003c\/p\u003e \u003cp\u003e     Target API Specification     39\u003c\/p\u003e \u003cp\u003e     Summary     41\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 3:\u003c\/strong\u003e API Decision Narratives     43\u003c\/p\u003e \u003cp\u003e     Prelude: Patterns as Decision Options, Forces as Decision Criteria     43\u003c\/p\u003e \u003cp\u003e     Foundational API Decisions and Patterns     45\u003c\/p\u003e \u003cp\u003e     Decisions about API Roles and Responsibilities     57\u003c\/p\u003e \u003cp\u003e     Selecting Message Representation Patterns     70\u003c\/p\u003e \u003cp\u003e     Interlude: Responsibility and Structure Patterns in the Lakeside Mutual Case     82\u003c\/p\u003e \u003cp\u003e     Governing API Quality     84\u003c\/p\u003e \u003cp\u003e     Deciding for API Quality Improvements     98\u003c\/p\u003e \u003cp\u003e     Decisions about API Evolution     110\u003c\/p\u003e \u003cp\u003e     Summary     122\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart 2: The Patterns\u003c\/strong\u003e     125\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 4:\u003c\/strong\u003e Pattern Language Introduction      127\u003c\/p\u003e \u003cp\u003e     Positioning and Scope     128\u003c\/p\u003e \u003cp\u003e     Patterns: Why and How?     130\u003c\/p\u003e \u003cp\u003e     Navigating through the Patterns     131\u003c\/p\u003e \u003cp\u003e     Foundations: API Visibility and Integration Types     137\u003c\/p\u003e \u003cp\u003e     Basic Structure Patterns     146\u003c\/p\u003e \u003cp\u003e     Summary     158\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 5:\u003c\/strong\u003e Define Endpoint Types and Operations     161\u003c\/p\u003e \u003cp\u003e     Introduction to API Roles and Responsibilities     162\u003c\/p\u003e \u003cp\u003e     Endpoint Roles (aka Service Granularity)     167\u003c\/p\u003e \u003cp\u003e     Operation Responsibilities     215\u003c\/p\u003e \u003cp\u003e     Summary     248\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 6:\u003c\/strong\u003e Design Request and Response Message Representations     253\u003c\/p\u003e \u003cp\u003e     Introduction to Message Representation Design     253\u003c\/p\u003e \u003cp\u003e     Element Stereotypes     256\u003c\/p\u003e \u003cp\u003e     Special-Purpose Representations     282\u003c\/p\u003e \u003cp\u003e     Summary                                                 305\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 7:\u003c\/strong\u003e Refine Message Design for Quality  309\u003c\/p\u003e \u003cp\u003e     Introduction to API Quality     309\u003c\/p\u003e \u003cp\u003e     Message Granularity     313\u003c\/p\u003e \u003cp\u003e     Client-Driven Message Content (aka Response Shaping)     325\u003c\/p\u003e \u003cp\u003eMessage Exchange Optimization (aka Conversation Efficiency)     344\u003c\/p\u003e \u003cp\u003eSummary     355\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 8:\u003c\/strong\u003e Evolve APIs     357\u003c\/p\u003e \u003cp\u003eIntroduction to API Evolution     357\u003c\/p\u003e \u003cp\u003eVersioning and Compatibility Management     362\u003c\/p\u003e \u003cp\u003eLife-Cycle Management Guarantees     374\u003c\/p\u003e \u003cp\u003eSummary     393\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 9:\u003c\/strong\u003e Document and Communicate API Contracts     395\u003c\/p\u003e \u003cp\u003eIntroduction to API Documentation     395\u003c\/p\u003e \u003cp\u003eDocumentation Patterns     398\u003c\/p\u003e \u003cp\u003eSummary     421\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart 3: Our Patterns in Action (Now and Then)\u003c\/strong\u003e     423\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 10: \u003c\/strong\u003eReal-World Pattern Stories     425\u003c\/p\u003e \u003cp\u003eLarge-Scale Process Integration in the Swiss Mortgage Business     426\u003c\/p\u003e \u003cp\u003eOffering and Ordering Processes in Building Construction     438\u003c\/p\u003e \u003cp\u003eSummary     445\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 11: \u003c\/strong\u003eConclusion     447\u003c\/p\u003e \u003cp\u003eShort Retrospective     448\u003c\/p\u003e \u003cp\u003eAPI Research: Refactoring to Patterns, MDSL, and More     449\u003c\/p\u003e \u003cp\u003eThe Future of APIs     450\u003c\/p\u003e \u003cp\u003eAdditional Resources     451\u003c\/p\u003e \u003cp\u003eFinal Remarks     451\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eAppendix A: Endpoint Identification and Pattern Selection Guides     453\u003c\/p\u003e \u003cp\u003eAppendix B: Implementation of the Lakeside Mutual Case     463\u003c\/p\u003e \u003cp\u003eAppendix C: Microservice Domain-Specific Language (MDSL)     471\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003e\u003cem\u003eBibliography\u003c\/em\u003e     483\u003c\/p\u003e \u003cp\u003e\u003cem\u003eIndex\u003c\/em\u003e     499\u003c\/p\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48864175849815,"sku":"9780137670109","price":35.14,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780137670109.jpg?v=1791379182"},{"product_id":"patterns-of-distributed-systems-9780138221980","title":"Patterns of Distributed Systems","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003eUnmesh Joshi\u003c\/strong\u003e is a Principal Consultant at Thoughtworks with 22 years of industry experience. He is a software architecture enthusiast, who believes that understanding principles of distributed systems is as essential today as understanding web architecture or object-oriented programming was in the last decade. For the last two years he has been publishing patterns of distributed systems on martinfowler.com. He has also conducted various training sessions around this topic. Twitter: @unmeshjoshi\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003e\u003cem\u003eForeword xvii\u003c\/em\u003e\u003cbr\u003e\u003cem\u003ePreface xix\u003c\/em\u003e\u003cbr\u003e\u003cem\u003eAcknowledgments xxiii\u003c\/em\u003e\u003cbr\u003e\u003cem\u003eAbout the Author xxv\u003c\/em\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart I: Narratives 1\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 1: The Promise and Perils of Distributed Systems 3\u003c\/strong\u003e\u003cbr\u003eThe Limits of a Single Server 3\u003cbr\u003eSeparate Business Logic and Data Layer 5\u003cbr\u003ePartitioning Data 6\u003cbr\u003eA Look at Failures 7\u003cbr\u003eReplication: Masking Failures 9\u003cbr\u003eDefining the Term \"Distributed Systems\" 10\u003cbr\u003eThe Patterns Approach 10\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 2: Overview of the Patterns 13\u003c\/strong\u003e\u003cbr\u003eKeeping Data Resilient on a Single Server 14\u003cbr\u003eCompeting Updates 15\u003cbr\u003eDealing with the Leader Failing 17\u003cbr\u003eMultiple Failures Need a Generation Clock 21\u003cbr\u003eLog Entries Cannot Be Committed until They Are Accepted by a Majority Quorum 26\u003cbr\u003eFollowers Commit Based on a High-Water Mark 29\u003cbr\u003eLeaders Use a Series of Queues to Remain Responsive to Many Clients 34\u003cbr\u003eFollowers Can Handle Read Requests to Reduce Load on the Leader 40\u003cbr\u003eA Large Amount of Data Can Be Partitioned over Multiple Nodes 42\u003cbr\u003ePartitions Can Be Replicated for Resilience 45\u003cbr\u003eA Minimum of Two Phases Are Needed to Maintain Consistency across Partitions 46\u003cbr\u003eIn Distributed Systems, Ordering Cannot Depend on System Timestamps 49\u003cbr\u003eA Consistent Core Can Manage the Membership of a Data Cluster 58\u003cbr\u003eGossip Dissemination for Decentralized Cluster Management 62\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart II: Patterns of Data Replication 69\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 3: Write-Ahead Log 71\u003c\/strong\u003e\u003cbr\u003eProblem 71\u003cbr\u003eSolution 71\u003cbr\u003eExamples 76\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 4: Segmented Log 77\u003c\/strong\u003e\u003cbr\u003eProblem 77\u003cbr\u003eSolution 77\u003cbr\u003eExamples 79\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 5: Low-Water Mark 81\u003c\/strong\u003e\u003cbr\u003eProblem 81\u003cbr\u003eSolution 81\u003cbr\u003eExamples 83\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 6: Leader and Followers 85\u003c\/strong\u003e\u003cbr\u003eProblem 85\u003cbr\u003eSolution 85\u003cbr\u003eExamples 92\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 7: HeartBeat 93\u003c\/strong\u003e\u003cbr\u003eProblem 93\u003cbr\u003eSolution 93\u003cbr\u003eExamples 98\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 8: Majority Quorum 99\u003c\/strong\u003e\u003cbr\u003eProblem 99\u003cbr\u003eSolution 100\u003cbr\u003eExamples 102\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 9: Generation Clock 103\u003c\/strong\u003e\u003cbr\u003eProblem 103\u003cbr\u003eSolution 104\u003cbr\u003eExamples 107\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 10: High-Water Mark 109\u003c\/strong\u003e\u003cbr\u003eProblem 109\u003cbr\u003eSolution 109\u003cbr\u003eExamples 115\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 11: Paxos 117\u003c\/strong\u003e\u003cbr\u003eProblem 117\u003cbr\u003eSolution 117\u003cbr\u003eExamples 132\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 12: Replicated Log 133\u003c\/strong\u003e\u003cbr\u003eProblem 133\u003cbr\u003eSolution 133\u003cbr\u003eExamples 158\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 13: Singular Update Queue 159\u003c\/strong\u003e\u003cbr\u003eProblem 159\u003cbr\u003eSolution 159\u003cbr\u003eExamples 166\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 14: Request Waiting List 167\u003c\/strong\u003e\u003cbr\u003eProblem 167\u003cbr\u003eSolution 167\u003cbr\u003eExamples 173\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 15: Idempotent Receiver 175\u003c\/strong\u003e\u003cbr\u003eProblem 175\u003cbr\u003eSolution 175\u003cbr\u003eExamples 181\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 16: Follower Reads 183\u003c\/strong\u003e\u003cbr\u003eProblem 183\u003cbr\u003eSolution 183\u003cbr\u003eExamples 191\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 17: Versioned Value 193\u003c\/strong\u003e\u003cbr\u003eProblem 193\u003cbr\u003eSolution 193\u003cbr\u003eExamples 201\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 18: Version Vector 203\u003c\/strong\u003e\u003cbr\u003eProblem 203\u003cbr\u003eSolution 203\u003cbr\u003eExamples 216\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart III: Patterns of Data Partitioning 217\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 19: Fixed Partitions 219\u003c\/strong\u003e\u003cbr\u003eProblem 219\u003cbr\u003eSolution 220\u003cbr\u003eExamples 241\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 20: Key-Range Partitions 243\u003c\/strong\u003e\u003cbr\u003eProblem 243\u003cbr\u003eSolution 244\u003cbr\u003eExamples 255\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 21: Two-Phase Commit 257\u003c\/strong\u003e\u003cbr\u003eProblem 257\u003cbr\u003eSolution 257\u003cbr\u003eExamples 297\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart IV: Patterns of Distributed Time 299\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 22: Lamport Clock 301\u003c\/strong\u003e\u003cbr\u003eProblem 301\u003cbr\u003eSolution 301\u003cbr\u003eExamples 307\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 23: Hybrid Clock 309\u003c\/strong\u003e\u003cbr\u003eProblem 309\u003cbr\u003eSolution 309\u003cbr\u003eExamples 316\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 24: Clock-Bound Wait 317\u003c\/strong\u003e\u003cbr\u003eProblem 317\u003cbr\u003eSolution 318\u003cbr\u003eExamples 332\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart V: Patterns of Cluster Management 335\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 25: Consistent Core 337\u003c\/strong\u003e\u003cbr\u003eProblem 337\u003cbr\u003eSolution 337\u003cbr\u003eExamples 342\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 26: Lease 345\u003c\/strong\u003e\u003cbr\u003eProblem 345\u003cbr\u003eSolution 345\u003cbr\u003eExamples 354\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 27: State Watch 355\u003c\/strong\u003e\u003cbr\u003eProblem 355\u003cbr\u003eSolution 355\u003cbr\u003eExamples 362\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 28: Gossip Dissemination 363\u003c\/strong\u003e\u003cbr\u003eProblem 363\u003cbr\u003eSolution 363\u003cbr\u003eExamples 373\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 29: Emergent Leader 375\u003c\/strong\u003e\u003cbr\u003eProblem 375\u003cbr\u003eSolution 375\u003cbr\u003eExamples 392\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ePart VI: Patterns of Communication between Nodes 393\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 30: Single-Socket Channel 395\u003c\/strong\u003e\u003cbr\u003eProblem 395\u003cbr\u003eSolution 395\u003cbr\u003eExamples 397\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 31: Request Batch 399\u003c\/strong\u003e\u003cbr\u003eProblem 399\u003cbr\u003eSolution 399\u003cbr\u003eExamples 404\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eChapter 32: Request Pipeline 405\u003c\/strong\u003e\u003cbr\u003eProblem 405\u003cbr\u003eSolution 405\u003cbr\u003eExamples 408\u003c\/p\u003e \u003cp\u003e\u003cem\u003eReferences 409\u003c\/em\u003e\u003cbr\u003e\u003cem\u003eIndex 413\u003c\/em\u003e\u003c\/p\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48864177914199,"sku":"9780138221980","price":34.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780138221980.jpg?v=1722270756"},{"product_id":"software-design-decoded-66-ways-experts-think-the-mit-press-9780262035187","title":"Software Design Decoded 66 Ways Experts Think The","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cb\u003eAn engaging, illustrated collection of insights revealing the practices and principles that expert software designers use to create great software.\u003c\/b\u003e\u003cp\u003eWhat makes an expert software designer? It is more than experience or innate ability. Expert software designers have specific habits, learned practices, and observed principles that they apply deliberately during their design work. This book offers sixty-six insights, distilled from years of studying experts at work, that capture what successful software designers actually do to create great software. \u003c\/p\u003e\u003cp\u003eThe book presents these insights in a series of two-page illustrated spreads, with the principle and a short explanatory text on one page, and a drawing on the facing page. For example, “Experts generate alternatives” is illustrated by the same few balloons turned into a set of very different balloon animals. The text is engaging and accessible; the drawings are thought-provoking and often playful.\u003c\/p\u003e\u003cp\u003eOrganized i\u003c\/p\u003e","brand":"MIT Press Ltd","offers":[{"title":"Default Title","offer_id":48864300040535,"sku":"9780262035187","price":20.7,"currency_code":"GBP","in_stock":true}]},{"product_id":"introduction-to-machine-learning-adaptive-computation-and-machine-learning-series-9780262043793","title":"Introduction to Machine Learning Adaptive","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cb\u003eA substantially revised fourth edition of a comprehensive textbook, including new coverage of recent advances in deep learning and neural networks.\u003c\/b\u003e\u003cp\u003eThe goal of machine learning is to program computers to use example data or past experience to solve a given problem. Machine learning underlies such exciting new technologies as self-driving cars, speech recognition, and translation applications. This substantially revised fourth edition of a comprehensive, widely used machine learning textbook offers new coverage of recent advances in the field in both theory and practice, including developments in deep learning and neural networks.\u003c\/p\u003e\u003cp\u003eThe book covers a broad array of topics not usually included in introductory machine learning texts, including supervised learning, Bayesian decision theory, parametric methods, semiparametric methods, nonparametric methods, multivariate analysis, hidden Markov models, reinforcement learning, kernel machines, graphical models, Bayesian estimatio\u003c\/p\u003e","brand":"MIT Press","offers":[{"title":"Default Title","offer_id":48864300761431,"sku":"9780262043793","price":66.79,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780262043793.jpg?v=1722271300"},{"product_id":"specifying-systems-9780321143068","title":"Specifying Systems","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003c\/p\u003e \u003cp align=\"left\"\u003e\u003cb\u003eLeslie Lamport\u003c\/b\u003e, a computer scientist, is well known for his contributions to concurrent computing and distributed systems. His Time, Clocks, and the Ordering of Events in a Distributed System paper has been honored for its enduring influence on the field. Lamport is also known for creating the LaTeX typesetting system and the best-selling book, \u003ci\u003eLaTeX, Second Edition\u003c\/i\u003e, which documents it (Addison-Wesley, 1994). Now at Microsoft Research in Mountain View, California, he began his work on TLA+ at the Digital (later Compaq) Systems Research Center in Palo Alto. Lamport, who earned his Ph.D. in mathematics from Brandeis University, is a member of the National Academy of Engineering.\u003c\/p\u003e \u003cbr\u003e \u003cbr\u003e 032114306XAB06262002 \u003cp\u003e\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cbr\u003e \u003cbr\u003e \u003cb\u003eList of Figures and Tables.\u003c\/b\u003e \u003cbr\u003e \u003cbr\u003e \u003cbr\u003e \u003cb\u003eAcknowledgments.\u003c\/b\u003e \u003cbr\u003e \u003cbr\u003e \u003cbr\u003e \u003cb\u003eIntroduction.\u003c\/b\u003e \u003cbr\u003e \u003cp\u003e \u003cb\u003eI. Getting Started.\u003c\/b\u003e \u003c\/p\u003e   \u003cb\u003e1. A Little Simple Math.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Propositional Logic.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Sets.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Predicate Logic.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Formulas and Language.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e2. Specifying a Simple Clock.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Behaviors.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   An Hour Clock.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Closer Look at the Specification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Specification in TLA+.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   An Alternative Specification.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e3. An Asynchronous Interface.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   The First Specification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Another Specification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Types: A Reminder.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Definitions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Comments.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e4. A FIFO.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   The Inner Specification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Instantiation Examined.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Instantiation Is Substitution.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Parametrized Instantiation.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Implicit Substitutions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Instantiation Without Renaming.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Hiding the Queue.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Bounded FIFO.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   What We're Specifying.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e5. A Caching Memory.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   The Memory Interface.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Functions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Linearizable Memory.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Tuples as Functions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Recursive Function Definitions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Write-Through Cache.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Invariance.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Proving Implementation.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e6. Some More Math.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Sets.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Silly Expressions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Recursion Revisited.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Functions versus Operators.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Using Functions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Choose.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e7. Writing a Specification: Some Advice.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Why Specify.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   What to Specify.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Grain of Atomicity.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Data Structures.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Writing the Specification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Some Further Hints.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   When and How to Specify.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003cb\u003eII: More Advanced Topics.\u003c\/b\u003e \u003c\/p\u003e   \u003cb\u003e8. Liveness and Fairness.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Temporal Formulas.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Temporal Tautologies.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Temporal Proof Rules.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Weak Fairness.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Memory Specification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Liveness Requirement.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Another Way to Write It.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Generalization.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Strong Fairness.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Write-Through Cache.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Quantification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Temporal Logic Examined.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Review.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Machine Closure.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Machine Closure and Possibility.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Refinement Mappings and Fairness.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Unimportance of Liveness.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Temporal Logic Considered Confusing.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e9. Real Time.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   The Hour Clock Revisited.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Real-Time Specifications in General.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Real-Time Caching Memory.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Zeno Specifications.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Hybrid System Specifications.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Remarks on Real Time.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e10. Composing Specifications.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Composing Two Specifications.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Composing Many Specifications.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The FIFO.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Composition with Shared State.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Explicit State Changes.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Composition with Joint Actions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Brief Review.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Taxonomy of Composition.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Interleaving Reconsidered.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Joint Actions Reconsidered.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Liveness and Hiding.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Liveness and Machine Closure.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Hiding.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Open-System Specifications.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Interface Refinement.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Binary Hour Clock.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Refining a Channel.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Interface Refinement in General.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Open-System Specifications.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Should You Compose?.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e11. Advanced Examples.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Specifying Data Structures.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Local Definitions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Graphs.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Solving Differential Equations.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   BNF Grammars.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Other Memory Specifications.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Interface.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Correctness Condition.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Serial Memory.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   A Sequentially Consistent Memory.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Memory Specifications Considered.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003cb\u003eIII: The Tools.\u003c\/b\u003e \u003c\/p\u003e   \u003cb\u003e12. The Syntactic Analyzer.\u003c\/b\u003e  \u003cbr\u003e   \u003cb\u003e13. The TLATEX Typesetter.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Introduction.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Comment Shading.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   How It Typesets the Specification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   How It Typesets Comments.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Adjusting the Output Format.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Output Files.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Trouble-Shooting.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Using LATEX Commands.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e14. The TLC Model Checker.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Introduction to TLC.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   What TLC Can Cope With.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   TLC Values.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   How TLC Evaluates Expressions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Assignment and Replacement.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Evaluating Temporal Formulas.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Overriding Modules.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   How TLC Computes States.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   How TLC Checks Properties.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Model-Checking Mode.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Simulation Mode.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Views and Fingerprints.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Taking Advantage of Symmetry.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Limitations of Liveness Checking.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The TLC Module.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   How to Use TLC.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Running TLC.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Debugging a Specification.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Hints on Using TLC Effectively.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   What TLC Doesn't Do.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Fine Print.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Grammar of the Configuration File.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Comparable TLC Values.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003cb\u003eIV: The TLA+ Language.\u003c\/b\u003e \u003c\/p\u003e   \u003cb\u003eMini-Manual 268-273.\u003c\/b\u003e  \u003cbr\u003e   \u003cb\u003e15. The Syntax of TLA+.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   The Simple Grammar.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Complete Grammar.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Precedence and Associativity.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Alignment.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Comments.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Temporal Formulas.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Two Anomalies.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Lexemes of TLA+.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e16. The Operators of TLA+.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Constant Operators.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Boolean Operators.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Choose Operator.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Interpretations of Boolean Operators.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Conditional Constructs.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Let\/In Construct.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Operators of Set Theory.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Functions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Records.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Tuples.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Strings.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Numbers.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   . Nonconstant Operators.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Basic Constant Expressions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Meaning of a State Function.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Action Operators.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Temporal Operators.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e17. The Meaning of a Module.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Operators and Expressions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Order and Arity of an Operator.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   ¿¿ Expressions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Simplifying Operator Application.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Expressions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Levels.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Contexts.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Meaning of a ¿¿ Expression.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Meaning of a Module.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Extends.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Declarations.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Operator Definitions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Function Definitions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Instantiation.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Theorems and Assumptions.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Submodules.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Correctness of a Module.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Finding Modules.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Semantics of Instantiation.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003e18. The Standard Modules.\u003c\/b\u003e  \u003cbr\u003e \u003cp\u003e \u003c\/p\u003e   Module Sequences.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Module FiniteSets.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   Module Bags.  \u003cp\u003e\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e   The Numbers Modules.  \u003cp\u003e\u003c\/p\u003e   \u003cb\u003eIndex. 032114306XT07022002\u003c\/b\u003e  \u003cbr\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48864418562391,"sku":"9780321143068","price":30.14,"currency_code":"GBP","in_stock":false}]},{"product_id":"algorithms-9780321573513","title":"Algorithms","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp style=\"MARGIN:\"\u003e\u003cb\u003eRobert Sedgewick\u003c\/b\u003e has been a Professor of Computer Science at Princeton University since 1985, where he was the founding Chairman of the Department of Computer Science. He has held visiting research positions at Xerox PARC, Institute for Defense Analyses, and INRIA, and is member of the board of directors of Adobe Systems. Professor Sedgewick's research interests include analytic combinatorics, design and analysis of data structures and algorithms, and program visualization. His landmark book, \u003ci\u003eAlgorithms,\u003c\/i\u003e now in its fourth edition, has appeared in numerous versions and languages over the past thirty years. In addition, with Kevin Wayne, he is the coauthor of the highly acclaimed textbook, \u003ci\u003eIntroduction to Programming in Java: An Interdisciplinary Approach \u003c\/i\u003e(Addison-Wesley, 2008).\u003c\/p\u003e \u003cp style=\"MARGIN:\"\u003e \u003c\/p\u003e \u003cp style=\"MARGIN:\"\u003e\u003cb\u003eKevin Wayne \u003c\/b\u003eis the Phillip Y. Goldman Senior Lecturer in Computer Science at Princeton University, where h\u003cbr\u003e\u003cbr\u003e\u003c\/p\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e    \u003cb\u003eChapter 1: Fundamentals \u003c\/b\u003e  \u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003e  \u003c\/b\u003e\u003cb\u003e  1.1 Programming Model  \u003c\/b\u003e  \u003cb\u003e     \u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e  \u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e  1.2 Data Abstraction  \u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e  1.3 Queues, Stacks, and Bags  \u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e  1.4 Analysis of Algorithms  \u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e  1.5 Case Study: Union-Find  \u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e     \u003c\/b\u003e \u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003e\u003cb\u003e  \u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e  Chapter 2: Sorting  \u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e  2.1 Elementary Sorts  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e 2.1 Elementary Sorts \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e  2.2 Mergesort  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e  2.3 Quicksort  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e  2.4 Priority Queues  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e  2.5 Applications  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e     \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Chapter 3: Searching  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  3.1 Symbol Tables  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e 3.1 Symbol Tables \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  3.2 Binary Search Trees  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  3.3 Balanced Search Trees  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  3.4 Hash Tables  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  3.5 Applications  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e     \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Chapter 4: Graphs  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  4.1 Undirected graphs  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e 4.1 Undirected graphs \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  4.2 Directed graphs  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  4.3 Minimum Spanning Trees  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  4.4 Shortest Paths  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e     \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Chapter 5: Strings  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  5.1 String Sorts  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e 5.1 String Sorts \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  5.2 Tries  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  5.3 Substring Search  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  5.4 Regular Expressions  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  5.5 Data Compression  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e     \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Context  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Systems Programming  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e Systems Programming \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Scientific Computing  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Commercial Applications  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Operations Research  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e  Intractability  \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e  \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e     \u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003ci\u003e \u003c\/i\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003ci\u003e  \u003c\/i\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003ci\u003e  Index  \u003c\/i\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e \u003c\/li\u003e\n\u003cli\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003cb\u003e\u003ci\u003e\u003ci\u003e \u003c\/i\u003e \u003c\/i\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Pearson Education (US)","offers":[{"title":"Default Title","offer_id":48864419381591,"sku":"9780321573513","price":59.84,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780321573513.jpg?v=1791379193"},{"product_id":"it-architecture-for-dummies-9780470554234","title":"IT Architecture For Dummies","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eA solid introduction to the practices, plans, and skills required for developing a smart system architectureInformation architecture combines IT skills with business skills in order to align the IT structure of an organization with the mission, goals, and objectives of its business.\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cp\u003eIntroduction 1\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I: Developing the Architecture 7\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChapter 1: Planning for Enterprise Realignment 9\u003c\/p\u003e \u003cp\u003eChapter 2: Exploring Tasks, Roles, and Tools 17\u003c\/p\u003e \u003cp\u003eChapter 3: Pondering Platform Pros and Cons 29\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II: Defining the Role of IT Architecture 41\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChapter 4: Reducing Complexity through Standardization and Consolidation 43\u003c\/p\u003e \u003cp\u003eChapter 5: Planning Enterprise Information Security 65\u003c\/p\u003e \u003cp\u003eChapter 6: Complying with Mandates and Managing Risk 81\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III: Creating an Enterprise Culture 93\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChapter 7: Developing Identity and Access Management Strategies 95\u003c\/p\u003e \u003cp\u003eChapter 8: Developing a Network Culture through Collaboration Solutions 113\u003c\/p\u003e \u003cp\u003eChapter 9: Reviewing Communication Methods 127\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV: Developing an Extended Network Enterprise 141\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChapter 10: Managing Data Storage 143\u003c\/p\u003e \u003cp\u003eChapter 11: Managing Application Development 163\u003c\/p\u003e \u003cp\u003eChapter 12: Planning for the Mobile Enterprise 175\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart V: Obtaining Value beyond the Basic Enterprise 193\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChapter 13: Virtualizing Enterprise Systems 195\u003c\/p\u003e \u003cp\u003eChapter 14: Facilitating High-Performance Computing 207\u003c\/p\u003e \u003cp\u003eChapter 15: Enabling Green IT 219\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart VI: Protecting the Enterprise 229\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChapter 16: Planning Technology Updates 231\u003c\/p\u003e \u003cp\u003eChapter 17: Planning Security Strategies 247\u003c\/p\u003e \u003cp\u003eChapter 18: Planning Business Continuity and Disaster Recovery 261\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart VII: The Part of Tens 273\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eChapter 19: Ten Challenges for Redesigning an Existing Enterprise 275\u003c\/p\u003e \u003cp\u003eChapter 20: Ten “Low-Hanging Fruit” Opportunities 281\u003c\/p\u003e \u003cp\u003eGlossary 289\u003c\/p\u003e \u003cp\u003eIndex 313\u003c\/p\u003e","brand":"John Wiley \u0026 Sons Inc","offers":[{"title":"Default Title","offer_id":48864633160023,"sku":"9780470554234","price":21.24,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9780470554234.jpg?v=1722272817"},{"product_id":"efficient-linux-at-the-command-line-9781098113407","title":"Efficient Linux at the Command Line","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eTake your Linux skills to the next level! Whether you're a system administrator, software developer, site reliability engineer, or enthusiastic hobbyist, this practical, hands-on book will help you work faster, smarter, and more efficiently.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48866331296087,"sku":"9781098113407","price":35.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781098113407.jpg?v=1722278166"},{"product_id":"terraform-up-and-running-3e-9781098116743","title":"Terraform  Up and Running 3e","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eThis hands-on third edition, expanded and thoroughly updated for version 1.0 and beyond, shows you the fastest way to get up and running with Terraform.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48866331656535,"sku":"9781098116743","price":39.74,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781098116743.jpg?v=1722278168"},{"product_id":"usercentered-design-9781449359805","title":"UserCentered Design","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eWith practical guidelines and insights from his own experience, author Travis Lowdermilk shows you how usability and user-centered design will dramatically change the way people interact with your application.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48867117400407,"sku":"9781449359805","price":19.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781449359805.jpg?v=1722281769"},{"product_id":"make-fpgas-9781457187858","title":"Make FPGAs","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eWith Make: FPGAs, you'll learn how to break down problems into something that can be solved on an FPGA, design the logic that will run on your FPGA, and hook up electronic components to create finished projects.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48867156656471,"sku":"9781457187858","price":19.19,"currency_code":"GBP","in_stock":true}]},{"product_id":"site-reliability-engineering-9781491929124","title":"Site Reliability Engineering","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eIn this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48867304833367,"sku":"9781491929124","price":45.59,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781491929124.jpg?v=1722282698"},{"product_id":"prototyping-for-designers-9781491954089","title":"Prototyping for Designers","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eBy explaining the goals and methodologies behind prototyping-and demonstrating how to prototype for both physical and digital products-this practical guide helps beginning and intermediate designers become more comfortable with creating and testing prototypes early and often in the process.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48867305783639,"sku":"9781491954089","price":19.19,"currency_code":"GBP","in_stock":true}]},{"product_id":"fundamentals-of-software-architecture-9781492043454","title":"Fundamentals of Software Architecture","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eSalary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This book provides the first comprehensive overview of software architecture’s many aspects.","brand":"O'Reilly Media","offers":[{"title":"Default Title","offer_id":48867307487575,"sku":"9781492043454","price":63.99,"currency_code":"GBP","in_stock":false}]},{"product_id":"bayesian-optimization-in-action-9781633439078","title":"Bayesian Optimization in Action","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eApply advanced techniques for optimising machine learning processes \u003cp\u003eFor machine learning practitioners confident in maths and statistics.\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eBayesian Optimization in Action\u003c\/strong\u003e shows you how to optimise hyperparameter tuning, A\/B testing, and other aspects of the machine learning process, by applying cutting-edge Bayesian techniques. Using clear language, \u003cstrong\u003eBayesian Optimization \u003c\/strong\u003ehelps pinpoint the best configuration for your machine-learning models with speed and accuracy. With a range of illustrations, and concrete examples, this book proves that Bayesian Optimisation doesn't have to be difficult!\u003c\/p\u003e \u003cp\u003eKey features include:\u003c\/p\u003e \u003cul\u003e\n\u003cli\u003eTrain Gaussian processes on both sparse and large data sets\u003c\/li\u003e\n\u003cli\u003eCombine Gaussian processes with deep neural networks to make them flexible and expressive\u003c\/li\u003e\n\u003cli\u003eFind the most successful strategies for hyperparameter tuning\u003c\/li\u003e\n\u003cli\u003eNavigate a search space and identify high-performing regions\u003c\/li\u003e\n\u003cli\u003eApply Bayesian Optimisation to practical use cases such as cost-constrained, multi-objective, and preference optimisation\u003c\/li\u003e\n\u003cli\u003eUse PyTorch, GPyTorch, and BoTorch to implement Bayesian optimisation\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003eYou will get in-depth insights into how Bayesian optimisation works and learn how to implement it with cutting-edge Python libraries. The book's easy-to-reuse code samples will let you hit the ground running by plugging them straight into your own projects!\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAbout the technology\u003c\/strong\u003e\u003c\/p\u003e \u003cp\u003eExperimenting in science and engineering can be costly and time-consuming, especially without a reliable way to narrow down your choices. Bayesian Optimisation helps you identify optimal configurations to pursue in a search space. It uses a Gaussian process and machine learning techniques to model an objective function and quantify the uncertainty of predictions. Whether you're tuning machine learning models, recommending products to customers, or engaging in research, Bayesian Optimisation can help you make better decisions faster.\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48867861266775,"sku":"9781633439078","price":43.69,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781633439078.jpg?v=1722285315"},{"product_id":"dama-dmbok-data-management-body-of-knowledge-9781634622349","title":"DAMA-DMBOK: Data Management Body of Knowledge","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e","brand":"Technics Publications LLC","offers":[{"title":"Default Title","offer_id":48867872506199,"sku":"9781634622349","price":61.49,"currency_code":"GBP","in_stock":true}]},{"product_id":"designing-elixir-systems-with-otp-9781680506617","title":"Designing Elixir Systems With OTP","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eYou know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that's kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what's happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus.\u003c\/p\u003e \u003cp\u003eElixir is gaining mindshare as the programming language you can use to keep you software running forever, even in the face of unexpected errors and an ever growing need to use more processors. This power comes from an effective programming language, an excellent foundation for concurrency and its inheritance of a battle-tested framework called the OTP.\u003c\/p\u003e \u003cp\u003eIf you're using frameworks like Phoenix or Nerves, you're already experiencing the features that make Elixir an excellent language for today's demands. This book shows you how to go beyond simple \u003cb\u003eprogramming\u003c\/b\u003e to \u003cb\u003edesigning\u003c\/b\u003e, and that means building the right layers. Embrace those data structures that work best in functional programs and use them to build functions that perform and compose well, layer by layer, across processes. Test your code at the right place using the right techniques. Layer your code into pieces that are easy to understand and heal themselves when errors strike.\u003c\/p\u003e \u003cp\u003eOf all Elixir's boons, the most important one is that it guides us to design our programs in a way to most benefit from the architecture that they run on. The experts do it and now you can learn to design programs that do the same.\u003c\/p\u003e\u003cp\u003e\u003cb\u003eWhat You Need: \u003c\/b\u003e\u003c\/p\u003e\u003cp\u003eElixir Version 1.7 or greater.\u003c\/p\u003e","brand":"The Pragmatic Programmers","offers":[{"title":"Default Title","offer_id":48868033593687,"sku":"9781680506617","price":31.82,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781680506617.jpg?v=1722286107"},{"product_id":"creating-software-with-modern-diagramming-techniques-build-better-software-with-mermaid-9781680509830","title":"Creating Software with Modern Diagramming","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eDiagrams communicate relationships more directly and clearly than words ever can. Using only text-based markup, create meaningful and attractive diagrams to document your domain, visualize user flows, reveal system architecture at any desired level, or refactor your code. With the tools and techniques this book will give you, you'll create a wide variety of diagrams in minutes, share them with others, and revise and update them immediately on the basis of feedback. Adding diagrams to your professional vocabulary will enable you to work through your ideas quickly when working on your own code or discussing a proposal with colleagues.  Expand your professional vocabulary by learning to communicate with diagrams as easily and naturally as speaking or writing. This book will provide you with the skills and tools to turn ideas into clear, meaningful, and attractive diagrams in mere minutes, using nothing more complicated than text-based markup. You'll learn what kinds of diagrams are suited to each of a variety of use cases, from documenting your domain to understanding how complex code pieces together. Model your software's architecture, creating diagrams focused broadly or narrowly, depending on the audience. Visualize application and user flows, design database schemas, and use diagrams iteratively to design and refactor your application.  You'll be able to use technical diagramming to improve your day-to-day workflow. You will better understand the codebase you work in, communicate ideas more effectively and immediately with others, and more clearly document the architecture with C4 diagrams. Manually creating diagrams is cumbersome and time-consuming. You'll learn how to use text-based tools like Mermaid to rapidly turn ideas into diagrams. And You'll learn how to keep your diagrams up to date and seamlessly integrated into your engineering workflow. You'll be better at visualizing and communicating when you add diagrams to your standard vocabulary.  What You Need:  A Mac or PC A GitHub account","brand":"Pragmatic Bookshelf","offers":[{"title":"Default Title","offer_id":48868034347351,"sku":"9781680509830","price":22.79,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781680509830.jpg?v=1722286112"},{"product_id":"docker-kubernetes-fundamentals-first-step-into-the-world-of-containers-and-cloud-native-9781691356546","title":"Docker \u0026 Kubernetes Fundamentals: First step into","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e","brand":"Independently Published","offers":[{"title":"Default Title","offer_id":48868093788503,"sku":"9781691356546","price":8.97,"currency_code":"GBP","in_stock":true}]},{"product_id":"mastering-microsoft-power-bi-expert-techniques-to-create-interactive-insights-for-effective-data-analytics-and-business-intelligence-9781801811484","title":"Mastering Microsoft Power BI: Expert techniques","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003cb\u003ePlan, design, develop, and manage robust Power BI solutions to generate meaningful insights and make data-driven decisions.\u003c\/b\u003e\u003c\/p\u003e\u003cp\u003e\u003cb\u003ePurchase of the print or Kindle book includes a free eBook in the PDF format.\u003c\/b\u003e\u003c\/p\u003eKey Features\u003cul\u003e\n\u003cli\u003eMaster the latest dashboarding and reporting features of Microsoft Power BI\u003c\/li\u003e\n\u003cli\u003eCombine data from multiple sources, create stunning visualizations and publish Power BI apps to thousands of users\u003c\/li\u003e\n\u003cli\u003eGet the most out of Microsoft Power BI with real-world use cases and examples\u003c\/li\u003e\n\u003c\/ul\u003eBook Description\u003cp\u003eMastering Microsoft Power BI, Second Edition, provides an advanced understanding of Power BI to get the most out of your data and maximize business intelligence. This updated edition walks through each essential phase and component of Power BI, and explores the latest, most impactful Power BI features.\u003c\/p\u003e \u003cp\u003eUsing best practices and working code examples, you will connect to data sources, shape and enhance source data, and develop analytical data models. You will also learn how to apply custom visuals, implement new DAX commands and paginated SSRS-style reports, manage application workspaces and metadata, and understand how content can be staged and securely distributed via Power BI apps. Furthermore, you will explore top report and interactive dashboard design practices using features such as bookmarks and the Power KPI visual, alongside the latest capabilities of Power BI mobile applications and self-service BI techniques. Additionally, important management and administration topics are covered, including application lifecycle management via Power BI pipelines, the on-premises data gateway, and Power BI Premium capacity.\u003c\/p\u003e \u003cp\u003eBy the end of this Power BI book, you will be confident in creating sustainable and impactful charts, tables, reports, and dashboards with any kind of data using Microsoft Power BI.\u003c\/p\u003eWhat you will learn\u003cul\u003e\n\u003cli\u003eBuild efficient data retrieval and transformation processes with the Power Query M language and dataflows\u003c\/li\u003e\n\u003cli\u003eDesign scalable, user-friendly DirectQuery, import, and composite data models\u003c\/li\u003e\n\u003cli\u003eCreate basic and advanced DAX measures\u003c\/li\u003e\n\u003cli\u003eAdd ArcGIS Maps to create interesting data stories\u003c\/li\u003e\n\u003cli\u003eBuild pixel-perfect paginated reports\u003c\/li\u003e\n\u003cli\u003eDiscover the capabilities of Power BI mobile applications\u003c\/li\u003e\n\u003cli\u003eManage and monitor a Power BI environment as a Power BI administrator\u003c\/li\u003e\n\u003cli\u003eScale up a Power BI solution for an enterprise via Power BI Premium capacity\u003c\/li\u003e\n\u003c\/ul\u003eWho this book is for\u003cp\u003eBusiness Intelligence professionals and intermediate Power BI users looking to master Power BI for all their data visualization and dashboarding needs will find this book useful. An understanding of basic BI concepts is required and some familiarity with Microsoft Power BI will be helpful to make the most out of this book.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003eTable of Contents\u003col\u003e\n\u003cli\u003ePlanning Power BI Projects\u003c\/li\u003e\n\u003cli\u003ePreparing Data sources\u003c\/li\u003e\n\u003cli\u003eConnecting to Sources and Transforming Data with M\u003c\/li\u003e\n\u003cli\u003eDesigning Import, DirectQuery, and Composite Data Models\u003c\/li\u003e\n\u003cli\u003eDeveloping DAX Measures and Security Roles\u003c\/li\u003e\n\u003cli\u003ePlanning Power BI Reports\u003c\/li\u003e\n\u003cli\u003eCreating and Formatting Visualizations\u003c\/li\u003e\n\u003cli\u003eApplying Advanced Analytics\u003c\/li\u003e\n\u003cli\u003eDesigning Dashboards\u003c\/li\u003e\n\u003cli\u003eManaging Workspaces and Content\u003c\/li\u003e\n\u003cli\u003eManaging the On-Premises Data Gateway\u003c\/li\u003e\n\u003cli\u003eDeploying Paginated Reports\u003c\/li\u003e\n\u003cli\u003eCreating Power BI Apps and Content Distribution\u003c\/li\u003e\n\u003cli\u003eAdministering Power BI for an Organization\u003c\/li\u003e\n\u003cli\u003eBuilding Enterprise BI with Power BI Premium\u003c\/li\u003e\n\u003c\/ol\u003e","brand":"Packt Publishing Limited","offers":[{"title":"Default Title","offer_id":48868543398231,"sku":"9781801811484","price":37.99,"currency_code":"GBP","in_stock":true}]},{"product_id":"requirements-engineering-fundamentals-a-study-guide-for-the-certified-professional-for-requirements-engineering-exam-foundation-level-ireb-compliant-9781937538774","title":"Requirements Engineering Fundamentals: A Study","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eRequirements engineering tasks have become increasingly complex. In order to ensure a high level of knowledge and competency among requirements engineers, the International Requirements Engineering Board (IREB) developed a standardized qualification called the Certified Professional for Requirements Engineering (CPRE). The certification defines the practical skills of a requirements engineer on various training levels. This book is designed for self-study and covers the curriculum for the Certified Professional for Requirements Engineering Foundation Level exam as defined by the IREB. The 2nd edition has been thoroughly revised and is aligned with the curriculum Version 2.2 of the IREB. In addition, some minor corrections to the 1st edition have been included. About IREB: The mission of the IREB is to contribute to the standardization of further education in the fields of business analysis and requirements engineering by providing syllabi and examinations, thereby achieving a higher level of applied requirements engineering. The IRE Board is comprised of a balanced mix of independent, internationally recognized experts in the fields of economy, consulting, research, and science.The IREB is a non-profit corporation.\u003c\/p\u003e","brand":"Rocky Nook","offers":[{"title":"Default Title","offer_id":48869154586967,"sku":"9781937538774","price":999.99,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781937538774.jpg?v=1722291357"},{"product_id":"design-journeys-through-complex-systems-practice-tools-for-systemic-design-9789063696344","title":"Design Journeys through Complex Systems: Practice","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eDesign Journeys for   Complex Systems is a designer's handbook to learn systemic design tools to   engage stakeholder groups in collaborative design to address complex societal   systems. \u003cbr\u003e\u003cbr\u003e   Systemic design uses systems thinking and service design to address   large-scale societal contexts and complex socio-technical systems. These are   contexts characterized by social and technological complexity, high   uncertainty, and often problematic outcomes. \u003cbr\u003e\u003cbr\u003e   Using a tour guide metaphor, the book trains people's mindsets and provides   tools for dealing with hyper complexity, to enable understanding of systemic   problems, and to build capacity to collaborate in teams to produce action   proposals.\u003c\/p\u003e","brand":"BIS Publishers B.V.","offers":[{"title":"Default Title","offer_id":48869547540823,"sku":"9789063696344","price":29.75,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9789063696344.jpg?v=1722293312"},{"product_id":"system-design-interview-an-insiders-guide-9798664653403","title":"System Design Interview - An insider's guide","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e","brand":"Independently Published","offers":[{"title":"Default Title","offer_id":48869622382935,"sku":"9798664653403","price":30.09,"currency_code":"GBP","in_stock":true}]},{"product_id":"your-code-as-a-crime-scene-second-edition-use-forensic-techniques-to-arrest-defects-bottlenecks-and-bad-design-in-your-programs-9798888650325","title":"Your Code as a Crime Scene, Second Edition: Use","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eJack the Ripper and legacy codebases have more in common than you'd think. Inspired by forensic psychology methods, you can apply strategies to identify problems in your existing code, assess refactoring direction, and understand how your team influences the software architecture. With its unique blend of criminal psychology and code analysis, Your Code as a Crime Scene arms you with the techniques you need to take on any codebase, no matter what programming language you use.  Software development might well be the most challenging task humanity ever attempted. As systems scale up, they also become increasingly complex, expensive to maintain, and difficult to reason about. We can always write more tests, try to refactor, and even fire up a debugger to understand complex coding constructs. That's a great starting point, but you can do so much better.  Take inspiration from forensic psychology techniques to understand and improve existing code. Visualize codebases via a geographic profile from commit data to find development hotspots, prioritize technical debt, and uncover hidden dependencies. Get data and develop strategies to make the business case for larger refactorings. Detect and fix organizational problems from the vantage point of the software architecture to remove bottlenecks for the teams.  The original Your Code as a Crime Scene from 2014 pioneered techniques for understanding the intersection of people and code. This new edition reflects a decade of additional experience from hundreds of projects. Updated techniques, novel case studies, and extensive new material adds to the strengths of this cult classic.  Change how you view software development and join the hunt for better code!  What You Need:  You need to be comfortable reading code. You also need to use Git (or Subversion, Mercurial or similar version-control tool).","brand":"The Pragmatic Programmers","offers":[{"title":"Default Title","offer_id":48869639422295,"sku":"9798888650325","price":40.84,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9798888650325.jpg?v=1722293789"},{"product_id":"girl-decoded-my-quest-to-make-technology-emotionally-intelligent-and-change-the-way-we-interact-forever-9780241451564","title":"Girl Decoded My Quest to Make Technology","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cb\u003eRana el Kaliouby, Ph.D.\u003c\/b\u003e is a pioneer in artificial emotional intelligence (EI), as well as the co-founder and CEO of Affectiva, the acclaimed startup spun off from the MIT Media Lab. She grew up in Cairo, Egypt, studying an undergraduate and master's degree in computer science at the American University in Cairo. She attended Cambridge University, where she earned her Ph.D. Her company works with more than a quarter of the companies in the Fortune Global 500. An acclaimed TED speaker, Rana was named by Forbes to their list of America's Top 50 Women in Tech and Fortune included her in their list of 40 Under 40.","brand":"Penguin Books Ltd","offers":[{"title":"Default Title","offer_id":48883887014231,"sku":"9780241451564","price":999.99,"currency_code":"GBP","in_stock":false}]},{"product_id":"industrial-automated-systems-9781435488885","title":"Industrial Automated Systems","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eINDUSTRIAL AUTOMATED SYSTEMS: INSTRUMENTATION AND MOTION CONTROL, is the ideal book to provide readers with state-of-the art coverage of the full spectrum of industrial maintenance and control, from servomechanisms to instrumentation. Readers will learn about components, circuits, instruments, control techniques, calibration, tuning and programming associated with industrial automated systems. INDUSTRIAL AUTOMATED SYSTEMS: INSTRUMENTATION AND MOTION CONTROL, focuses on operation, rather than mathematical design concepts. It is formatted into sections so that it can be used for a variety of courses, such as electrical motors, sensors, variable speed drives, programmable logic controllers, servomechanisms, and various instrumentation and process classes. This book also offers readers a broader coverage of industrial maintenance and automation information than other books and provides them with a more extensive collection of supplements, including a lab manual and two hundred animated multimedia lessons on a CD.","brand":"Cengage Learning, Inc","offers":[{"title":"Default Title","offer_id":48885622636887,"sku":"9781435488885","price":999.99,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781435488885.jpg?v=1791471071"},{"product_id":"using-and-administering-linux-volume-1-9781484296172","title":"Using and Administering Linux Volume 1","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eLearn to be a Linux sysadmin and an expert user of the Linux operating system, even with no previous Linux experience. This second edition of the popular and highly rated Linux self-study training course has been fully updated to Fedora Linux 37 with expanded and revised content and figures as well new chapters on the BTRFS file system, using Zram for swap, NetworkManager, automation with Ansible, and systemd.   Like the previous version, this edition has been reviewed for technical accuracy by a highly respected Linux expert and will prepare you to manage complex systems with ease and equip you for a new career. It has also been reviewed by a student who took this course to ensure its readability and flow for those with little or no previous experience with Linux.   In this first volume of the training course series, you will learn about operating systems in general and Linux in particular, and explore the Linux philosophy for SysAdmins in preparation for the rest of the course. This\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTable of Contents\u003c\/h2\u003e\u003cbr\u003e\u003cp\u003eChapter 1: Introduction \u003c\/p\u003e\u003cp\u003eChapter 2: Introduction to Operating Systems     \u003c\/p\u003e\u003cp\u003eChapter 3: The Linux Philosophy for SysAdmins  \u003c\/p\u003e\u003cp\u003eChapter 4: Preparation  \u003c\/p\u003e\u003cp\u003eChapter 5: Installing Linux            \u003c\/p\u003e\u003cp\u003eChapter 6: Using the Xfce Desktop           \u003c\/p\u003e\u003cp\u003eChapter 7: Using the Linux Command Line              \u003c\/p\u003e\u003cp\u003eChapter 8: Core Utilities  \u003c\/p\u003e\u003cp\u003eChapter 9: Data Streams               \u003c\/p\u003eChapter 10: Text Editors                \u003cp\u003e\u003c\/p\u003e\u003cp\u003eChapter 11: Working as root        \u003c\/p\u003e\u003cp\u003eChapter 12: Installing and Updating Software      \u003c\/p\u003e\u003cp\u003eChapter 13: Tools for Problem Solving     \u003c\/p\u003e\u003cp\u003eChapter 14: Terminal Emulator Mania     \u003cb\u003eEXPANDED\u003c\/b\u003e\u003c\/p\u003e\u003cp\u003eChapter 15: Advanced Shell Topics            \u003c\/p\u003e\u003cp\u003eChapter 16: Linux Boot and Startup          \u003cb\u003eEXPANDED\u003c\/b\u003e\u003c\/p\u003e\u003cp\u003eChapter 17: Shell Configuration \u003c\/p\u003e\u003cp\u003eChapter 18: Files, Directories, and Links  \u003c\/p\u003e\u003cp\u003e \u003c\/p\u003eChapter 19: Filesystems                 \u003cb\u003eFULLY REVISED AND EXPANDED\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48885833695575,"sku":"9781484296172","price":59.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484296172.jpg?v=1722537861"},{"product_id":"dynamic-systems-modeling-performance-applications-9781536125573","title":"Dynamic Systems: Modeling, Performance \u0026","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eIn the first chapter, Dr Christian Hugo Hoffmann presents a study that adds to the current knowledge on financial risk and complexity while drawing on the concept of organized complexity, coined by Weaver. He finishes by explaining the correlation between the ideas of complexity, randomness, and systemic risks. In the second chapter, Peter A. Stubberud, Stephen C Stubberud, and Allen R. Stubberud present a signal processing technique, which is a simplification of the dynamic element matching technique, or DEMT and is referred to as the dynamic system matching technique, or DSMT, for controlling the noise signal in the output of a system due to manufacturing errors. In the third and final chapter, Yu Zhou, Weigang Wu, and Huaguan Li define new system models to describe the dynamicity of clusters and then, based on those models, they design and present an algorithm that is able to elect an eventual leader.","brand":"Nova Science Publishers Inc","offers":[{"title":"Default Title","offer_id":48886072443223,"sku":"9781536125573","price":78.39,"currency_code":"GBP","in_stock":false}]},{"product_id":"performance-evaluation-of-parallel-distributed-emergent-systems-volume-i-distributed-cluster-grid-computing-9781594548178","title":"Performance Evaluation of Parallel, Distributed \u0026","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e","brand":"Nova Science Publishers Inc","offers":[{"title":"Default Title","offer_id":48886531227991,"sku":"9781594548178","price":129.74,"currency_code":"GBP","in_stock":false}]},{"product_id":"software-telemetry-reliable-logging-and-monitoring-9781617298141","title":"Software Telemetry: Reliable logging and","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003e\u003cstrong\u003e\"Do you want to learn more about software telemetry? Don't look any further, this book is the one you need.\"\u003c\/strong\u003e - Sander Zegveld\u003c\/p\u003e \u003cp\u003eSoftware telemetry is the discipline of tracing, logging, and monitoring infrastructure by observing and analyzing the events generated by the system. In Software Telemetry, you'll master the best practices for operating and updating telemetry systems. This practical guide is filled with techniques you can apply to any organization upgrading and optimizing their telemetry systems, from lean startups to well-established companies. You'll learn troubleshooting techniques to deal with every eventuality, such as building easily-auditable systems, preventing and handling accidental data leaks, and ensuring compliance with standards like GDPR.\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eabout the technology\u003c\/strong\u003e\u003cbr\u003eComplex systems can become black boxes. Telemetry provides feedback on what's happening inside. Telemetry systems are built for gathering, transforming, and communicating data on the performance, functionality, processing speeds, errors, and security events of production systems. There are many forms of telemetry systems, from classic centralized logging to cutting-edge distributed tracing that follows data across microservices. But despite their difference in functionality, all telemetry systems share core operational similarities—and best practices for optimizing them to support your business needs.\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eabout the book\u003c\/strong\u003e\u003cbr\u003eSoftware Telemetry is a guide to operating the telemetry systems that monitor and report on your applications. It takes a big picture view of telemetry, teaching you to manage your logging, metrics, and events as a complete end-to-end ecosystem. You'll learn the base architecture that underpins any software telemetry system, allowing you to easily integrate new systems into your existing infrastructure, and how these systems work under the hood. Throughout, you'll follow three very different companies to see how telemetry techniques impact a software-producing startup, a large legacy enterprise, and any organization that writes software for internal use. You'll even cover how software telemetry is used by court processes—ensuring that when your first telemetry discovery request arrives, there's no reason to panic!\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003ewhat's inside\u003c\/strong\u003e\u003cbr\u003e- Processes for legal compliance\u003cbr\u003e- Cleaning up after toxic data spills and leaks\u003cbr\u003e- Safely handling toxic telemetry and confidential records\u003cbr\u003e- Multi-tenant techniques and transformation processes\u003cbr\u003e- Updating metrics aggregation and sampling traces to display accurate data for longer\u003cbr\u003e- Revising software telemetry emissions to be easier to parse\u003cbr\u003e- Justifying increased spend on telemetry software\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eabout the reader\u003c\/strong\u003e\u003cbr\u003eFor software developers and infrastructure engineers supporting and building telemetry systems.\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eabout the author\u003c\/strong\u003e\u003cbr\u003e\u003cem\u003eJamie Riedesel\u003c\/em\u003e is a staff engineer at Dropbox. She has over twenty years of experience in IT, working in government, education, legacy companies, and startups. She has specialized in DevOps for the past decade, running distributed systems in public clouds, getting over workplace trauma, and designing software telemetry architectures.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003e\u003cp\u003e“The telemetry bible!” \u003cb\u003eSander Zegveld, Developers.nl\u003c\/b\u003e  \u003c\/p\u003e \u003cp\u003e“An in-depth guide to operating software telemetry systems.” \u003cb\u003eSushant Bhadkamkar, Lyft\u003c\/b\u003e   \u003c\/p\u003e \u003cp\u003e“A must-have tome of knowledge written by one of the leaders in software telemetry.” \u003cb\u003eAndrew Bovill, CACI International Inc    \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e“Something for every level of distributed systems, from hardware to networking to operating systems to software.” \u003cb\u003eLokesh Kumar, Urgently\u003c\/b\u003e\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48886900490583,"sku":"9781617298141","price":43.19,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617298141.jpg?v=1722542091"},{"product_id":"cyber-defenders-career-guide-9781617298202","title":"Cyber Defenders' Career Guide","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003e\u003cp\u003eKickstart a career in cyber security by learning how to adapt your existing technical and non-technical skills with \u003cb\u003e\u003ci\u003eCyber Defenders' CareerGuide\u003c\/i\u003e\u003c\/b\u003e.   \u003c\/p\u003e \u003cp\u003e\u003cb\u003e\u003ci\u003eCyber Defenders' Career Guide\u003c\/i\u003e\u003c\/b\u003e unlocks your pathway to becoming a great security practitioner. You'll learn how toreliably enter the security field and quickly grow into your new career, following clear, practical advice that's based on research and interviews with hundreds of hiring managers. Author \u003cb\u003eAlyssa Miller\u003c\/b\u003e has spent over adecade in cyber security leadership and talent development, and she shares her unique perspective in this revealing industry guide.\u003c\/p\u003e \u003cp\u003eBy some estimates, there are over 4 million unfilled jobs in cybersecurity. This important field is growing fast, with a huge demand for skilled recruits. But where do you start? How can you know you're ready? This book isyour invaluable guide to starting and navigating a rewarding security career.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003ch2\u003eTrade Review\u003c\/h2\u003e\u003cp\u003e“Alyssa Miller brilliantly explains the intricacies of cybersecurity and helps the reader navigate this complex moving landscape.” \u003cb\u003eMarcRoulleau\u003c\/b\u003e   \u003c\/p\u003e \u003cp\u003e“A comprehensive guide on getting started in the field of Cybersecurity.” \u003cb\u003eDipen N. Kumar\u003c\/b\u003e   \u003c\/p\u003e \u003cp\u003e“Recommended for anyone wanting to work in security, no matter what part of security that is.” \u003cb\u003eJan Vinterberg    \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e“A highly recommended book for those looking to start their career in Cybersecurity, as well as those who are already part of the industry.” \u003cb\u003eHarshRaval    \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e“An interesting guide to introduce yourself to the cybersecurity world.” \u003cb\u003eEmanuele Origgi\u003c\/b\u003e   \u003c\/p\u003e \u003cp\u003e“A tremendous work in terms of the number of real-world examples.More than once I found myself smiling and nodding because the things the author described mirrored my experiences in being a mentor to a cybersecurity-focused community.” \u003cb\u003eRob Goelz\u003c\/b\u003e   \u003c\/p\u003e \u003cp\u003e“Very smart and definitely worth reading. I particularly loved thepart about mentoring.” \u003cb\u003eRafik Naccache\u003c\/b\u003e   \u003c\/p\u003e \u003cp\u003e“It's the most complete written introduction to a successful career approach I know.” \u003cb\u003eJoerg Discher\u003c\/b\u003e   \u003c\/p\u003e \u003cp\u003e“Even if you decide that cyber security is not the right career path for you, it's full of good advice for taking charge of your career intech.” \u003cb\u003eAmanda Debler\u003c\/b\u003e   \u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48886900556119,"sku":"9781617298202","price":999.99,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781617298202.jpg?v=1791474869"},{"product_id":"acing-the-system-design-interview-9781633439108","title":"Acing the System Design Interview","description":"\u003ch2\u003eBook Synopsis\u003c\/h2\u003eAce the toughest system design interview questions and land the job and salary you want! \u003cp\u003eFor software engineers, software architects, and engineering managers looking to advance their careers.\u003c\/p\u003e \u003cp\u003e\u003cstrong\u003eAcing the System Design Interview \u003c\/strong\u003etackles the hardest part of the software engineering hiring process – the system design interview. Never fear! In this book, Zhiyong Tan reveals his unique system design interview techniques that have earned him job offers from Amazon, Apple, PayPal, and Uber.\u003c\/p\u003e \u003cp\u003eThe book goes well beyond typical soft skills. You will master a structured and organised approach to present system design ideas like:\u003c\/p\u003e \u003cul\u003e\n\u003cli\u003eScaling databases to support heavy traffic\u003c\/li\u003e\n\u003cli\u003eDistributed transactions techniques to ensure data consistency\u003c\/li\u003e\n\u003cli\u003eServices for functional partitioning such as API gateway, service mesh, and metadata\u003c\/li\u003e\n\u003cli\u003eCommon API paradigms including REST, RPC, and GraphQL\u003c\/li\u003e\n\u003cli\u003eCaching strategies, including their tradeoffs\u003c\/li\u003e\n\u003cli\u003eLogging, monitoring, and alerting concepts that are critical in any system design\u003c\/li\u003e\n\u003cli\u003eCommunication skills that demonstrate your engineering maturity\u003c\/li\u003e\n\u003c\/ul\u003e \u003cp\u003eThe interview's open-ended nature often makes nailing it more art than science – and notoriously difficult to prepare for. With this book, you will dive deep into the common technical topics that arise during interviews, learning how to apply them to mentally perfect different kinds of systems.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e About the technology \u003cp\u003eAny senior role in software engineering will include system design interviews in the hiring process. Built around open-ended questions with no standard answer, these interviews test how well you understand the design of complex systems. You will need to demonstrate that you can balance trade-offs to design a system that both meets current requirements and is flexible to future modifications and extensions – all in a 50-minute interview!\u003c\/p\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":48887150608727,"sku":"9781633439108","price":41.39,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781633439108.jpg?v=1722543243"}],"url":"https:\/\/bookcurl.com\/collections\/systems-analysis-and-design.oembed?page=9","provider":"Book Curl","version":"1.0","type":"link"}