Computer architecture and logic design Books
O'Reilly Media Learning Systems Thinking
Book Synopsis
£35.99
Rocky Nook Requirements Engineering Fundamentals: A Study
Book SynopsisRequirements 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.
£26.40
O'Reilly Media Monolith to Microservices
Book SynopsisHow do you detangle a monolithic system and migrate it to a microservices architecture? As a companion to Sam Newman’s extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture.
£33.74
O'Reilly Media Terraform Up and Running 3e
Book SynopsisThis 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.
£39.74
Manning Publications Continuous Delivery for Kubernetes
Book SynopsisTake the fast track in your journey to continuous delivery, with open source tools for Kubernetes and cloud applications. This book explores the tools and techniques you'll need to overcome common cloud native challenges. In Continuous Delivery for Kubernetes you will learn how to: Select the right open source project to solve challenges with your Kubernetes application Package, version, distribute and instant cloud native services using Helm Create and run pipelines using Tekton Plan and implement a multicloud strategy with Crossplane Implement risk-free and progressive upgrades with Knative Utilize Knative for serving, routing, and event-driven applications Automate testing, even when you don't have all your services up and running Troubleshoot and measure application performance Continuous Delivery for Kubernetes lays out a toolbox of free, open source projects you can use to implement continuous delivery for Kubernetes-based applications in the cloud. Each chapter covers a different project, clearly demonstrating how it simplifies essential CD tasks like packaging, building pipelines, and multi-cloud deployment. This book shows developers and architects confidently identify common patterns in successful open source tools so they can pick the right options for their own platforms. about the technology Continuous delivery practices help your team quickly introduce, iterate on, and deploy new features so you can get software into production quickly. The tools in this book help facilitate continuous delivery practices by solving the technical and architectural challenges commonly found when adopting Kubernetes, automating essential dev and deployment tasks, and improving your team's collaboration. about the book Continuous Delivery for Kubernetes accelerates development of cloud-based systems with vibrant open source tools of the Kubernetes ecosystem. You'll use powerful open source projects like Helm, Tekton, Knative, and Crossplane to automate your projects from testing through delivery. Learn how to package services, build and deploy services to a Kubernetes cluster, and combine different tools to solve the complex challenges of CD in a cloud native environment. RETAIL SELLING POINTS Select the right open source project to solve challenges with your Kubernetes application Package, version, distribute and instant cloud native services using Helm Utilize Knative for serving, routing, and event-driven applications Automate testing, even when you don't have all your services up and running Troubleshoot and measure application performance AUDIENCE For developers and software architects familiar with the basics of containers and Kubernetes. Trade Review'A great intro to best practices regarding continuous delivery in the cloud.' Rahul Jain 'The material is really excellent: the explanations are clear and the illustrative examples are practical and relevant.' Alain Lompo 'A great soup-to-nuts book for learning about CD for Kubernetes-native applications.' Kent SpillnerTable of Contentstable of contents detailed TOC READ IN LIVEBOOK 1CLOUD-NATIVE CONTINUOUS DELIVERY READ IN LIVEBOOK 2CLOUD-NATIVE APPLICATION CHALLENGES READ IN LIVEBOOK 3SERVICE AND ENVIRONMENT PIPELINES READ IN LIVEBOOK 4MULTI-CLOUD INFRASTRUCTURE READ IN LIVEBOOK 5RELEASE STRATEGIES READ IN LIVEBOOK 6EVENTS FOR CLOUD-NATIVE INTEGRATIONS READ IN LIVEBOOK 7FUNCTIONS FOR KUBERNETES 8 BUILDING A PLATFORM DESIGNED FOR CD 9 THE ROAD TO CONTINUOUS & PROGRESSIVE DELIVERY
£41.39
Pearson Education Limited Computer Systems A Programmers Perspective Global
Book SynopsisTable of Contents Part I: Program Structure and Execution Chapter 1: A Tour of Computer Systems Chapter 2: Representing and Manipulating Information Chapter 3: Machine-Level Representation of Programs Chapter 4: Processor Architecture Chapter 5: Optimizing Program Performance Chapter 6: The Memory Hierarchy Part II: Running Programs on a System Chapter 7: Linking Chapter 8: Exceptional Control Flow Chapter 9: Virtual Memory Part III: Interaction and Communication Between Programs Chapter 10: System-Level I/O Chapter 11: Network Programming Chapter 12: Concurrent Programming Appendix Error Handling
£75.04
John Wiley & Sons Inc FPGA Prototyping by VHDL Examples
Book SynopsisA hands-on introduction to FPGA prototyping and SoC design This Second Edition of the popular book follows the same learning-by-doing approach to teach the fundamentals and practices of VHDL synthesis and FPGA prototyping. It uses a coherent series of examples to demonstrate the process to develop sophisticated digital circuits and IP (intellectual property) cores, integrate them into an SoC (system on a chip) framework, realize the system on an FPGA prototyping board, and verify the hardware and software operation. The examples start with simple gate-level circuits, progress gradually through the RT (register transfer) level modules, and lead to a functional embedded system with custom I/O peripherals and hardware accelerators. Although it is an introductory text, the examples are developed in a rigorous manner, and the derivations follow strict design guidelines and coding practices used for large, complex digital systems. The new edition is completely Table of ContentsPreface ix Acknowledgments xv PART I BASIC DIGITAL CIRCUITS DEVELOPMENT 1 Gate-level Combinational Circuit 1 1.1 Overview of VHDL 1 1.2 General description 2 1.3 Structural description 6 1.4 Top-level signal mapping 8 1.5 Testbench 9 1.6 Bibliographic notes 11 1.7 Suggested experiments 11 2 Overview of FPGA and EDA software 13 2.1 FPGA 13 2.2 Overview of the Digilent Nexys 4 DDR board 15 2.3 Development flow 16 2.4 Xilinx Vivado Design Suite 18 2.5 Bibliographic notes 18 2.6 Suggested experiments 18 3 RT-level combinational circuit 23 3.1 RT-level components 23 3.2 Routing circuit with concurrent assignment statements 29 3.3 Modeling with a process 34 3.4 Routing circuit with if and case statements 36 3.5 Constants and generics 41 3.6 Replicated structure 44 3.7 Design examples 46 3.8 Bibliographic notes 58 3.9 Suggested experiments 58 4 Regular Sequential Circuit 61 4.1 Introduction 61 4.2 HDL code of the FF and register 64 4.3 Simple design examples 67 4.4 Testbench for sequential circuits 72 4.5 Case study 75 4.6 Timing and clocking 87 4.7 Bibliographic notes 90 4.8 Suggested experiments 90 5 FSM 93 5.1 Introduction 93 5.2 FSM code development 97 5.3 Design examples 100 5.4 Bibliographic notes 110 5.5 Suggested experiments 110 6 FSMD 113 6.1 Introduction 113 6.2 Code development of an FSMD 119 6.3 Design examples 125 6.4 Bibliographic notes 140 6.5 Suggested experiments 141 7 RAM and Buffer of FPGA 145 7.1 Embedded memory of FPGA device 145 7.2 General description for RAM-like component 147 7.3 FIFO buffer 153 7.4 HDL templates for memory inference 158 7.5 Overview of memory controller 164 7.6 Bibliographic notes 166 7.7 Suggested experiments 166 PART II EMBEDDED SOC I: VANILLA FPRO SYSTEM 8 Overview of Embedded SoC Systems 171 8.1 Embedded SoC 171 8.2 Development Flow of Embedded SoC 173 8.3 FPro SoC Platform 176 8.4 Adaption on Digilent Nexys 4 DDR board 180 8.5 Portability 182 8.6 Organization 184 8.7 Bibliographic notes 184 9 Bare Metal System Software Development 187 9.1 Bare metal system development overview 187 9.2 Memory-mapped I/O 189 9.3 Direct I/O Register Access 191 9.4 Robust I/O Register Access 193 9.5 Techniques for low-level I/O operations 197 9.6 Device Drivers 199 9.7 FPro Utility Routines and Directory Structure 204 9.8 Test program 208 9.9 Bibliographic notes 211 9.10 Suggested experiments 211 10 FPro Bus Protocol and MMIO Slot Specification 213 10.1 FPro Bus 213 10.2 Interface with bus 216 10.3 MMIO I/O core 222 10.4 Timer core development 226 10.5 MMIO controller 229 10.6 MCS I/O bus and bridge 234 10.7 Vanilla FPRO System Construction 238 10.8 Bibliographic notes 240 10.9 Suggested experiments 240 11 UART Core 243 11.1 Introduction 243 11.2 UART Construction 245 11.3 UART core development 253 11.4 UART driver 256 11.5 Additional Project Ideas 262 11.6 Bibliographic notes 265 11.7 Suggested experiments 266 PART III EMBEDDED SOC II: BASIC I/O CORES 12 Xilinx XADC Core 271 12.1 Overview of XADC 271 12.2 XADC core development 273 12.3 XADC core device driver 278 12.4 Sampler FPro System 281 12.5 Additional Project Ideas 291 12.6 Bibliographic notes 292 12.7 Suggested experiments 292 13 Pulse Width Modulation Core 295 13.1 Introduction 295 13.2 PWM Design 296 13.3 PWM core development 299 13.4 PWM driver 302 13.5 Testing 303 13.6 Project ideas 304 13.7 Suggested experiments 305 14 Debouncing core and LED-Mux Core 307 14.1 Debouncing Core 307 14.2 LED-Mux Core 313 14.3 Project Ideas 319 14.4 Suggested Experiments 320 15 SPI Core 323 15.1 Overview 323 15.3 SPI Core Development 333 15.4 SPI Driver 336 15.5 Test 338 15.6 Project Ideas 341 15.7 Bibliographic notes 342 15.8 Suggested Experiments 342 16 I2C Core 347 16.1 Overview 347 16.2 I2C Controller 350 16.3 I2C Core Development 360 16.4 I2C Driver 361 16.5 Test 365 16.6 Project Idea 366 16.7 Bibliographic notes 367 16.8 Suggested experiments 367 17 PS2 Core 371 17.1 Introduction 371 17.2 PS2 Controller 373 17.3 PS2 core development 383 17.4 PS2 driver 384 17.5 Test 393 17.6 Bibliographic notes 394 17.7 Suggested experiments 394 18 Sound I: DDFS Core 397 18.1 Introduction 397 18.2 Design and implementation 397 18.3 Fixed-point arithmetic 400 18.4 DDFS Construction 402 18.5 DAC (digital-to-analog converter) 404 18.6 DDFS core development 407 18.7 DDFS driver 409 18.8 Testing 412 18.9 Bibliographic notes 413 18.10 Suggested experiments 413 19 Sound II: ADSR Core 415 19.1 Introduction 415 19.2 ADSR envelope generator 416 19.3 ADSR core development 421 19.4 ADRS driver 423 19.5 Testing 429 19.6 Project Idea 430 19.7 Bibliographic notes 431 19.8 Suggested experiments 431 PART IV EMBEDDED SOC III: VIDEO CORES 20 Introduction to Video System 435 20.1 Introduction to a video display 435 20.2 Stream interface 437 20.3 VGA Synchronization 439 20.4 Bar test-pattern generator 448 20.5 Color-to-grayscale conversion circuit 449 20.6 Demo video system 451 20.7 Advanced video standards 452 20.8 Bibliographic notes 453 20.9 Suggested experiments 454 21 FPro Video Subsystem 457 21.1 Organization of video subsystem 457 21.2 FPro video IP core 461 21.3 Example video cores 466 21.4 FPro video synchronization core 470 21.5 Daisy video subsystem 479 21.6 Vanilla daisy FPro system 486 21.7 Video driver and testing program 490 21.8 Bibliographic notes 493 21.9 Suggested experiments 493 22 Sprite Core 497 22.1 Introduction 497 22.2 Basic design 498 22.3 Mouse pointer core 500 22.4 “Ghost” character core 505 22.5 Sprite core driver and testing program 513 22.6 Bibliographic notes 516 22.7 Suggested experiments 516 23 On-Screen-Display Core 519 23.1 Introduction to tile graphics 519 23.2 Basic OSD design 521 23.3 OSD core 524 23.4 OSD core driver and testing program 530 23.5 Bibliographic notes 532 23.6 Suggested experiments 532 24 VGA Frame Buffer Core 535 24.1 Overview 535 24.2 Frame buffer core 536 24.3 Register map 540 24.4 Driver and testing program 542 543 24.5 Project Ideas 545 24.6 Bibliographic notes 547 24.7 Suggested experiments 547 PART V EPILOGUE 25 What Next 553 References 557 Appendix A: Tutorials 561 A.1 Overview of Xilinx Vivado IDE 561 A.2 Short tutorial on Vivado hardware development 565 A.3 Short tutorial on Vivado simulation 570 A.4 Tutorial on IP instantiation 574 A.5 Short tutorial on FPro system development 580 A.6 Bibliographic notes 587 Topic Index 589
£83.66
Manning Publications Software Mistakes and Tradeoffs
Book SynopsisIn Software Mistakes and Tradeoffs you'll learn from costly mistakes that Tomasz Lelek and Jon Skeet have encountered over their impressive careers. You'll explore real-world scenarios where poor understanding of tradeoffs lead to major problems down the road, to help you make better design decisions. Plus, with a little practice, you'll be able to avoid the pitfalls that trip up even the most experienced developers. Software Mistakes and Tradeoffs teaches you how to make better decisions about designing, planning, and implementing applications. You'll analyse real-world scenarios where the wrong tradeoff decisions were made, and discover what could have been done differently. The book lays out the pros and cons of different approaches and explores evergreen patterns that will always be relevant to software design. Code performance versus simplicity. Delivery speed versus duplication. Flexibility versus maintain ability—everydecision you make in software engineering involves balancing tradeoffs. Often, decisions that look good at the design stage can prove problematic in practice.This book reveals the questions you need to be asking to make the right decisions for your own software tradeoffs. Trade Review“I can saywith confidence that 100% of software developers ask themselves at least onequestion addressed in this book.” Nelson González “The code examples are good enough that even if you don't have experience with Java—you can still understand what the authors aretrying to convey.” John Henry Galino “Tomasz Lelek and Jon Skeet are here to guide developers through the minefield of software engineering.” Gilles Lachelini “Reading this book will make you wiser and turn youinto the Yoda of the Software Engineering biz!” Gregory Varghese “If you need a book to learn how to think like a better programmer...then this is the book.” Alex Saez “This book is vital for every developer, from beginner to advanced, to improve your code quality and resolve common problems.”Andres Sacco “This book holds valuable information and tips every programmer should know before doing bigger software projects.” RobertTrausmuth
£34.19
Manning Publications Micro Frontends in Action
Book SynopsisBy adopting the micro frontends approach and designing your web apps as systems of features, you can deliver faster feature development, easier upgrades, and pick and choose the technology you use in your stack. Micro Frontends in Action is your guide to simplifying unwieldy frontends by composing them from small, well-defined units. You’ll learn to integrate web applications made up of smaller fragments using tools such as web components or server side includes, how to solve the organizational challenges of micro frontends, and how to create a design system that ensures an end user gets a consistent look and feel for your application. Key Features · Applying integration strategies with iframes, AJAX, server-side includes, web components and the app-shell approach · Optimizing for performance and asset delivery strategies · Designing coherent user interfaces · Migrating to a micro frontends architecture For intermediate web developers, team leaders, and software architects. About the technology The micro frontends approach extends the principles of microservices to frontend development. The application is divided into multiple independent vertical slices–from the database right up to the UI–then integrated using standards such as web components into a single user-facing frontend. Thanks to the smaller scope of a micro frontend, teams can deliver features faster, upgrade more easily, and make their own choices about their technology stack. Michael Geers is a software developer specializing in building user interfaces. He has written software for the web since he was a teenager. In the last few years, he has worked on various customer projects with verticalized architectures. He shares his experiences on this topic at international conferences, in a series of magazine articles, and website.Table of ContentsWelcomeMEAP VERSION 41 What Are Micro Frontends?2 My First Micro Frontends Project3 Composition with AJAX & Server-side Routing4 Server-side Composition5 Client-side Composition6 Communication Patterns7 Client-side Routing & The Application Shell8 Composition & Universal Rendering9 Which Architecture Fits My Project?10 Asset Loading11 Performance is Key12 User Interface & Design System13 Teams & Boundaries14 Migration, Local Development & Testing
£29.99
John C. Scott But How Do It Know
£12.95
O'Reilly Media Architecting Modern Data Platforms
Book SynopsisIdeal for enterprise architects, IT managers, application architects, and data engineers, this book shows you how to overcome the many challenges that emerge during Hadoop projects.
£53.99
Manning Publications ASP.NET Core Razor Pages in Action
Book SynopsisRazor Pages lets you build, configure, and deploy amazing dynamic ASP.NET websites with ease. In ASP.NET Core Razor Pages in Action you will learn: Building, configuring, and publishing a data-driven website Creating a complete web application step-by-step Forms for collecting and processing user data Connecting to databases from a Razor Page Protecting areas of a Razor Page from unauthorized access with ASP.NET Identity Using Object Relational Mapping tools to work with data in Razor Pages applications Generating CRUD pages using scaffolding gestures Generating and sending email from your web application ASP.NET Core Razor Pages in Action teaches you to develop dynamic websites using the powerful Razor Pages framework, .NET 6, and ASP.NET. Razor Pages generates HTML on the server, and is the perfect choice for eCommerce sites, intranet services, content management systems, and other apps that require reliability. In this book, you'll use Razor Pages to build a complete application for booking city breaks, learning to iterate amazing new features chapter-by-chapter. about the technology Razor Pages sits on top of .NET 6 as a key part of ASP.NET Core, and has become the recommended tool for any developer building websites with Microsoft technologies. The page-focused framework is great for building dynamic websites that change frequently, and simplifies the process of building complex applications. about the book ASP.NET Core Razor Pages in Action shows you how to use Razor Pages to create dynamic websites that are easy to test and scale. You'll go hands-on to build a complete vacation-booking application, incorporating new framework features and adding complexities as they're introduced. As the application unfolds, you'll see how Razor Pages simplifies all the essential tasks of web development, from form creation and data processing, to easy publication and deployment. You'll also learn to enhance your web applications with the huge ecosystem of C# libraries, and how to locate the perfect tool for your task using centralized repositories.Trade Review'If you need to develop LoB applications, particularly CRUD apps, this book will give you the tools.' Paul Brown 'A great resource to learn Razor Pages.' Lee Cottrell 'A high degree of clarity, with excellent diagrams and code examples.' Mike BaranTable of Contentstable of contents detailed TOC PART 1: GETTING STARTED READ IN LIVEBOOK 1GETTING STARTED WITH RAZOR PAGES READ IN LIVEBOOK 2YOUR FIRST APPLICATION READ IN LIVEBOOK 3WORKING WITH RAZOR PAGES READ IN LIVEBOOK 4MATCHING URLS TO RAZOR PAGES WITH ROUTING PART 2: APPLICATION DEVELOPMENT READ IN LIVEBOOK 5WORKING WITH FORMS - MODEL BINDING READ IN LIVEBOOK 6WORKING WITH FORMS - TAG HELPERS READ IN LIVEBOOK 7USING DEPENDENCY INJECTION TO MANAGE SERVICES READ IN LIVEBOOK 8WORKING WITH DATA READ IN LIVEBOOK 9MANAGING USERS WITH AUTHENTICATION READ IN LIVEBOOK 10CONTROLLING ACCESS WITH AUTHORIZATION READ IN LIVEBOOK 11CLIENT-SIDE TECHNOLOGIES AND AJAX PART 3: GOING LIVE READ IN LIVEBOOK 12TROUBLESHOOTING YOUR APPLICATION READ IN LIVEBOOK 13PROTECTING YOUR APPLICATION AGAINST EXTERNAL ATTACKS 14 PUBLISHING YOUR APPLICATION
£41.39
John Wiley & Sons Inc Raspberry Pi User Guide
Book SynopsisLearn the Raspberry Pi 3 from the experts! Raspberry Pi User Guide, 4th Edition is the "unofficial official" guide to everything Raspberry Pi 3. Written by the Pi's creator and a leading Pi guru, this book goes straight to the source to bring you the ultimate Raspberry Pi 3 manual.Table of ContentsIntroduction 1 Programming is Fun! 1 A Bit of History 3 So What Can You Do with the Raspberry Pi? 8 Part I The Board 11 Chapter 1 Meet the Raspberry Pi 13 A Trip Around the Board 13 Model A/B 16 Model A+/B+ 16 Raspberry Pi 2 17 Raspberry Pi 3 18 Raspberry Pi Zero 19 A Bit of Background 20 ARM Versus x86 20 Windows Versus Linux 21 Chapter 2 Getting Started with the Raspberry Pi 23 Connecting a Display 23 Composite Video 24 HDMI Video 25 DSI Video 26 Connecting Audio 26 Connecting a Keyboard and Mouse 27 Installing NOOBS on an SD Card 29 Connecting External Storage 30 Connecting the Network 31 Wired Networking 32 Wireless Networking 33 Connecting Power 34 Installing the Operating System 35 Installing Using NOOBS 35 Installing Manually 37 Connecting Bluetooth Devices 41 Chapter 3 Linux System Administration 43 Linux: An Overview 43 Linux Basics 46 Introducing Raspbian 46 About Raspbian’s Parent, Debian 51 Alternatives to Raspbian 51 Using External Storage Devices 52 Creating a New User Account 54 File System Layout 54 Logical Layout 55 Physical Layout 57 Installing and Uninstalling Software 57 Managing Software Graphically 57 Managing Software at the Command Line 58 Finding the Software You Want 60 Installing Software 61 Uninstalling Software 62 Upgrading Software 62 Shutting the Pi Down Safely 63 Chapter 4 Troubleshooting 65 Keyboard and Mouse Diagnostics 65 Power Diagnostics 66 Display Diagnostics 68 Boot Diagnostics 69 Network Diagnostics 69 Chapter 5 Network Configuration 73 Wired Networking 73 Connecting to a Wired Network via the GUI 73 Connecting to a Wired Network via the Console 75 Testing Your Connectivity 76 Wireless Networking 76 Connecting to a Wireless Network via the GUI 77 Connecting to a Wireless Network via the Console 79 Chapter 6 The Raspberry Pi Configuration Tool 85 Running the Tool 85 The System Tab 86 Filesystem 86 Password 87 Hostname 88 Boot 88 Auto Login 88 Network at Boot 89 Overscan 89 Rastrack 89 The Interfaces Tab 90 Camera 91 SSH 91 SPI 91 I2C 91 Serial 91 1-Wire 92 Performance 92 Overclock 92 GPU Memory 94 Localisation 94 Locale 94 Timezone 96 Keyboard 96 Chapter 7 Advanced Raspberry Pi Configuration 99 Editing Configuration Files via NOOBS 99 Hardware Settings: config.txt 101 Modifying the Display 102 Boot Options 105 Overclocking the Raspberry Pi 106 Disabling L2 Cache 110 Enabling Test Mode 110 Memory Partitioning 111 Software Settings: cmdline.txt 112 Part II Building a Media Centre or Productivity Machine 115 Chapter 8 The Pi as a Home Theatre PC 117 Playing Music at the Console 117 Dedicated HTPC with OSMC 119 Streaming Internet Media 122 Streaming Local Network Media 123 Configuring OSMC 124 Chapter 9 The Pi as a Productivity Machine 127 Using Cloud-Based Apps 127 Using LibreOffice 130 Image Editing with the Gimp 131 Part III Programming the Pi 135 Chapter 10 An Introduction to Scratch 137 Introducing Scratch 137 Example 1: Hello World 138 Example 2: Animation and Sound 141 Example 3: A Simple Game 144 Interfacing Scratch with Hardware .149 Further Reading 152 Chapter 11 An Introduction to Python 153 Introducing Python 153 Example 1: Hello World 154 Example 2: Comments, Inputs, Variables, and Loops 159 Example 3: Gaming with pygame 164 Example 4: Python and Networking 172 Further Reading 179 Chapter 12 Minecraft Pi Edition 181 Introducing Minecraft Pi Edition 181 Installing Minecraft 182 Running Minecraft 182 Exploration 184 Hacking Minecraft 185 Part IV Hardware Hacking 191 Chapter 13 Learning to Hack Hardware 193 Electronic Equipment 193 Reading Resistor Colour Codes 195 Sourcing Components 197 Online Sources 197 Offline Sources 198 Hobby Specialists 199 Moving Up from the Breadboard 199 A Brief Guide to Soldering 202 Chapter 14 The GPIO Port 207 Identifying Your Board Revision 207 GPIO Pinout Diagrams 208 GPIO Features 210 UART Serial Bus 211 I2C Bus 211 SPI Bus 211 Using the GPIO Port in Python 212 GPIO Output: Flashing an LED 212 GPIO Input: Reading a Button 216 Soldering the Raspberry Pi Zero’s GPIO Header 220 Chapter 15 The Raspberry Pi Camera Module 223 Why Use the Camera Module? 224 Choosing a Camera Module 224 Installing the Camera Module 225 Enabling Camera Mode 228 Capturing Stills 230 Recording Video 232 Command-Line Time-Lapse Photography 233 Chapter 16 Add-On Hardware 237 Official Raspberry Pi Case 238 Installation 239 Raspberry Pi 7" Touchscreen Display 240 Installation 241 Sense HAT 244 Installation 245 Programming the Sense HAT 247 Part V Appendixes 251 Appendix A Python Recipes 253 Raspberry Snake (Chapter 11, Example 3) 253 IRC User List (Chapter 11, Example 4) 255 GPIO Input and Output (Chapter 14) 257 Appendix B Raspberry Pi Camera Module Quick Reference 259 Shared Options 259 Raspistill Options 264 Raspivid Options 266 Appendix C HDMI Display Modes 269 Index 277
£19.19
Springer New York VLSI Design A Practical Guide for FPGA and ASIC
Book SynopsisThis book provides insight into the practical design of VLSI circuits. Coverage includes key concepts in CMOS digital design, design of DSP and communication blocks on FPGAs, ASIC front end and physical design, and analog and mixed signal design.Table of ContentsCMOS Digital Design.- FPGA Application Design.- ASIC Design.- Analog and Mixed Signal Design.
£41.24
Manning Publications Good Code, Bad Code: Think like a software
Book Synopsis"Helps explain some of the knowledge gaps between enthusiastic new graduates and grouchy old gray beards like myself." - Joe Ivans Practical techniques for writing code that is robust, reliable, and easy for team members to understand and adapt. Good code or bad code? The difference often comes down to how you apply the conventions, style guides, and other established practices of the software development community. In Good Code, Bad Code you'll learn how to boost your effectiveness and productivity with code development insights normally only learned through years of experience, careful mentorship, and hundreds of code reviews. In Good Code, Bad Code you'll learn how to:- Think about code like an effective software engineer- Write functions that read like a well-structured sentence- Ensure code is reliable and bug free- Effectively unit test code- Identify code that can cause problems and improve it- Write code that is reusable and adaptable to new requirements- Improve your medium and long-term productivity- Save you and your team's time about the technologyCoding in a development team requires very different skills to working on personal projects. Successful software engineers need to ensure that their code is reusable, maintainable, and easy for others to understand and adapt. about the bookGood Code, Bad Code is a shortcut guide to writing high-quality code. Your mentor is Google veteran Tom Long, who lays out lessons and mindsets that will take your code from “junior developer” to “senior engineer.” This instantly-useful book distils the principles of professional coding into one comprehensive and hands-on beginner's guide. You'll start with a jargon-free primer to coding fundamentals that teaches you to think about abstractions, consider your fellow engineers, and write code that can recover from errors. Next, you'll dive into specific techniques and practices. You'll run through common coding practices to learn when to apply the right technique to your problem—and which might be best avoided! All practices are illustrated with annotated code samples written in an instantly recognizable pseudocode that you can relate to your favourite object-oriented language. By the time you're done, you'll be writing the kind of readable, reusable, and testable code that's the mark of a true software professional. about the readerFor coders looking to improve their experience in professional software development. about the authorTom Long is a software engineer at Google. He works as a tech lead, mentoring and teaching professional coding practices to new graduates and beginner software engineers.Trade Review“A wealth of knowledge to sharpen your toolset.” Joe Ivans,California Regional MLS “Pragmatic advice and useful tips for a career in software development.” George Thomas, Manhattan Associates “A practical, informative book designed to help developers writehigh-quality, effective code.” Christopher Villanueva, IndependentConsultant “Smart, well written, actionable information for creating maintainable code.” Hawley Waldman, Consultant
£35.99
Manning Publications R in Action
Book SynopsisBuilt specifically for statistical computing and graphics, the R language, along with its amazing collection of libraries and tools, is one of the most powerful tools you can use to tackle data analysis for business, research, and other data-intensive domains. This revised and expanded third edition of R in Action covers the new tidy verse approach to data analysis and R's state-of-the-art graphing capabilities with the ggplot2 package. R in Action, Third Edition teaches you to use the R language, including the popular tidy verse packages, through hands-on examples relevant to scientific, technical, and business developers. Focusing on practical solutions to real-world data challenges, R expert RobKabacoff takes you on a crash course in statistics, from dealing with messy and incomplete data to creating stunning visualisations. The R language is the most powerful platform you can choose for modern data analysis. Free and open source, R's community has created thousands of modules to tackle challenges from data-crunching to presentation. R's graphical capabilities are also state-of-the-art, with a comprehensive and powerful feature set available for data visualization. R runs on all major operating systems and is used by businesses, researchers, and organizations worldwide.Trade Review“Read it and masterthe invaluable art of solving data analysis problems efficiently: a must!” AlainLompo “Excellent primer for starting R.” Martin Perry “The book gives a amazing introduction to R and the applicable methods for machine learning and statistics.” Nicole Koenigstein “Amusing writing style and great material ingeneral, great book for those who are beginning in Statistics programming.” LuisFelipe Medeiro Alves “This is an awesome book on R.” Tiklu Ganguly “The definitive guide to bring you from beginner to advanced with R.” Jean-François Morin “A clear and comprehensive guide to using R forreal work. I was able to get an R environment up and running with minimal difficulty!” Jim Frohnhofer
£45.39
ISTE Ltd and John Wiley & Sons Inc Computer Architecture
Book SynopsisThis book lays out the concepts necessary to understand how a computer works. For reasons of clarity, the authors have deliberately chosen examples that apply to machines from all eras, without having to water down the contents of the book. This choice helps to show how techniques, concepts and performances have evolved since the first computers. The book is divided into five parts. The first four, which are of increasing difficulty, are the core of the book: “Elements of a Basic Architecture”, “Programming Model and Operation”, “Memory Hierarchy”, “Parallelism and Performance Enhancement”. The final part provides hints and solutions to the exercises in the book as well as appendices. The reader may approach each part independently based on their prior knowledge and goals.Table of ContentsPreface xiii Part 1. Elements of a Basic Architecture 1 Chapter 1. Introduction 3 1.1. Historical background 3 1.2. Introduction to internal operation 13 1.3. Future prospects 15 Chapter 2. The Basic Module 17 2.1. Memory 17 2.2. The processor 20 2.3. Communication between modules 30 Chapter 3. The Representation of Information 35 3.1 Review 36 3.2. Number representation conventions 38 3.3. Character representation 48 3.4 Exercises 52 Part 2. Programming Model and Operations 55 Chapter 4. Instructions 57 4.1. Programming model 58 4.2 The set of instructions 62 4.3. Programming examples 68 4.4. From assembly language to basic instructions 70 Chapter 5. The Processor 74 5.1. The control bus 76 5.2. Execution of the instruction 79 5.3. Sequencer composition 87 5.4. Extensions 91 5.5. Exercise 101 Chapter 6. Inputs and Outputs 103 6.1. Examples 105 6.2. Design and addressing of EU 115 6.3. Exchange modes 118 6.4. Handling interrupts 127 6.5. Exercises 133 Part 3. Memory Hierarchy 137 Chapter 7. Memory 139 7.1. The memory resource 139 7.2. Characteristics 140 7.3. Memory hierarchy 141 7.4. Memory size and protection 145 7.5. Segmentation 145 7.6. Paging 148 7.7. Memory interleaving and burst mode 151 7.8. Protections, example of the I386 154 Chapter 8. Caches 157 8.1. Cache memory 157 8.2. Replacements algorithms 165 Chapter 9. Virtual Memory 175 9.1. General concept 176 9.2. Rules of the access method 178 9.3 Example of the execution of a program 182 9.4. Example of two-level paging 188 9.5 Paged segmentation 194 9.6. Exercise 197 9.7. Documentation excerpts 198 Part 4. Parallelism and Performance Enhancement 205 Chapter 10. Pipeline Architectures 207 10.1 Motivations and Ideas 207 10.2 Pipeline management problems 212 10.3 Handling branches 218 10.4 Interrupts and exceptions 233 Chapter 11. Example of an Architecture 235 11.1 Presentation 235 11.2. Executing an instruction 240 11.3. Conflict resolution in the DLX 246 11.4. Exercises 252 Chapter 12. Caches in a Multiprocessor Environment 261 12.1. Cache coherence 262 12.2. Examples of snooping protocols 267 12.3. Improvements 275 12.4. Directory-based coherence protocols 275 12.5. Consistency 278 12.6. Exercises 284 Chapter 13. Superscaler Architectures 287 13.1. Superscaler architecture principles 287 13.2. Seeking solutions 290 13.3. Handling the flow of instructions 295 13.4. VLIW architectures 315 13.5. Exercises 321 Part 5. Appendices 325 Appendix A. Hints and Solutions 327 A1.1 The representation of information 327 A1.2. The processor 330 A1.3. Inputs and outputs 331 A1.4. Virtual memory 333 A1.5. Pipeline architectures 335 A1.6. Caches in a multiprocessor environment 341 A1.7. Superscaler architectures 344 Appendix B. Programming Models 347 A2.1. Instruction coding in the I8086 347 A2.2. Instruction set of the DLX architecture 349 Bibliography 351 Index 357
£122.35
O'Reilly Media Managing Cloud Native Data on Kubernetes
Book SynopsisUsing Kubernetes as your platform, you'll learn open source technologies that are designed and built for the cloud. Authors Jeff Carpenter and Patrick McFadin provide case studies to help you explore new use cases and avoid the pitfalls others have faced.
£47.99
Manning Publications Art of Unit Testing, The
Book SynopsisThe Art of Unit Testing, Third Edition updates an international bestseller to reflect modern development tools and practices. This expanded edition teaches you to write unit tests for async and observable code, as well as methods of faking functions, modules and refactorings. You'll explore test patterns and organization, working with legacy code, and even "untestable" code. The many tool-agnostic examples are presented in JavaScript, and are carefully designed so that they apply to code written in any language. about the technology Unit testing is a universally-adopted practice on dev teams of all sizes. Great developers will tell you that testing is as much a state of mind as a collection of tools and practices. The Art of Unit Testing, Third Edition takes you below the surface and understand how unit testing can transform the way you deliver and maintain software. Now with examples in JavaScript, this new edition has been updated to reflect the characteristics of a modern codebase, including async and modularized, distributed services. The practices and patterns you'll learn can also be easily applied to other languages, including C#, Java, and Python. about the book The Art of Unit Testing, Third Edition guides you step by step from your first simple unit tests to building complete test sets that are maintainable, readable, and trustworthy. Now with examples using JavaScript and Node, this expanded third edition teaches you to write unit tests for async and observable code, as well as methods of faking functions, modules and refactorings. You'll get to grips with complex subjects such as mocks and stubs, explore how to handle tricky legacy codebases, and save yourself time with tests that function for both frontend and backend applications. The Art of Unit Testing, Third Edition is an essential guide for any unit tester who wants to feel confident writing code that's easier to create, maintain, and adapt.Trade Review"A book that is seeing a third release must be awesome and this book certainly is." - Sander Zegveld "A didactic and entertaining approach to learning the intricacies of unit testing. Gives the the reader a solid mental framework to work with." - Adriaan Beiertz "Previous editions of the book were widely regarded as one of the best books in Unit Testing. The decision to update it to include examples in JavaScript (according to most surveys, the most used programming language in the world) is a smart move, making the book more directly applicable to most programmers, regardless of their server-side stack." - Jaume Lopez "This book is a must read, for any one who would like to be a better javascript developer or wants to start integrating Unit-Tests into their development process. It is a great balance between technical background and hand on examples." - Charles Lam
£35.09
Manning Publications BDD in Action
Book SynopsisAlmost half of all software projects fail to deliver on key requirements. Behavior-Driven Development (BDD) reduces these costly failures by building a shared understanding of how an application should work. Behavior Driven Development in Action, Second Edition teaches communication skills, collaborative practices, and automation tools that ensure everyone from developers to non-technical stakeholders are in agreement on the goals of a project. Revised and expanded in a second edition, the book contains new techniques for incorporating BDD into large-scale development practices such as Agile and DevOps, as well as updating examples for the latest versions of Java. about the technology You can't write good software if you don't understand what it's supposed to do. Behavior-Driven Development (BDD) encourages developers, quality teams, and non-technical stakeholders to collaborate, using conversation and concrete examples to make sure everyone agrees how an application should work and what features really matter. With a body of best practices and sophisticated tools for requirement analysis and test automation, BDD has become a mainstream practice for keeping projects on track and avoiding cancellation. what's inside BDD theory and practice How BDD will affect your team BDD for acceptance, integration, and unit testing Automating web services Reporting and living documentation about the reader For all development teams. No experience with BDD required. Examples written in Java.
£39.09
Manning Publications TensorFlow 2.0 in Action
Book SynopsisTensorFlow is a one-stop solution for building, monitoring, optimizing,and deploying your models. This practical guide to building deep learning models with the new features of TensorFlow 2.0is filled with engaging projects, simple language, and coverage of the latest algorithms. TensorFlow 2.0 in Action teaches you to use the new features of TensorFlow 2.0 to create advanced deep learning models. You'll learn by building hands-on projects including an image classifier that can recognize objects, a French-to-English machine translator, and even a neural network that can write fiction. You'll dive into the details of modern deep learning techniques including both transformer and attention models, and learn how pretrained models can solve your tricky data science- problems. TensorFlow is the go-to framework for putting deep learning into production. Created by Google, this ground breaking tool handles repetitive low-level operations and frees you up to focus on innovating your AIs.TensorFlow encompasses almost every element of a deep learning pipeline—aone-stop solution for building, monitoring, optimizing, and deploying your models.Trade Review“Excellent explanations and walk throughs to help bring you up to speed in Tensorflow 2.” Todd Cook “The illustrations of technical concepts are excellent.” BrianGriner “A hands-on introduction to effective Tensorflow use for real worlds problems.” Francisco Rivas “Mr Ganegedara goes to great lengths, with the exemplary use of many figures, to explain not only TensorFlow 2 solutions themselves but also the mechanics of the technology. Highly recommended!” TonyHoldroyd “An excellent resource to learning Tensorflow 2.0 using practical examples.” Biswanath Chowdhury “The conversation on writing custom layer was probably the best discussion on that I've ever seen. I learned a lot from that chapter.” LeviMcClenny “In you want to gain a deep knowledge of deep learning, read this book.”Tiklu Ganguly
£36.09
Elsevier Science & Technology Digital Design and Computer Architecture, RISC-V Edition
Book SynopsisTable of Contents1. From Zero to One 2. Combinational Logic Design 3. Sequential Logic Design 4. Hardware Description Languages 5. Digital Building Blocks 6. Architecture 7. Microarchitecture 8. Memory Systems 9. I/O Systems e9. I/O Systems A. Digital System Implementation eA. Digital System Implementation B. ARM Instructions C. C Programming eC. C Programming
£71.09
Elsevier Science Design Recipes for FPGAs
Book SynopsisTrade Review"...a great book for someone wanting to learn HDL design as the examples are crystal-clear, and it can be hard to find real-world HDL examples on the ‘net. The chapter on a CPU design alone will teach one a lot about coding for FPGAs." --Embedded.com "Design Recipes for FPGAs is an excellent volume for engineers who work with FPGAs either regularly or occasionally... the book provides a handy shelf reference with examples for many useful functional blocks, ranging from relatively small illustrative syntactic and structural examples to more complex concepts. Whether you work in VHDL occasionally or every day, you'll find practical help in this book." --Lewin Edwards, Design Engineer and Technical AuthorTable of ContentsPart 1: Overview 1: Introduction 2: An FPGA Primer 3: A VHDL Primer: The Essentials 4: A Verilog Primer: The Essentials 5: Design Automation of FPGAs 6: Synthesis Part 2: Introduction to FPGA Applications 7: High Speed Video Application 8: Simple Embedded Processors Part 3: Designer’s Toolbox 9: Digital Filters 10: Secure Systems 11: Memory 12: PS/2 Mouse Interface 13: PS/2 Keyboard Interface 14: A Simple VGA Interface 15: Serial Communications Part 4: Optimizing Designs 16: Design Optimization 17: Behavioral Modeling in using HDLs 18: Mixed Signal Modeling 19: Design Optimization Example: DES Part 5: Fundamental Techniques 20: Latches, Flip-Flops, and Registers 21: ALU Functions 22: Finite State Machines in VHDL and Verilog 23: Fixed Point Arithmetic 24: Counters 25: Decoders and Multiplexers 26: Multiplication 27: Simple 7-Segment (LCD) Displays
£43.69
Elsevier Science Digital Design and Computer Architecture ARM
Book SynopsisTrade Review"...this excellent book covers a wide spectrum of digital design and computer architecture and organization…a necessary book for many digital design enthusiasts in the years to come." --Computing ReviewsTable of Contents1. From Zero to One2. Combinational Logic Design3. Sequential Logic Design4. Hardware Description Languages5. Digital Building Blocks6. Architecture7. Microarchitecture8. Memory Systems9. I/O Systems (online only) A. Digital System Implementation B. ARM Instructions
£75.04
Elsevier Science & Technology An Introduction to Parallel Programming
Book SynopsisTable of Contents1. Why parallel computing 2. Parallel hardware and parallel software 3. Distributed memory programming with MPI 4. Shared-memory programming with Pthreads 5. Shared-memory programming with OpenMP 6. GPU programming with CUDA 7. Parallel program development 8. Where to go from here
£62.99
Elsevier Science & Technology Computer Architecture
Book SynopsisTrade Review"What has made this book an enduring classic is that each edition is not an update, but an extensive revision that presents the most current information and unparalleled insight into this fascinating and fast changing field. For me, after over twenty years in this profession, it is also another opportunity to experience that student-grade admiration for two remarkable teachers." --From the Foreword by Luiz Andre Barroso, Google, Inc.Table of ContentsPrinted Text 1. Fundamentals of Quantitative Design and Analysis 2. Memory Hierarchy Design 3. Instruction-Level Parallelism and Its Exploitation 4. Data-Level Parallelism in Vector, SIMD, and GPU Architectures 5. Multiprocessors and Thread-Level Parallelism 6. The Warehouse-Scale Computer 7. Domain Specific Architectures A. Instruction Set Principles B. Review of Memory Hierarchy C. Pipelining: Basic and Intermediate Concepts Online D. Storage Systems E. Embedded Systems F. Interconnection Networks G. Vector Processors H. Hardware and Software for VLIW and EPIC I. Large-Scale Multiprocessors and Scientific Applications J. Computer Arithmetic K. Survey of Instruction Set Architectures L. Advanced Concepts on Address Translation M. Historical Perspectives and References
£81.69
Elsevier Science Hardware Security
Book SynopsisTable of Contents1. Introduction to Hardware Security Part I: Background on Electronic Hardware2. A Quick Overview of Electronic Hardware3. System-on-Chip (SoC) Design and Test4. Printed Circuit Board (PCB) Design and Test Part II: HARDWARE ATTACKS: ANALYSIS, EXAMPLES & THREAT MODELS5. Hardware Trojans6. Electronics Supply Chain7. Hardware IP Piracy and Reverse Engineering8. Side-Channel Attacks9. Test-Oriented Attacks10. Physical Attacks and Countermeasures11. Attacks on PCB: Security Challenges and Vulnerabilities Part III: COUNTERMEASURES AGAINST HARDWARE ATTACKS12. Hardware Security Primitives13. Security and Trust Assessment, and Design for Security14. Hardware Obfuscation15. PCB Authentication and Integrity Validation Part IV: EMERGING TRENDS IN HARDWARE ATTACKS AND PROTECTIONS16. System Level Attacks and Countermeasures Appendix A: The Hardware Hacking (HaHa) Platform for Hands-on Training
£71.24
Elsevier Science & Technology Multicore and GPU Programming
Book SynopsisTable of ContentsPart A: Introduction 1. Introduction 2. Multicore and Parallel Program Design Part B: Programming with Threads and Processes 3. Shared-memory Programming: Threads 4. Concurrent Data Structures 5. Distributed Memory Programming MPI 6. GPU Programming: CUDA 7. GPU Programming: OpenCL Part C: Higher-level Programming 8. Shared-memory Programming: OpenMP 9. GPU Programming: OpenACC 10. The Thrust Template Library Part D: Advanced Topics 11. Load Balancing
£81.69
Elsevier Science & Technology Computer Organization and Design RISCV Edition
Book SynopsisTable of Contents1. Computer Abstractions and Technology 2. Instructions: Language of the Computer 3. Arithmetic for Computers 4. The RISC-V Processor 5. Large and Fast: Exploiting Memory Hierarchy 6. Parallel Processors from Client to Cloud Appendix A. The Basics of Logic Design B. Graphics and Computing GPUs C. Mapping Control to Hardware D. A Survey of RISC Architectures
£75.04
Pearson Education Structured Computer Organization
Book SynopsisAndrew S. Tanenbaum has a B.S. Degree from M.I.T. and a Ph.D. from the University of California at Berkeley. He is currently a Professor of Computer Science at the Vrije Universiteit in Amsterdam, The Netherlands, where he heads the Computer Systems Group. Until 2005, he was the Dean of the Advanced School for Computing and Imaging, an inter-university graduate school doing research on advanced parallel, distributed, and imaging systems. In the past, he has done research on compilers, operating systems, networking, and local-area distributed systems. His current research focuses primarily on the design of wide-area distributed systems that scale to a billion users. These research projects have led to five books and over 85 referred papers in journals and conference proceedings. Prof. Tanenbaum has also produced a considerable volume of software. He was the principal architect of the Amsterdam Compiler Kit, a widely-used toolkit for writing portable compiTable of Contents1.1 STRUCTURED COMPUTER ORGANIZATION 2 1.1.1 Languages, Levels, and Virtual Machines 2 1.1.2 Contemporary Multilevel Machines 5 1.1.3 Evolution of Multilevel Machines 8 1.2 MILESTONES IN COMPUTER ARCHITECTURE 13 1.2.1 The Zeroth Generation–Mechanical Computers (1642—1945) 13 1.2.2 The First Generation–Vacuum Tubes (1945—1955) 16 1.2.3 The Second Generation–Transistors (1955—1965) 19 1.2.4 The Third Generation–Integrated Circuits (1965—1980) 21 1.2.5 The Fourth Generation–Very Large Scale Integration (1980—?) 23 1.2.6 The Fifth Generation–Low-Power and Invisible Computers 26 1.3 THE COMPUTER ZOO 28 1.3.1 Technological and Economic Forces 28 1.3.2 The Computer Spectrum 30 1.3.3 Disposable Computers 31 1.3.4 Microcontrollers 33 1.3.5 Mobile and Game Computers 35 1.3.6 Personal Computers 36 1.3.7 Servers 36 1.3.8 Mainframes 38 1.4 EXAMPLE COMPUTER FAMILIES 39 1.4.1 Introduction to the x86 Architecture 39 1.4.2 Introduction to the ARM Architecture 45 1.4.3 Introduction to the AVR Architecture 47 1.5 METRIC UNITS 49 1.6 OUTLINE OF THIS BOOK 50 2.1 PROCESSORS 55 2.1.1 CPU Organization 56 2.1.2 Instruction Execution 58 2.1.3 RISC versus CISC 62 2.1.4 Design Principles for Modern Computers 63 2.1.5 Instruction-Level Parallelism 65 2.1.6 Processor-Level Parallelism 69 2.2 PRIMARYMEMORY 73 2.2.1 Bits 74 2.2.2 Memory Addresses 74 2.2.3 Byte Ordering 76 2.2.4 Error-Correcting Codes 78 2.2.5 Cache Memory 82 2.2.6 Memory Packaging and Types 85 2.3 SECONDARYMEMORY 86 2.3.1 Memory Hierarchies 86 2.3.2 Magnetic Disks 87 2.3.3 IDE Disks 91 2.3.4 SCSI Disks 92 2.3.5 RAID 94 2.3.6 Solid-State Disks 97 2.3.7 CD-ROMs 99 2.3.8 CD-Recordables 103 2.3.9 CD-Rewritables 105 2.3.10 DVD 106 2.3.11 Blu-ray 108 2.4 INPUT/OUTPUT 108 2.4.1 Buses 108 2.4.2 Terminals 113 2.4.3 Mice 118 2.4.4 Game Controllers 120 2.4.5 Printers 122 2.4.6 Telecommunications Equipment 127 2.4.7 Digital Cameras 135 2.4.8 Character Codes 137 2.5 SUMMARY 142 3.1 GATES AND BOOLEAN ALGEBRA 147 3.1.1 Gates 148 3.1.2 Boolean Algebra 150 3.1.3 Implementation of Boolean Functions 152 3.1.4 Circuit Equivalence 153 3.2 BASIC DIGITAL LOGIC CIRCUITS 158 3.2.1 Integrated Circuits 158 3.2.2 Combinational Circuits 159 3.2.3 Arithmetic Circuits 163 3.2.4 Clocks 168 3.3 MEMORY 169 3.3.1 Latches 169 3.3.2 Flip-Flops 172 3.3.3 Registers 174 3.3.4 Memory Organization 174 3.3.5 Memory Chips 178 3.3.6 RAMs and ROMs 180 3.4 CPU CHIPS AND BUSES 185 3.4.1 CPU Chips 185 3.4.2 Computer Buses 187 3.4.3 Bus Width 190 3.4.4 Bus Clocking 191 3.4.5 Bus Arbitration 196 3.4.6 Bus Operations 198 3.5 EXAMPLE CPU CHIPS 201 3.5.1 The Intel Core i7 201 3.5.2 The Texas Instruments OMAP4430 System-on-a-Chip 208 3.5.3 The Atmel ATmega168 Microcontroller 212 3.6 EXAMPLE BUSES 214 3.6.1 The PCI Bus 215 3.6.2 PCI Express 223 3.6.3 The Universal Serial Bus 228 3.7 INTERFACING 232 3.7.1 I/O Interfaces 232 3.7.2 Address Decoding 233 3.8 SUMMARY 235 4.1 AN EXAMPLE MICROARCHITECTURE 243 4.1.1 The Data Path 244 4.1.2 Microinstructions 251 4.1.3 Microinstruction Control: The Mic-1 253 4.2 AN EXAMPLE ISA: IJVM 258 4.2.1 Stacks 258 4.2.2 The IJVM Memory Model 260 4.2.3 The IJVM Instruction Set 262 4.2.4 Compiling Java to IJVM 266 4.3 AN EXAMPLE IMPLEMENTATION 267 4.3.1 Microinstructions and Notation 267 4.3.2 Implementation of IJVM Using the Mic-1 272 4.4 DESIGN OF THE MICROARCHITECTURE LEVEL 283 4.4.1 Speed versus Cost 283 4.4.2 Reducing the Execution Path Length 286 4.4.3 A Design with Prefetching: The Mic-2 293 4.4.4 A Pipelined Design: The Mic-3 293 4.4.5 A Seven-Stage Pipeline: The Mic-4 301 4.5 IMPROVING PERFORMANCE 305 4.5.1 Cache Memory 306 4.5.2 Branch Prediction 312 4.5.3 Out-of-Order Execution and Register Renaming 317 4.5.4 Speculative Execution 322 4.6 EXAMPLES OF THE MICROARCHITECTURE LEVEL 324 4.6.1 The Microarchitecture of the Core i7 CPU 325 4.6.2 The Microarchitecture of the OMAP4430 CPU 331 4.6.3 The Microarchitecture of the ATmega168 Microcontroller 336 4.7 COMPARISON OF THE I7, OMAP4430, AND ATMEGA168 338 4.8 SUMMARY 339 5.1 OVERVIEW OF THE ISA LEVEL 5.1.1 Properties of the ISA Level 5.1.2 Memory Models 5.1.3 Registers 5.1.4 Instructions 5.1.5 Overview of the Core i7 ISA Level 5.1.6 Overview of the OMAP4430 ARM ISA Level 5.1.7 Overview of the ATmega168 AVR ISA Level 5.2 DATA TYPES 5.2.1 Numeric Data Types 5.2.2 Nonnumeric Data Types 5.2.3 Data Types on the Core i7 5.2.4 Data Types on the OMAP4430 ARM CPU 5.2.5 Data Types on the ATmega168 AVR CPU 5.3 INSTRUCTION FORMATS 5.3.1 Design Criteria for Instruction Formats 5.3.2 Expanding Opcodes 5.3.3 The Core i7 Instruction Formats 5.3.4 The OMAP4430 ARM CPU Instruction Formats 5.3.5 The ATmega168 AVR Instruction Formats 5.4 ADDRESSING 5.4.1 Addressing Modes 5.4.2 Immediate Addressing 5.4.3 Direct Addressing 5.4.4 Register Addressing 5.4.5 Register Indirect Addressing 5.4.6 Indexed Addressing 5.4.7 Based-Indexed Addressing 5.4.8 Stack Addressing 5.4.9 Addressing Modes for Branch Instructions 5.4.10 Orthogonality of Opcodes and Addressing Modes 5.4.11 The Core i7 Addressing Modes 5.4.12 The OMAP4440 ARM CPU Addressing Modes 5.4.13 The ATmega168 AVR Addressing Modes 5.4.14 Discussion of Addressing Modes 5.5 INSTRUCTION TYPES 5.5.1 Data Movement Instructions 5.5.2 Dyadic Operations 5.5.3 Monadic Operations 5.5.4 Comparisons and Conditional Branches 5.5.5 Procedure Call Instructions 5.5.6 Loop Control 5.5.7 Input/Output 5.5.8 The Core i7 Instructions 5.5.9 The OMAP4430 ARM CPU Instructions 5.5.10 The ATmega168 AVR Instructions 5.5.11 Comparison of Instruction Sets 5.6 FLOWOF CONTROL 5.6.1 Sequential Flow of Control and Branches 5.6.2 Procedures 5.6.3 Coroutines 5.6.4 Traps 5.6.5 Interrupts 5.7 A DETAILED EXAMPLE: THE TOWERS OF HANOI 5.7.1 The Towers of Hanoi in Core i7 Assembly Language 5.7.2 The Towers of Hanoi in OMAP4430 ARM Assembly Language 5.8 THE IA-64 ARCHITECTURE AND THE ITANIUM 2 5.8.1 The Problem with the IA-32 ISA 5.8.2 The IA-64 Model: Explicitly Parallel Instruction Computing 5.8.3 Reducing Memory References 5.8.4 Instruction Scheduling 5.8.5 Reducing Conditional Branches: Predication 5.8.6 Speculative Loads 5.9 SUMMARY 6.1 VIRTUAL MEMORY 6.1.1 Paging 6.1.2 Implementation of Paging 6.1.3 Demand Paging and the Working Set Model 6.1.4 Page Replacement Policy 6.1.5 Page Size and Fragmentation 6.1.6 Segmentation 6.1.7 Implementation of Segmentation 6.1.8 Virtual Memory on the Core i7 6.1.9 Virtual Memory on the OMAP4430 ARM CPU 6.1.10 Virtual Memory and Caching 6.2 VIRTUAL I/O INSTRUCTIONS 6.2.1 Files 6.2.2 Implementation of Virtual I/O Instructions 6.2.3 Directory Management Instructions 6.3 VIRTUAL INSTRUCTIONS FOR PARALLEL PROCESSING 6.3.1 Process Creation 6.3.2 Race Conditions 6.3.3 Process Synchronization Using Semaphores 6.4 EXAMPLE OPERATING SYSTEMS 6.4.1 Introduction 6.4.2 Examples of Virtual Memory 6.4.3 Examples of Virtual I/O 6.4.4 Examples of Process Management 6.5 SUMMARY 7.1 INTRODUCTION TO ASSEMBLY LANGUAGE 7.1.1 What Is an Assembly Language? 7.1.2 Why Use Assembly Language? 7.1.3 Format of an Assembly Language Statement 7.1.4 Pseudoinstructions 7.2 MACROS 7.2.1 Macro Definition, Call, and Expansion 7.2.2 Macros with Parameters 7.2.3 Advanced Features 7.2.4 Implementation of a Macro Facility in an Assembler 7.3 THE ASSEMBLY PROCESS 7.3.1 Two-Pass Assemblers 7.3.2 Pass One 7.3.3 Pass Two 7.3.4 The Symbol Table 7.4 LINKING AND LOADING 7.4.1 Tasks Performed by the Linker 7.4.2 Structure of an Object Module 7.4.3 Binding Time and Dynamic Relocation 7.4.4 Dynamic Linking 7.5 SUMMARY 8.1 ON-CHIP PARALELLISM 8.1.1 Instruction-Level Parallelism 8.1.2 On-Chip Multithreading 8.1.3 Single-Chip Multiprocessors 8.2 COPROCESSORS 8.2.1 Network Processors 8.2.2 Media Processors 8.2.3 Cryptoprocessors 8.3 SHARED-MEMORYMULTIPROCESSORS 8.3.1 Multiprocessors vs. Multicomputers 8.3.2 Memory Semantics 8.3.3 UMA Symmetric Multiprocessor Architectures 8.3.4 NUMA Multiprocessors 8.3.5 COMA Multiprocessors 8.4 MESSAGE-PASSING MULTICOMPUTERS 8.4.1 Interconnection Networks 8.4.2 MPPs–Massively Parallel Processors 8.4.3 Cluster Computing 8.4.4 Communication Software for Multicomputers 8.4.5 Scheduling 8.4.6 Application-Level Shared Memory 8.4.7 Performance 8.5 GRID COMPUTING 8.6 SUMMARY 9.1 SUGGESTIONS FOR FURTHER READING 9.1.1 Introduction and General Works 9.1.2 Computer Systems Organization 9.1.3 The Digital Logic Level 9.1.4 The Microarchitecture Level 9.1.5 The Instruction Set Architecture Level 9.1.6 The Operating System Machine Level 9.1.7 The Assembly Language Level 9.1.8 Parallel Computer Architectures 9.1.9 Binary and Floating-Point Numbers 9.1.10 Assembly Language Programming 9.2 ALPHABETICAL BIBLIOGRAPHY A.1 FINITE-PRECISION NUMBERS A.2 RADIX NUMBER SYSTEMS A.3 CONVERSION FROM ONE RADIX TO ANOTHER A.4 NEGATIVE BINARY NUMBERS A.5 BINARY ARITHMETIC B.1 PRINCIPLES OF FLOATING POINT B.2 IEEE FLOATING-POINT STANDARD 754 C.1 OVERVIEW C.1.1 Assembly Language C.1.2 A Small Assembly Language Program C.2 THE 8088 PROCESSOR C.2.1 The Processor Cycle C.2.2 The General Registers C.2.3 Pointer Registers C.3 MEMORY AND ADDRESSING C.3.1 Memory Organization and Segments C.3.2 Addressing C.4 THE 8088 INSTRUCTION SET C.4.1 Move, Copy and Arithmetic C.4.2 Logical, Bit and Shift Operations C.4.3 Loop and Repetitive String Operations C.4.4 Jump and Call Instructions C.4.5 Subroutine Calls C.4.6 System Calls and System Subroutines C.4.7 Final Remarks on the Instruction Set C.5 THE ASSEMBLER C.5.1 Introduction C.5.2 The ACK-Based Assembler, as88 C.5.3 Some Differences with Other 8088 Assemblers C.6 THE TRACER C.6.1 Tracer Commands C.7 GETTING STARTED C.8 EXAMPLES C.8.1 Hello World Example C.8.2 General Registers Example C.8.3 Call Command and Pointer Registers C.8.4 Debugging an Array Print Program C.8.5 String Manipulation and String Instructions C.8.6 Dispatch Tables C.8.7 Buffered and Random File Access
£204.72
Pearson Education Art of Scalability The
Book SynopsisMartin L. Abbott is a founding partner at the growth and scalability advisory firm AKF Partners. He was formerly chief operations officer at Quigo, an advertising technology startup sold to AOL, where he was responsible for product strategy, product management, technology development, and client services. Marty spent nearly six years at eBay, most recently as senior vice president of technology, chief technology officer, and member of the executive staff. Prior to his time at eBay, Marty held domestic and international engineering, management, and executive positions at Gateway and Motorola. He has served on the boards of directors of several private and public companies. Marty has a B.S. in computer science from the United States Military Academy, has an M.S. in computer engineering from the University of Florida, is a graduate of the Harvard Business School Executive Education Program, and has a Doctor of Management from Case Western Reserve University. Trade ReviewPraise for The Art of Scalability, Second Edition “A how-to manual for building a world-class engineering organization with step-by-step instructions on everything including leadership, architecture, operations, and processes. A driver’s manual for going from 0 to 60, scaling your business. With this book published, there’s no excuse for mistakes—in other words, RTFM.” —Lon F. Binder, vice president, technology, Warby Parker “I’ve worked with AKF for years on tough technical challenges. Many books address how to correct failing product architectures or problematic processes, both of which are symptoms of an unspoken problem. This book not only covers those symptoms, but also addresses their underlying cause—the way in which we manage, lead, organize, and staff our teams.” —Jeremy King, chief technology officer and senior vice president, global ecommerce, Walmart.com “I love this book because it teaches an important lesson most technology-focused books don’t: how to build highly scalable and successful technology organizations that build highly scalable technology solutions. There’s plenty of great technology coaching in this book, but there are also excellent examples of how to build scalable culture, principles, processes, and decision trees. This book remains one of my few constant go-to reference guides.” —Chris Schremser, chief technology officer, ZirMed Praise for the First Edition “This book is much more than you may think it is. Scale is not just about designing Web sites that don’t crash when lots of users show up. It is about designing your company so that it doesn’t crash when your business needs to grow. These guys have been there on the front lines of some of the most successful Internet companies of our time, and they share the good, the bad, and the ugly about how to not just survive, but thrive.” —Marty Cagan, founder, Silicon Valley Product Group “A must read for anyone building a Web service for the mass market.” —Dana Stalder, general partner, Matrix Partners “Abbott and Fisher have deep experiences with scale in both large and small enterprises. What’s unique about their approach to scalability is they start by focusing on the true foundation: people and process, without which true scalability cannot be built. Abbott and Fisher leverage their years of experience in a very accessible and practical approach to scalability that has been proven over time with their significant success.” —Geoffrey Weber, vice president of internet operations/IT, Shutterfly “If I wanted the best diagnoses for my health I would go to the Mayo Clinic. If I wanted the best diagnoses for my portfolio companies’ performance and scalability I would call Martin and Michael. They have recommended solutions to performance and scalability issues that have saved some of my companies from a total rewrite of the system.” —Warren M. Weiss, general partner, Foundation Capital “As a manager who worked under Michael Fisher and Marty Abbott during my time at PayPal/eBay, the opportunity to directly absorb the lessons and experiences presented in this book are invaluable to me now working at Facebook.” —Yishan Wong, former CEO, Reddit, and former director of engineering, Facebook “The Art of Scalability is by far the best book on scalability on the market today. The authors tackle the issues of scalability from processes, to people, to performance, to the highly technical. Whether your organization is just starting out and is defining processes as you go, or you are a mature organization, this is the ideal book to help you deal with scalability issues before, during, or after an incident. Having built several projects, programs, and companies from small to significant scale, I can honestly say I wish I had this book one, five, and ten years ago.” —Jeremy Wright, chief executive officer, b5media, Inc. “Only a handful of people in the world have experienced the kind of growth-related challenges that Fisher and Abbott have seen at eBay, PayPal, and the other companies they’ve helped to build. Fewer still have successfully overcome such challenges. The Art of Scalability provides a great summary of lessons learned while scaling two of the largest internet companies in the history of the space, and it’s a must-read for any executive at a hyper-growth company. What’s more, it’s well-written and highly entertaining. I couldn’t put it down.” —Kevin Fortuna, partner, AKF Consulting “Marty and Mike’s book covers all the bases, from understanding how to build a scalable organization to the processes and technology necessary to run a highly scalable architecture. They have packed in a ton of great practical solutions from real world experiences. This book is a must-read for anyone having difficulty managing the scale of a hyper-growth company or a startup hoping to achieve hyper growth.” —Tom Keeven, partner, AKF Consulting “The Art of Scalability is remarkable in its wealth of information and clarity; the authors provide novel, practical, and demystifying approaches to identify, predict, and resolve scalability problems before they surface. Marty Abbott and Michael Fisher use their rich experience and vision, providing unique and groundbreaking tools to assist small and hyper-growth organizations as they maneuver in today’s demanding technological environments.” —Joseph M. Potenza, attorney, Banner & Witcoff, Ltd. Table of ContentsForeword xxiii Acknowledgments xxvii About the Authors xxix Introduction 1 Part I: Staffing a Scalable Organization 7 Chapter 1: The Impact of People and Leadership on Scalability 9 The Case Method 9 Why People? 10 Why Organizations? 11 Why Management and Leadership? 17 Conclusion 19 Chapter 2: Roles for the Scalable Technology Organization 21 The Effects of Failure 21 Defining Roles 23 Executive Responsibilities 25 Individual Contributor Responsibilities 30 A Tool for Defining Responsibilities 35 Conclusion 39 Chapter 3: Designing Organizations 41 Organizational Influences That Affect Scalability 41 Team Size 44 Organizational Structure 51 Conclusion 69 Chapter 4: Leadership 101 71 What Is Leadership? 72 Leadership: A Conceptual Model 74 Taking Stock of Who You Are 76 Leading from the Front 78 Checking Your Ego at the Door 79 Mission First, People Always 80 Making Timely, Sound, and Morally Correct Decisions 81 Empowering Teams and Scalability 82 Alignment with Shareholder Value 83 Transformational Leadership 84 Vision 84 Mission 87 Goals 89 Putting It All Together 90 The Causal Roadmap to Success 94 Conclusion 95 Chapter 5: Management 101 99 What Is Management? 100 Project and Task Management 102 Building Teams: A Sports Analogy 105 Upgrading Teams: A Garden Analogy 107 Measurement, Metrics, and Goal Evaluation 111 The Goal Tree 114 Paving the Path for Success 115 Conclusion 116 Chapter 6: Relationships, Mindset, and the Business Case 119 Understanding the Experiential Chasm 119 Defeating the IT Mindset 122 The Business Case for Scale 124 Conclusion 127 Part II: Building Processes for Scale 129 Chapter 7: Why Processes Are Critical to Scale 131 The Purpose of Process 132 Right Time, Right Process 135 When Good Processes Go Bad 139 Conclusion 140 Chapter 8: Managing Incidents and Problems 143 What Is an Incident? 144 What Is a Problem? 145 The Components of Incident Management 146 The Components of Problem Management 149 Resolving Conflicts Between Incident and Problem Management 150 Incident and Problem Life Cycles 150 Implementing the Daily Incident Meeting 152 Implementing the Quarterly Incident Review 153 The Postmortem Process 153 Putting It All Together 156 Conclusion 157 Chapter 9: Managing Crises and Escalations 159 What Is a Crisis? 160 Why Differentiate a Crisis from Any Other Incident? 161 How Crises Can Change a Company 162 Order Out of Chaos 163 Communications and Control 168 The War Room 169 Escalations 170 Status Communications 171 Crisis Postmortem and Communication 172 Conclusion 173 Chapter 10: Controlling Change in Production Environments 177 What Is a Change? 178 Change Identification 179 Change Management 180 The Change Control Meeting 191 Continuous Process Improvement 192 Conclusion 193 Chapter 11: Determining Headroom for Applications 197 Purpose of the Process 198 Structure of the Process 199 Ideal Usage Percentage 203 A Quick Example Using Spreadsheets 206 Conclusion 207 Chapter 12: Establishing Architectural Principles 209 Principles and Goals 209 Principle Selection 212 AKF’s Most Commonly Adopted Architectural Principles 214 Conclusion 222 Chapter 13: Joint Architecture Design and Architecture Review Board 225 Fixing Organizational Dysfunction 225 Designing for Scale Cross-Functionally 226 JAD Entry and Exit Criteria 228 From JAD to ARB 230 Conducting the Meeting 232 ARB Entry and Exit Criteria 234 Conclusion 236 Chapter 14: Agile Architecture Design 239 Architecture in Agile Organizations 240 Ownership of Architecture 241 Limited Resources 242 Standards 243 ARB in the Agile Organization 246 Conclusion 247 Chapter 15: Focus on Core Competencies: Build Versus Buy 249 Building Versus Buying, and Scalability 249 Focusing on Cost 250 Focusing on Strategy 251 “Not Built Here” Phenomenon 252 Merging Cost and Strategy 252 Does This Component Create Strategic Competitive Differentiation? 253 Are We the Best Owners of This Component or Asset? 253 What Is the Competition for This Component? 254 Can We Build This Component Cost-Effectively? 254 The Best Buy Decision Ever 255 Anatomy of a Build-It-Yourself Failure 256 Conclusion 258 Chapter 16: Determining Risk 259 Importance of Risk Management to Scale 259 Measuring Risk 261 Managing Risk 268 Conclusion 271 Chapter 17: Performance and Stress Testing 273 Performing Performance Testing 273 Don’t Stress over Stress Testing 281 Performance and Stress Testing for Scalability 287 Conclusion 288 Chapter 18: Barrier Conditions and Rollback 291 Barrier Conditions 291 Rollback Capabilities 297 Markdown Functionality: Design to Be Disabled 300 Conclusion 301 Chapter 19: Fast or Right? 303 Tradeoffs in Business 303 Relation to Scalability 306 How to Think About the Decision 307 Conclusion 311 Part III: Architecting Scalable Solutions 315 Chapter 20: Designing for Any Technology 317 An Implementation Is Not an Architecture 317 Technology-Agnostic Design 318 The TAD Approach 323 Conclusion 325 Chapter 21: Creating Fault-Isolative Architectural Structures 327 Fault-Isolative Architecture Terms 327 Benefits of Fault Isolation 329 How to Approach Fault Isolation 336 When to Implement Fault Isolation 339 How to Test Fault-Isolative Designs 341 Conclusion 341 Chapter 22: Introduction to the AKF Scale Cube 343 The AKF Scale Cube 343 The x-Axis of the Cube 344 The y-Axis of the Cube 346 The z-Axis of the Cube 349 Putting It All Together 350 When and Where to Use the Cube 352 Conclusion 353 Chapter 23: Splitting Applications for Scale 357 The AKF Scale Cube for Applications 357 The x-Axis of the AKF Application Scale Cube 359 The y-Axis of the AKF Application Scale Cube 361 The z-Axis of the AKF Application Scale Cube 363 Putting It All Together 365 Practical Use of the Application Cube 367 Conclusion 371 Chapter 24: Splitting Databases for Scale 375 Applying the AKF Scale Cube to Databases 375 The x-Axis of the AKF Database Scale Cube 376 The y-Axis of the AKF Database Scale Cube 381 The z-Axis of the AKF Database Scale Cube 383 Putting It All Together 385 Practical Use of the Database Cube 388 Conclusion 393 Chapter 25: Caching for Performance and Scale 395 Caching Defined 395 Object Caches 399 Application Caches 402 Content Delivery Networks 407 Conclusion 408 Chapter 26: Asynchronous Design for Scale 411 Synching Up on Synchronization 411 Synchronous Versus Asynchronous Calls 412 Defining State 418 Conclusion 422 Part IV: Solving Other Issues and Challenges 425 Chapter 27: Too Much Data 427 The Cost of Data 427 The Value of Data and the Cost-Value Dilemma 430 Making Data Profitable 431 Handling Large Amounts of Data 434 Conclusion 444 Chapter 28: Grid Computing 447 History of Grid Computing 447 Pros and Cons of Grids 449 Different Uses for Grid Computing 454 Conclusion 457 Chapter 29: Soaring in the Clouds 459 History and Definitions 460 Characteristics and Architecture of Clouds 463 Differences Between Clouds and Grids 467 Pros and Cons of Cloud Computing 468 Where Clouds Fit in Different Companies 476 Decision Process 478 Conclusion 481 Chapter 30: Making Applications Cloud Ready 485 The Scale Cube in a Cloud 485 Overcoming Challenges 487 Intuit Case Study 491 Conclusion 493 Chapter 31: Monitoring Applications 495 “Why Didn’t We Catch That Earlier?” 495 A Framework for Monitoring 496 Measuring Monitoring: What Is and Isn’t Valuable? 503 Monitoring and Processes 504 Conclusion 506 Chapter 32: Planning Data Centers 509 Data Center Costs and Constraints 509 Location, Location, Location 511 Data Centers and Incremental Growth 514 When Do I Consider IaaS? 516 Three Magic Rules of Three 519 Multiple Active Data Center Considerations 525 Conclusion 527 Chapter 33: Putting It All Together 531 What to Do Now? 532 Further Resources on Scalability 535 Part V: Appendices 537 Appendix A: Calculating Availability 539 Hardware Uptime 540 Customer Complaints 541 Portion of Site Down 542 Third-Party Monitoring Service 543 Business Graph 544 Appendix B: Capacity Planning Calculations 547 Appendix C: Load and Performance Calculations 555 Index 563
£33.49
Pearson Education (US) Quantum Computing Fundamentals
Book SynopsisDr. Chuck Easttom is the author of 31 books, including several on computer security, forensics, and cryptography. His books are used at more than 60 universities. He has also authored scientific papers (more than 70 so far) on digital forensics, cyber warfare, cryptography, and applied mathematics. He is an inventor with 22 computer science patents. He holds a Doctor of Science in cyber security (dissertation topic: a study of lattice-based cryptographic algorithms for post-quantum computing). He also has a Ph.D. in Technology, focusing on nanotechnology (dissertation title: The Effects of Complexity on Carbon Nanotube Failures) and a Ph.D. in Computer Science (dissertation title: On the Application of Graph Theory to Digital Forensics). He also has three master's degrees (one in applied computer science, one in education, and one in systems engineering). He is a senior member of the IEEE and a senior member of the ACM (Association of Computing Machinery) as well asTable of Contents Preface xvii Part I Preparatory Material Chapter 1: Introduction to Essential Linear Algebra 2 1.1 What Is Linear Algebra?.. . . . . . . . . . . . . . . . . . . . 3 1.2 Some Basic Algebra.. . . . . . . . . . . . . . . . . . . . . 4 1.3 Matrix Math.. . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Vectors and Vector Spaces.. . . . . . . . . . . . . . . . . . 23 1.5 Set Theory.. . . . . . . . . . . . . . . . . . . . . . . . . 25 1.6 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 29 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 29 Chapter 2: Complex Numbers 32 2.1 What Are Complex Numbers?.. . . . . . . . . . . . . . . . . 32 2.2 Algebra of Complex Numbers.. . . . . . . . . . . . . . . . . 34 2.3 Complex Numbers Graphically.. . . . . . . . . . . . . . . . 38 2.4 Vector Representations of Complex Numbers.. . . . . . . . . . 45 2.5 Pauli Matrices.. . . . . . . . . . . . . . . . . . . . . . . 48 2.6 Transcendental Numbers.. . . . . . . . . . . . . . . . . . . 56 2.7 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 58 Chapter 3: Basic Physics for Quantum Computing 60 3.1 The Journey to Quantum.. . . . . . . . . . . . . . . . . . . 61 3.2 Quantum Physics Essentials.. . . . . . . . . . . . . . . . . 65 3.3 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 77 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 77 Chapter 4: Fundamental Computer Science for Quantum Computing 80 4.1 Data Structures.. . . . . . . . . . . . . . . . . . . . . . . 81 4.2 Algorithms.. . . . . . . . . . . . . . . . . . . . . . . . . 88 4.3 Computational Complexity.. . . . . . . . . . . . . . . . . . 93 4.4 Coding Theory.. . . . . . . . . . . . . . . . . . . . . . . 95 4.5 Logic Gates.. . . . . . . . . . . . . . . . . . . . . . . . 96 4.6 Computer Architecture.. . . . . . . . . . . . . . . . . . . 100 4.7 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 103 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 103 Chapter 5: Basic Information Theory 106 5.1 Basic Probability.. . . . . . . . . . . . . . . . . . . . . . 107 5.2 Set Theory.. . . . . . . . . . . . . . . . . . . . . . . . 108 5.3 Information Theory.. . . . . . . . . . . . . . . . . . . . . 112 5.4 Quantum Information.. . . . . . . . . . . . . . . . . . . . 118 5.5 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 120 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 120 Part II Basic Quantum Computing Chapter 6: Basic Quantum Theory 122 6.1 Further with Quantum Mechanics.. . . . . . . . . . . . . . . 123 6.2 Quantum Decoherence.. . . . . . . . . . . . . . . . . . . 129 6.3 Quantum Electrodynamics.. . . . . . . . . . . . . . . . . . 131 6.4 Quantum Chromodynamics.. . . . . . . . . . . . . . . . . 133 6.5 Feynman Diagram.. . . . . . . . . . . . . . . . . . . . . 134 6.6 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 136 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 136 Chapter 7: Quantum Entanglement and QKD 138 7.1 Quantum Entanglement.. . . . . . . . . . . . . . . . . . . 138 7.2 Interpretation.. . . . . . . . . . . . . . . . . . . . . . . 143 7.3 QKE.. . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7.4 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 151 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 152 Chapter 8: Quantum Architecture 154 8.1 Further with Qubits.. . . . . . . . . . . . . . . . . . . . . 154 8.2 Quantum Gates.. . . . . . . . . . . . . . . . . . . . . . 158 8.3 More with Gates.. . . . . . . . . . . . . . . . . . . . . . 166 8.4 Quantum Circuits. . . . . . . . . . . . . . . . . . . . . . 167 8.5 The D-Wave Quantum Architecture.. . . . . . . . . . . . . . 169 8.6 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 172 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 172 Chapter 9: Quantum Hardware 174 9.1 Qubits.. . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.2 How Many Qubits Are Needed?. . . . . . . . . . . . . . . . 181 9.3 Addressing Decoherence.. . . . . . . . . . . . . . . . . . 182 9.4 Topological Quantum Computing.. . . . . . . . . . . . . . . 186 9.5 Quantum Essentials.. . . . . . . . . . . . . . . . . . . . 187 9.6 Quantum Networking.. . . . . . . . . . . . . . . . . . . . 188 9.7 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 191 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 191 Chapter 10: Quantum Algorithms 194 10.1 What Is an Algorithm?. . . . . . . . . . . . . . . . . . . . 194 10.2 Deutsch’s Algorithm.. . . . . . . . . . . . . . . . . . . . 197 10.3 Deutsch-Jozsa Algorithm.. . . . . . . . . . . . . . . . . . 199 10.4 Bernstein-Vazirani Algorithm.. . . . . . . . . . . . . . . . . 201 10.5 Simon’s Algorithm.. . . . . . . . . . . . . . . . . . . . . 202 10.6 Shor’s Algorithm.. . . . . . . . . . . . . . . . . . . . . . 203 10.7 Grover’s Algorithm. . . . . . . . . . . . . . . . . . . . . 209 10.8 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 211 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 211 Part III Quantum Computing and Cryptography Chapter 11: Current Asymmetric Algorithms 212 11.1 RSA. . . . . . . . . . . . . . . . . . . . . . . . . . . 213 11.2 Diffie-Hellman.. . . . . . . . . . . . . . . . . . . . . . . 216 11.3 Elliptic Curve.. . . . . . . . . . . . . . . . . . . . . . . 219 11.4 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 227 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 227 Chapter 12: The Impact of Quantum Computing on Cryptography 228 12.1 Asymmetric Cryptography.. . . . . . . . . . . . . . . . . . 229 12.2 Specific Algorithms.. . . . . . . . . . . . . . . . . . . . . 231 12.3 Specific Applications. . . . . . . . . . . . . . . . . . . . 233 12.3.1 Digital Certificates. . . . . . . . . . . . . . . . . . 233 12.3.2 SSL/TLS. . . . . . . . . . . . . . . . . . . . . . 234 12.4 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 241 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 241 Chapter 13: Lattice-based Cryptography 244 13.1 Lattice-Based Mathematical Problems.. . . . . . . . . . . . . 245 13.2 Cryptographic Algorithms. . . . . . . . . . . . . . . . . . 249 13.3 Solving Lattice Problems.. . . . . . . . . . . . . . . . . . 256 13.4 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 259 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 259 Chapter 14: Multivariate Cryptography 262 14.1 Mathematics.. . . . . . . . . . . . . . . . . . . . . . . 262 14.2 Matsumoto-Imai.. . . . . . . . . . . . . . . . . . . . . . 264 14.3 Hidden Field Equations. . . . . . . . . . . . . . . . . . . 266 14.4 Multivariate Quadratic Digital Signature Scheme (MQDSS).. . . . 268 14.5 SFLASH.. . . . . . . . . . . . . . . . . . . . . . . . . 269 14.6 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 271 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 271 Chapter 15: Other Approaches to Quantum Resistant Cryptography 274 15.1 Hash Functions.. . . . . . . . . . . . . . . . . . . . . . 274 15.2 Code-Based Cryptography.. . . . . . . . . . . . . . . . . 279 15.3 Supersingular Isogeny Key Exchange.. . . . . . . . . . . . . 281 15.4 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 289 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 289 Part IV Quantum Programming Chapter 16: Working with Q# 292 16.1 Basic Programming Concepts.. . . . . . . . . . . . . . . . 292 16.2 Getting Started with Q#.. . . . . . . . . . . . . . . . . . . 298 16.3 Grover’s Algorithm. . . . . . . . . . . . . . . . . . . . . 303 16.4 Deutsch-Jozsa Algorithm.. . . . . . . . . . . . . . . . . . 307 16.5 Bit Flipping.. . . . . . . . . . . . . . . . . . . . . . . . 310 16.6 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 311 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 311 Chapter 17: Working with QASM 314 17.1 Basic Programming Concepts.. . . . . . . . . . . . . . . . 315 17.2 Getting Started with QASM.. . . . . . . . . . . . . . . . . 319 17.3 Quantum Error Correction. . . . . . . . . . . . . . . . . . 320 17.4 Grover’s Algorithm. . . . . . . . . . . . . . . . . . . . . 322 17.5 Deutsch-Jozsa Algorithm.. . . . . . . . . . . . . . . . . . 326 17.6 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . 328 Test Your Skills. . . . . . . . . . . . . . . . . . . . . . . 328 Appendix: Answers to Test Your Skills Questions 330 9780136793816, TOC, 5/7/2021
£49.39
Penguin Books Ltd Tubes
Book SynopsisTubes: Behind the Scenes at the Internet by Andrew Blum is...''Utterly engrossing. The year''s most original and stimulating ''travel'' book. Even the most geek-wary of readers will enjoy'' Independent''Entertaining and illuminating. Excels at rooting the Internet in real-world locations. Full of memorable images that make its complex architecture easier to comprehend'' ObserverThe Internet. Home to the most important and intimate aspects of our lives. Our careers, our relationships, our selves, all of them are out there - online. So ... where is that exactly? And who''s in charge again? And what if it breaks?In Tubes Andrew Blum takes us on a gripping backstage tour of the real but hidden world of the Internet, introducing us to the remarkable clan of insiders and eccentrics who own, design and run it everyday. He uncovers the secret data warehouses where our online selves are stored, peels back the wires that tranTrade ReviewUtterly engrossing. The year's most original and stimulating 'travel' book. Even the most geek-wary of readers will enjoy * Independent, Book of the Week *Entertaining and illuminating. Excels at rooting the Internet in real-world locations. Full of memorable images that make its complex architecture easier to comprehend * Observer *An engaging reminder that, cyber-Utopianism aside, the Internet is as much a thing of flesh and steel as any industrial-age lumber mill or factory ... An excellent introduction to the nuts and bolts of how exactly it all works and a timely antidote to oft-repeated abstractions about "cyberspace" or "cloud computing" * Economist *Makes hard-to-grasp concepts easy to understand, even obvious. The history, in particular, is one of the best and most memorable I have ever read * New Scientist *A Quixotic and winning book with a knack for bundling packets of data into memorable observations. This valuable book leaves you with its share of unsettling visions, but there are comic ones too * The New York Times *For a full understanding of the Internet on every level, this book is a must-read * Techzone *A great, playful, wondrous read * ArsTechnica *Blum is perhaps the millennial generation's John McPhee, chronicling an arcane journey of deep relevance to everyday life. For non-techies, the book is a very accessible revelation * Forbes *All too awesome to behold. Andrew Blum's fascinating book demystifies the earthly geography of this most ethereal terra incognita -- Joshua Foer, author of Moonwalking with EinsteinA brilliantly smart idea executed with investigative skill and flair. Readers will never send an email so carelessly again. * Independent Books of the Year *Compelling and profound. You will never open an e-mail in quite the same way again -- Tom Vanderbilt, author of the New York Times bestseller TrafficOne of our best writers. A compelling story of an altogether new realm where the virtual world meets the physical -- Paul Goldberger, Pulitzer Prize-winning New Yorker criticThe Internet really IS a series of tubes! Who knew? * David Pogue, Technology Editor of The New York Times *At once funny, prosaic, sinister and wise, Blum's tale is a beautifully written account of the true human cost of all our remote connectivity -- Bella Bathurst, author of The Lighthouse StevensonsWith infectious wonder, Andrew Blum introduces us to the Internet's geeky wizards and takes us on an amiably guided tour of the world they've created ... the Internet that Blum's beautifully lucid prose makes real turns out to be if anything a more marvelous place than the cloudy dreamland we'd imagined -- Donovan Hohn, author of Moby DuckAn illuminating journey of discovery * Sunday Express *Total immersive reading * The Wharf *
£10.44
OUP India Data Structures using Python
Book SynopsisData 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.Table of Contents1. 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
£75.99
Oxford University Press Stepping Motors And Their Microprocessor Controls 34 Monographs in Electrical and Electronic Engineering
Book SynopsisFrom reviews of the first edition:-.... quality and qulaity of illustrations is noteworthy... a comprehensive and thought provoking summary of stepping motor technology. Times Higher Education Supplement.A general textbook on the use of stepping motors ... a comprehensive guide to the subject. Electronics and Power.Whenever repeated stop-start or incremental controlled motions are encountered, there are apllications for stepping motors. Their basic design and constructure make them enimently suitable for digital (microprocessor) control and they are consequently found in computer hardware- disk drives, printers, etc, in clocks, in numerically controlled machine books, and in domestic appliances.In this successful textbook, the authors take a practical approach to stepping motors, using many informative diagrams to explain their working principles, construction details, electronic controls, applications, and methods of maufacutre.Table of ContentsPreface ; 1. Introduction and historical survey ; 2. Outline of modern stepping motors ; 3. Theory of electromagnetics and stepping motors ; 4. Fundamental theory of the dynamics of stepping motors ; 5. Drive system and circuitry for open-loop control of stepping motors ; 6. Torque characteristics and pulse intervals - measurement and use in system design ; 7. Closed-loop control of stepping motors ; 8. Application of stepping motors ; 9. Manufacture of stepping motors ; Index
£999.99
Pearson Education Limited ARM SystemonChip Architecture
Book SynopsisSteve Furber has a long association with the ARM, having helped create the first ARM chips during the 1980s. Now an academic, but still actively involved in ARM development, he presents an authoritative perspective on the many complex factors that influence the design of a modern system-on-chip and the microprocessor core that is at its heart. This book represents the culmination of fifteen years of experience of ARM research and development and of teaching undergraduate, masters and industrial training courses in system-on-chip design using the ARM. Table of ContentsPreface. 1. An Introduction to Processor Design. 2. The ARM Architecture. 3. ARM Assembly Language Programming. 4. ARM Organization and Implementation. 5. The ARM Instruction Set. 6. Architectural Support for High-Level Languages. 7. The Thumb Instruction Set. 8. Architectural Support for System Development. 9. ARM Processor Cores. 10. Memory Hierarchy. 11. Architectural Support for Operating Systems. 12. ARM CPU Cores. 13. Embedded ARM Applications. 14. The AMULET Asynchronous ARM Processors. Appendix: Computer Logic. Glossary. Bibliography. Index.
£77.89
Columbia University Press Smart Machines
Book SynopsisTrade ReviewIf you think the tidal wave of digital disruption is over, think again. Kelly and Hamm pull back the curtain on the next great wave of the computing revolution, which will transform how every industry and business operates in the near future. -- David Rogers, author of The Network Is Your Customer: Five Strategies to Thrive in a Digital Age As Watson's win against Jeopardy! champion Ken Jennings showed, IBM's research labs are doing some of the world's most revolutionary research in artificial intelligence and related fields. In this short and very accessible book, the authors outline this work and the wave of 'cognitive computing' that is about the break. -- James Hendler, Rensselaer Polytechnic Institute This book will give the careful reader an understanding of the immense possibilities offered by the intelligent collaboration of man and machine; armed with this knowledge, readers can then tackle the difficult but essential task of ensuring that these new cognitive technologies will, in practice, be devoted to bettering our lives. -- Ralph Gomory, Stern School of Business, New York University Technological change, from new materials to smart systems, is accelerating, and the latest advances fuel others. John E. Kelly and Steve Hamm show how these technologies will transform our jobs, our cities-even how we think. -- Stephen Baker, author of Final Jeopardy: Man vs. Machine and the Quest to Know Everything IBM's Watson is one of the most important technological breakthroughs in decades, and this is the go-to book for understanding what this new technology is all about and how it will change your life. -- Tyler Cowen, George Mason University, author of Average Is Over This book is a gem... Highly recommended. CHOICETable of ContentsPreface by John E. Kelly III 1. A New Era of Computing 2. Building Learning Systems 3. Handling Big Data 4. Augmenting Our Senses 5. Designing Data-centric Computers 6. Inventing a New Physics of Computing 7. Imagining the Cognitive City Coda: An Alliance of Human and Machine Notes
£17.09
Elsevier Science & Technology Cloud Computing: Theory and Practice
Book Synopsis
£52.20
Taylor & Francis Ltd Wireless and Mobile Networking
Book SynopsisThere has been phenomenal uptake of wireless and mobile networking technologies in the past decades. Significant developments have taken place during this time making the wireless technology more affordable, effective, and reliable. This book explains the fundamental principles and protocols of key existing and emerging wireless networking technologies. The book begins with a review of the fundamentals of wireless communications. It covers the basic theories and terminologies of coding and modulation, which maps digital information to the underlying signal, as well as the models to capture the dynamics of wireless signal propagation in the environment. It provides in-depth coverage of the WiFi evolution covering both the mainstream WiFi, which operates in 2.4/5GHz with new versions targeting 6GHz, as well as some of the niche WiFi standards that operate outside the mainstream bands such as 802.11af in 700MHz TV bands, 802.11ah in 900MHz to connect the Internet of Things (IoT), and 8Table of ContentsPart I: Introduction 1. Wireless and Mobile Networking: From Past to Present Part II: Physical Layer Fundamentals 2. Wireless Coding and Modulation 3. Wireless Signal Propagation Part III: WiFi and Wireless Local Area Networks 4. WiFi Basics 5. Mainstream WiFi Standards 6. Niche WiFi Part IV: Cellular Networks 7. Cellular Networks 8. 5G Networks Part V: Internet of Things 9. Internet of Things 10.Bluetooth 11. LoRa and LoRaWAN Part VI: Next Frontiers in Wireless Networking 12. Artificial Intelligence-assisted Wireless Networking 13.Wireless Sensing 14.Aerial Wireless Networks
£137.75
Taylor & Francis Ltd Remote Delivery
Book SynopsisThis book records the author's years of experience in the software industry. In his own practices, the author has found that the distributed work pattern has become increasingly popular in more and more work environments, either between vendors and customers or between different teams inside a company. This means that all practitioners in the software industry need to adapt to this new way of communication and collaboration and get skilled enough to meet the greater challenges in integrating the distributed work pattern with agile software delivery. By centering on the difficulties in communication and collaboration between distributed teams, this book digs into the reasons why so many remote delivery projects end up anticlimactic and provides solutions for readers' reference. It also cites successful cases in promoting agile development in distributed teams, which has been a vexing problem for many software development companies. In addition, readers can find suggestions andTable of ContentsForeword 1: Taking Up Delivery Wholeheartedly. Foreword 2: Pursue Ideal Software Delivery. Preface. Chapter 1 Current Situation of Distributed Teams. Chapter 2 Communication between Distributed Teams. Chapter 3 Collaboration between Distributed Teams. Chapter 4 Application of Visualization. Chapter 5 Waste in Distributed Teams. Chapter 6 Self-Managed Offshore Teams. Chapter 7 Customer-Oriented Offshore Teams. Chapter 8 The Future of Distributed Teams. Postscript. References. Index.
£84.99
CRC Press An Interdisciplinary Approach to Modern Network
Book SynopsisAn Interdisciplinary Approach to Modern Network Security presents the latest methodologies and trends in detecting and preventing network threats. Investigating the potential of current and emerging security technologies, this publication is an all-inclusive reference source for academicians, researchers, students, professionals, practitioners, network analysts and technology specialists interested in the simulation and application of computer network protection. It presents theoretical frameworks and the latest research findings in network security technologies, while analyzing malicious threats which can compromise network integrity. It discusses the security and optimization of computer networks for use in a variety of disciplines and fields. Touching on such matters as mobile and VPN security, IP spoofing and intrusion detection, this edited collection emboldens the efforts of researchers, academics and network administrators working in both the public and privatTable of ContentsChapter 1: Application of Artificial Intelligence in Cyber-security – A Detail Survey on Intrusion Detection System Chapter 2: IoMT data Security Approach: Blockchain in Healthcare Chapter 3: Machine Learning Approach for Network Intrusion Detection SystemChapter 4: Deep learning approach for network intrusion detection systemChapter 5: Firewalls and SecurityChapter 6: Application of Machine Learning and Deep Learning in Cyber Security: An Innovative ApproachChapter 7: A Modified Authentication Approach for Cloud computing in E-Healthcare SystemChapter 8: Advanced Security System in Video Surveillance for COVID-19Chapter 9: Secure Sound and Data Communication via Li-FiChapter 10: A Novel Secured Method for Rapid Data Accumulation in Energy Aware WSN
£99.75
Taylor & Francis Ltd BIMenabled Cognitive Computing for Smart Built
Book SynopsisThe book provides knowledge in the Building Information Model (BIM)-enabled cognitive computing methods for smart built environment involving cognitive network capabilities for smart buildings, integrating Augmented Reality/Mixed Reality in cognitive building concepts, cognitive Internet of Things (CIoT) for smart cities, Artificial Intelligence applications for cognitive cities, and cognitive smart cities using big data and machine learning. It focuses on the potential, requirements and implementation of CIoT paradigm to buildings, Artificial Intelligence techniques, reasoning, and Augmented Reality/Mixed Reality in cognitive building concepts, the concept of cognitive smart cities in its complexity, heterogeneity, and scope, and the challenge of utilizing the big data generated by smart cities from a machine learning perspective. The book comprises BIM-based and data-analytic research on cognitive IoT for smart buildings and cognitive cities using big data and machine learning as Trade Review"The book provides knowledge in the Building Information Model (BIM)-enabled cognitive computing methods for smart built environment involving cognitive network capabilities for smart buildings, integrating Augmented Reality/Mixed Reality in cognitive building concepts, cognitive Internet of Things (CIoT) for smart cities, Artificial Intelligence applications for cognitive cities, and cognitive smart cities using big data and machine learning. It reviews ongoing development of BIM-based and data science technologies for the processing, analysis, management, modeling, and simulation of big and context data and the associated applicability to cognitive systems that will advance different aspects of future cognitive cities."- James A. Cox, Editor-in-Chief, Midwest Book ReviewTable of ContentsOverview of Cyber-Physical Systems and Enabling Technologies in Cognitive Computing for Smart Built Environment. Towards a Digital Twin-based Smart Built Environment. BIM-IoT Integrated Architectures as the Backbone of Cognitive Buildings: Current State and Future Directions. Digital Twin Procreation Through Convergence of Building Information Model (BIM) and Internet of Things (IoT). The Integration of Building Information Modeling (BIM) and Immersive Technologies (ImTech) for the Digital Twin Implementation in the AECO/FM industry. Smart Maintenance Services for Buildings with Digital Twins and Augmented Reality. Blockchain: Technologies for Facilitating Cyber-Physical Security in Smart Built Environment. eLUX: The Case Study of the Cognitive Building in the Smart Campus at the University of Brescia. Index.
£128.25
CRC Press Introduction to Industrial Internet of Things and
Book SynopsisIndustrial IoT (IIoT) and Industry 4.0 are newly developing and fast emerging domains of interest among students, researchers, and professionals in academia and industry. Due to the popular demand of this topic, Introduction to Industrial Internet of Things and Industry 4.0 is written to serve a diverse readership from the domains of computer science and engineering, mechanical engineering, information technology, industrial engineering, electronics engineering, and other related branches of engineering. Based on the lead authorâs massive open online courses (MOOCs), this book can be used as a textbook on the emerging paradigm of Industry 4.0 and IIoT, as well as a reference for professionals working in sectors of IIoT.The book covers the significant aspects of IIoT in detail, including sensors, actuators, data transmission, and data acquisition, which form the core of IIoT. Topics and concepts are presented in a comprehensive manner, so that readers can develop expertise and knowledge. The book helps beginners to gain a basic idea of Industry 4.0 and IIoT as the first section is an overview of IoT applications, infrastructure-based protocols, cloud computing, and fog computing. The second section is designed to impart a basic knowledge of Industry 4.0 and IIoT as well as of the different phases of development in industry. Delving into more advanced areas, other sections in the book cover: The business models and reference architecture of IIoT The technological aspects of Industry 4.0 and IIoT Predictive and prescriptive analytics applied in IIoT-based implementations Applications and case studies of IIoT Key enabling technologies of IIoT To aid students and professional master IIoT and Industry 4.0, the book includes conceptual questions, exercises, and learning objectives.Table of ContentsPart 1. Prerequisites. Chapter 1. Overview of Internet of Things. Part 2. Introduction. Chapter 2. Introduction to Industry 4.0 and Industrial Internet of Things. Chapter 3. Industry 4.0: Basics. Chapter 4. Industrial Internet of Things: Basics. Chapter 5. Business Models and Reference Architecture of IIoT. Part 3. Technological Aspects of Industry 4.0 and IIoT. Chapter 6. Key Technologies-Part 1. Chapter 7. Key Technologies-Part 2. Part 4. Enabling Technologies of IIoT. Chapter 8. Connectivity. Chapter 9. Communication. Chapter 10. Interoperability. Part 5. IIoT Analytics. Chapter 11. Introduction to Analytics. Chapter 12. Machine Learning and Data Science. Part 6. Applications and Case Studies. Chapter 13. Healthcare. Chapter 14. Inventory Management & Quality Control. Chapter 15. Plant Safety and Security. Chapter 16. Case Studies.
£71.24
Elsevier Science & Technology Embedded System Design
Book SynopsisTable of Contents1. Introduction to Internet of Things (IoT) and Embedded Systems Part 1: Modelling 2. First Stage Modelling – Modelling Interaction between the System and the Environment 3. Finite State Machines 4. Modelling Physically Distributed Embedded Systems 5. Petri Nets for Modelling Concurrency and Shared Resources Part 2: Building Robust, Safe, and Correct Systems 6. Designing Systems that are Safe and Robust 7. Verification, Validation, and Evaluation 8. Testing Part 3: Hardware 9. Introduction and Overview 10. Processing Elements 11. Memories 12. Field Programmable Gate Arrays 13. Devices, Sensors, and Actuators 14. Energy 15. Hardware-Software Mapping Part 4: Software 16. Operating Systems 17. Scheduling 18. Semaphores 19. Optimization and Other Special Considerations Part 5: Communications 20. Introduction to Communications and Messages 21. Networks 22. The Internet 23. Low-level Communication Protocols 24. Cloud vs. Edge vs. Local Computing Part 6: The Internet of Things 25. Reference Models for the Internet of Things 26. IoT Issues
£62.06
John Wiley & Sons Inc Distributed Systems Security
Book SynopsisHow to solve security issues and problems arising in distributed systems. Security is one of the leading concerns in developing dependable distributed systems of today, since the integration of different components in a distributed manner creates new security problems and issues. Service oriented architectures, the Web, grid computing and virtualization form the backbone of today's distributed systems. A lens to security issues in distributed systems is best provided via deeper exploration of security concerns and solutions in these technologies. Distributed Systems Security provides a holistic insight into current security issues, processes, and solutions, and maps out future directions in the context of today's distributed systems. This insight is elucidated by modeling of modern day distributed systems using a four-tier logical model host layer, infrastructure layer, application layer, and service layer (bottom to top). The authors provide an in-depth coverTable of ContentsChapter 1: Introduction 1.1 Background 1.2 Distributed Systems. 1.3 Distributed Systems Security. 1.4 About the Book. Chapter 2: Security Engineering. 2.1 Introduction. 2.2 Secure Development Life Cycle Processes – An Overview. 2.3 A Typical Security Engineering Process. 2.4 Important Security Engineering Guidelines and Resources. 2.5 Conclusion. Chapter 3. Common Security Issues and Technologies. 3.1 Security Issues. 3.2 Common Security Techniques. 3.3 Summary. Chapter 4 – Host level Threats and Vulnerabilities. 4.1 Background. 4.2 Malware. 4.3 Eavesdropping. 4.4 Job faults. 4.5 Resource starvation. 4.6 Overflow. 4.7 Privilege escalation. 4.8 Injection attacks. 4.9 Conclusion. Chapter 5 – Infrastructure Level Threats & Vulnerabilities. 5.1 Introduction. 5.2 Network Level Threats and Vulnerabilities. 5.3 Grid Computing Threats and Vulnerabilities. 5.4 Storage Threats and Vulnerabilities. Chapter 6: Application Level Vulnerabilities and Attacks. 6.1 Introduction. 6.2 Application Layer Vulnerabilities. 6.3 Conclusion. Chapter 7 – Service Level Issues, Threats and Vulnerabilities. 7.1 Introduction. 7.2 SOA and Role of Standards. 7.3 Service Level Security Requirements. 7.4 Service Level Threats and Vulnerabilities. 7.5 Service Level Attacks. 7.6 Services Threat Profile. 7.7 Conclusions. Chapter 8: Host level Solutions. 8.1 Background. 8.2 Sandboxing. 8.3 Virtualization. 8.4 Resource Management 8.5 Proof carrying code. 8.6 Memory firewall 8.7 Anti malware. 8.8 Conclusions. Chapter 9 – Infrastructure Level Solutions 9.1 Introduction. 9.2 Network Level Solutions. 9.3 Grid Level Solutions. 9.4 Storage Level Solutions. Chapter 10: Application Level Solutions. 10.1 Introduction. 10.2 Application Level Security Solutions. 10.3 Conclusion. Chapter 11 – Service Level Solutions. 11.1 Introduction. 11.2 Services Security Policy. 11.3 SOA Security standards stack. 11.4 Standards in Depth. 11.5 Deployment Architectures for SOA Security. 11.6 Managing Service Level Threats. 11.7 Service Threat Solution Mapping. 11.8 XML Firewall Configuration-Threat Mapping. 11.9 Conclusions. Chapter 12 - Case Study – Compliance in Financial Services. 12.1 Introduction. 12.2 SOX compliance. 12.3 SOX Security Solutions. 12.4 Multi-level policy driven solution architecture. 12.5 Conclusions. Chapter 13 – Case Study of Grid. 13.1 Background. 13.2 Financial Application. 13.3 Security Requirements Analysis. 13.4 Final Security Architecture. Chapter 14: Future directions and Conclusions. 14.1 Future directions. 14.2 Conclusions.
£74.66
John Wiley & Sons Inc Enterprise Software Architecture and Design
Book SynopsisThis book fills a gap between high-level overview texts that are often too general and low-level detail oriented technical handbooks that lose sight the big picture.This book discusses SOA from the low-level perspective of middleware, various XML-based technologies, and basic service design.It also examines broader implications of SOA, particularly where it intersects with business process management and process modeling.Concrete overviews will be provided of the methodologies in those fields, so that students will have a hands-on grasp of how they may be used in the context of SOA.Table of ContentsList of Figures xv Acknowledgements xxiii 1. Introduction 1 References / 6 2. Middleware 7 2.1 Enterprise Information Systems / 7 2.2 Communication / 12 2.3 System and Failure Models / 21 2.4 Remote Procedure Call / 34 2.5 Message-Oriented Middleware / 42 2.6 Web Services and Service-Oriented Architecture (SOA) / 46 2.7 Cloud Computing / 52 2.8 Naming and Discovery / 55 2.9 Further Reading / 56 References / 57 3. Data Modeling 59 3.1 Entities and Relationships / 60 3.1.1 Concepts and Entities / 60 3.1.2 Attributes and Relationships / 61 3.1.3 Properties of Relationship Types / 65 3.1.4 Special Relationship Types / 69 3.2 XML Schemas / 74 3.3 Defining New Types / 79 3.3.1 Defining Simple Types / 79 3.3.2 Defining Complex Types / 82 3.4 Derived Types / 85 3.4.1 Derived Simple Types / 86 3.4.2 Derived Complex Types / 87 3.5 Document Hierarchies / 94 3.6 Relationship Types in XML Schemas / 98 3.7 Metaschemas and Metamodels / 100 3.8 Further Reading / 102 References / 102 4. Data Processing 104 4.1 Processing XML Data / 104 4.1.1 Tree Processing / 105 4.1.2 Schema Binding / 109 4.1.3 Stream Processing / 114 4.1.4 External Processing / 119 4.2 Query Languages and XQuery / 122 4.3 XML Databases / 134 4.3.1 Storage as Relational Tables / 135 4.3.2 Storage as Large Strings / 137 4.3.3 Native XML Storage / 137 4.4 Web Services / 138 4.4.1 SOAP: (not so) Simple Object Access Protocol / 139 4.4.2 WSDL: Web Services Description Language / 145 4.4.3 Web Service Policy / 155 4.5 Presentation Layer: JSON and JQUERY / 159 References / 166 5. Domain-Driven Architecture 167 5.1 Software Architecture / 167 5.2 Domain-Driven Design / 168 5.3 Application Frameworks / 175 5.4 Domain-Specific Languages (DSLs) / 180 5.5 An Example API for Persistent Domain Objects / 188 5.6 Domain-Driven Architecture / 197 5.7 Further Reading / 205 References / 205 6. Service-Oriented Architecture 207 6.1 Services and Procedures / 207 6.2 Service-Oriented Architecture (SOA) / 211 6.3 Service Design Principles / 216 6.4 Service-Oriented Architecture (SOA) Governance / 218 6.5 Standardized Service Contract / 221 6.5.1 Operations Contract / 222 6.5.2 Data Contract / 223 6.5.3 Policy Contract / 224 6.5.4 Binding Contract / 226 6.5.5 Contract Versioning / 231 6.6 Service Loose Coupling / 237 6.6.1 Motivation for Loose Coupling / 237 6.6.2 Contract Development / 239 6.6.3 Loose Coupling Patterns / 242 6.6.4 Cost of Loose Coupling / 246 6.7 Service Abstraction / 248 6.7.1 Platform Abstraction / 248 6.7.2 Protocol Abstraction / 249 6.7.3 Procedural Abstraction / 261 6.7.4 State Abstraction / 264 6.7.5 Data Abstraction / 269 6.7.6 Endpoint Abstraction / 278 6.8 Service Reusability / 278 6.8.1 Parameterization and Bounded Polymorphism / 279 6.8.2 Subtyping, Inheritance, and Contracts / 284 6.8.3 Does Service-Oriented Architecture Require Subtyping? / 289 6.8.4 Patterns for Service Reusability / 292 6.9 Service Autonomy / 299 6.9.1 Replicating Computation / 300 6.9.2 Replicating State / 303 6.9.3 Sources of Errors and Rejuvenation / 308 6.9.4 Caching / 313 6.10 Service Statelessness / 323 6.10.1 Contexts and Dependency Injection / 331 6.11 Service Discoverability / 336 6.11.1 Global Discovery / 336 6.11.2 Local Discovery / 337 6.11.3 Layered Naming / 347 6.12 Further Patterns / 351 6.13 Further Reading / 352 References / 352 7. Resource-Oriented Architecture 359 7.1 Representational State Transfer / 359 7.2 RESTful Web Services / 369 7.3 Resource-Oriented Architecture (ROA) / 379 7.4 Interface Description Languages / 387 7.4.1 Web Services Description Language (WSDL) / 387 7.4.2 Web Application Description Language (WADL) / 390 7.5 An Example Application Program Interface (API) for Resource-Oriented Web Services / 396 7.6 Hypermedia Control and Contract Conformance / 406 7.7 Concluding Remarks / 412 7.8 Further Reading / 414 References / 414 Appendix A: Introduction to Haskell 416 A.1 Types and Functions / 416 A.2 Type Classes and Functors / 425 A.3 Monads / 431 A.4 Further Reading / 436 References / 436 Appendix B: Time in Distributed Systems 437 B.1 What Time Is It? / 437 B.2 Time and Causality / 443 B.3 Applications of Logical and Vector Time / 450 B.3.1 Mutual Exclusion / 450 B.3.2 Quorum Consensus / 451 B.3.3 Distributed Logging / 456 B.3.4 Causal Message Delivery / 458 B.3.5 Distributed Snapshots / 463 B.4 Virtual Time / 468 B.5 Further Reading / 470 References / 470 Index 473
£107.06
John Wiley & Sons Inc PatternOriented Software Architecture Patterns
Book SynopsisThe first volume of the POSA pattern series introduced a broad-spectrum of general-purpose patterns in software design and architecture. The second narrowed the focus to fundamental patterns for building sophisticated concurrent and networked software systems and applications.Table of ContentsForeword by Frank Buschmann. Foreword by Steve Vinoski. About This Book. About The Authors. Intended Audience. Structure of the Book. Guide to the Reader. Acknowledgements. About The Authors. 1. Introduction. 1.1 Overview of Resource Management. 1.2 Scope of Resource Management. 1.3 Usage of Patterns. 1.4 Patterns in Resource Management. 1.5 Related Work. 1.6 Pattern Form. 2. Resource Acquisition. Lookup. Lazy Acquisition. Eager Acquisition. Partial Acquisition. 3. Resource Lifecycle. Caching. Pooling. Coordinator. Resource Lifecycle Manager. 4. Resource Release. Leasing. Evictor. 5. Guidelines for Applying Resource Management. 6. Case Study: Ad Hoc Networking. 6.1 Overview. 6.2 Motivation. 6.3 Solution. 7. Case Study: Mobile Network. 7.1 Overview. 7.2 Motivation. 7.3 Solution. 8. The Past, Present, and Future of Patterns. 8.1 The Past Four Years at a Glance. 8.2 Where Patterns are Now. 8.3 Where Will Patterns Go Tomorrow? 8.4 A Brief Note about the Future of Patterns. 9. Concluding Remarks. Referenced Patterns. Notations. References. Acknowledgements. Index of Patterns. Index.
£30.00
John Wiley & Sons Inc Architecting Enterprise Solutions Patterns for
Book SynopsisBased on real--world problems and systems and illustrated with "war stories," this practical nuts--and--bolts guide to architectural solutions describes step--by--step how to design robustness and flexibility into a system. A running case study illustrates the evolution and iteration of the system as it grows in functionality and capability.Table of ContentsAcknowledgements. An All-Too-Common Story. Introduction. Part 1 Architecture, Patterns and Internet Technology. System Architecture. Internet Technology Systems. Architectural Patterns for Internet Technology Systems. The GlobalTech System. Part 2 The Patterns. Fundamental Patterns. System Performance Patterns. System Control Patterns. System Evolution Patterns. Part 3 Application of the Patterns. GlobalTech Revisited. Appplying the Patterns. Moving on from Here. Appendix Reference Patterns. Bibliography. Glossary.
£23.99