Computer programming / software engineering Books
The Pragmatic Programmers Learn to Program
Book SynopsisIt's easier to learn how to program a computer than it has ever been before. Now everyone can learn to write programs for themselves - no previous experience is necessary. Chris Pine takes a thorough, but lighthearted approach that teaches you the fundamentals of computer programming, with a minimum of fuss or bother. Whether you are interested in a new hobby or a new career, this book is your doorway into the world of programming. Computers are everywhere, and being able to program them is more important than it has ever been. But since most books on programming are written for other programmers, it can be hard to break in. At least it used to be. Chris Pine will teach you how to program. You'll learn to use your computer better, to get it to do what you want it to do. Starting with small, simple one-line programs to calculate your age in seconds, you'll see how to write interactive programs, to use APIs to fetch live data from the internet, to rename your photos from your digital camera, and more. You'll learn the same technology used to drive modern dynamic websites and large, professional applications. Whether you are looking for a fun new hobby or are interested in entering the tech world as a professional, this book gives you a solid foundation in programming. Chris teaches the basics, but also shows you how to think like a programmer. You'll learn through tons of examples, and through programming challenges throughout the book. When you finish, you'll know how and where to learn more - you'll be on your way. What You Need: All you need to learn how to program is a computer (Windows, macOS, or Linux) and an internet connection. Chris Pine will lead you through setting set up with the software you will need to start writing programs of your own.
£35.14
O'Reilly Media Concurrency in Go
Book SynopsisIf you’re a developer familiar with Go, this practical book demonstrates best practices and patterns to help you incorporate concurrency into your systems. You’ll understand how Go chooses to model concurrency, what issues arise from this model, and how you can compose primitives within this model to solve problems.
£29.99
O'Reilly Media Badass Making Users Awesome
Book SynopsisBuild sustainably successful products and services that don't rely on unethical persuasive marketing tricks but on helping your users have deeper, richer experiences. This book shows you what it takes to make your users badass-and help you succeed.
£23.79
Manning Publications Grokking Continuous Delivery
Book SynopsisTrade Review'Does an excellent job at delivering CI/CD theory without the burden of a specific technology/tool.' Tony Sweets 'This book is a must read for everyone doing CI/CD' Tobias Getrost 'A great book for anyone embracing DevOps (potentially everyone!) and will make better DevOps practitioners of all readers, no matter their experience.'Sergio Fernandez Gonzalez 'The perfect book to understand the basic concepts of CI/CD for beginners.'Andrea C. Granata 'It's like having a friend taking the time to fully explain terms, including anticipating where there may be confusion or questions and addressing them.'Brent HonadelTable of ContentsBuild and use systems that safely automate software delivery from testing through release with this jargon-busting guide to Continuous Delivery pipelines. In Grokking Continuous Delivery you will learn how to: Design effective CD pipelines for new and legacy projects Keep your software projects release-ready Maintain effective tests Scale CD across multiple applications Ensure pipelines give the right signals at the right time Use version control as the source of truth Safely automate deployments with metrics Describe CD in a way that makes sense to your colleagues Grokking Continuous Delivery teaches you the design and purpose of continuous delivery systems that you can use with any language or stack. You'll learn directly from your mentor Christie Wilson, Google engineer and co-creator of the Tekton CI/CD framework. Using crystal-clear, well-illustrated examples, Christie lays out the practical nuts and bolts of continuous delivery for developers and pipeline designers. about the technology If you're using version control or automating your tests, you're already on the path to continuous delivery! This collection of development practices and automation tools that make it possible to safely deploy on every change to your codebase is the backbone of modern software development. You'll benefit from faster feature development, easier maintenance, and freedom from time-consuming manual tasks. about the book Grokking Continuous Delivery is a practical guide to implementing and using continuous delivery in your software projects. It's full of tool-agnostic best practices that you can apply to any software project, from libraries to large service applications. You'll get a complete overview of all the pieces of a CD pipeline and learn how to fit them together for both new and legacy codebases. Each chapter takes on a different real-world scenario you'll face when setting up and working with a CD system, with examples including a startup looking to scale up automation and a social network struggling with a legacy testing suite. You'll uncover the proper approaches to solve each challenge. Author Christie Wilson's plain-and-simple language makes abstract theory easy to grok. With this book as your roadmap, you'll have a clear plan for bringing CD to your team without the need for costly trial-and-error experimentation.# RETAIL SELLING POINTS Design effective CD pipelines for new and legacy projects Keep your software projects release-ready Maintain effective tests Scale CD across multiple applications Ensure pipelines give the right signals at the right time Use version control as the source of truth Safely automate deployments with metrics Describe CD in a way that makes sense to your colleagues AUDIENCE For software engineers who want to start adding CD to their development process.
£41.39
No Starch Press,US The Lego Lighting Book: Light Your LEGO Models!
Book SynopsisWhether a vehicle, house, or entire city, all LEGO creations can become even more amazing with LED lights and The LEGO Lighting Book shows how to light them. Clear instructions, inspiring examples and vivid photographs illustrate how to achieve the best lighting for interior scenes, buildings, minifigs, vehicles, shadow sculptures, glowing artwork, and animated lighting effects. A series of exclusive building exercises allows readers to practice the techniques they have learned.Trade Review"A truly awe-inspiring book for any LEGO® builder, artist, or photographer." —Hue Hughes, Toy Photographer"Amazing insights of possibilities in lighting LEGO® sets with instructions for some examples. It also compares existing lighting kits with DIY solutions. A must-have for lighting enthusiasts and people who want to become one."—Holger Wennmann, @AustrianBrickFan"A must-read for any LEGO® fan looking to take their creations to a whole new level. With step-by-step instructions, helpful tips and stunning examples, this guide beautifully showcases the world of LEGO® lighting and will serve as an inspiration for LEGO® fans."—Brad, @BRICKLOVER18"Amazing photography . . . a really interesting read and resource to have on the shelf in your LEGO room." —Adam King, Adam's Brick Junction"Williams makes complex lighting techniques easy to understand and breaks down complex builds into manageable step-by-step instructions. Whether you want to take your LEGO builds up a notch or give yourself an extra hour of quiet time by letting your husband and kids build a circuit board, this book is an amazing resource that should have a space on every LEGO enthusiast’s shelf."—Louise Knight-Gibson, Smile Politely"The LEGO Lighting Book will be a constant reference source for all LEGO designers and builders." —Wayne Moore, LEGO Enthusiast"A 'must have' acquisition for the legions of dedicated LEGO fans, [The LEGO Lighting Book] will prove to be an immediate and enduringly popular addition to personal, professional, community, college, and university library collections."—Midwest Book Review
£21.74
O'Reilly Media Learning Go
Book Synopsis
£42.39
Manning Publications Rust Web Development
Book SynopsisCreate bulletproof, high-performance web apps and servers with Rust. In Rust Web Development you will learn: Handling the borrow checker in an asynchronous environment Creating web APIs and using JSON in Rust Graceful error handling Testing, tracing, logging, and debugging Deploying Rust applications Efficient database access Rust Web Development is a hands-on guide to building server-based web applications with Rust. If you've built web servers using Java, C#, or PHP, you'll instantly fall in love with the performance and development experience Rust delivers. This book shows you how to work efficiently using pure Rust, along with important Rust libraries such as tokio for async runtimes, warp for web servers and APIs, and reqwest to run external HTTP requests. about the technology Web development languages and libraries can be resource hungry, with poor safety for maintaining vital web services. Rust services perform better and guarantee better safety. Plus, Rust's awesome compiler gives you an amazing developer experience. You'll get the speed of low-level programming languages like C along with the ease-of-use you'd expect from high-level languages Python or Ruby, with a super strong compiler that automatically prevents common mistakes such as null pointers. about the book In Rust Web Development, you'll learn to build server-side web applications using the Rust language and its key libraries. If you know the basics of Rust, you'll quickly pick up some pro tips for setting up your projects and organizing your code. This book gets you hands-on fast, with numerous small and large examples. You'll get up to speed with how Rust streamlines backend development, implements authentication flows, and even makes it easier for your APIs to interact. As you go, you'll build a complete Q&A web service and iterate on your code chapter-by-chapter, just like a real development project. RETAIL SELLING POINTS • Handling the borrow checker in an asynchronous environment • Creating web APIs and using JSON in Rust • Graceful error handling • Testing, tracing, logging, and debugging • Deploying Rust applications • Efficient database access AUDIENCE For experienced web developers familiar with Java, Node, or Go, and the absolute basics of Rust Trade Review'Rust Web Development offers practical advice and strong technical expertise to equip developers with skills to build secure, performant, and type-safe applications.'Christopher Villanueva 'This is an excellent guide to getting started with Rust web development. The author explains new concepts in bite-sized chunks to help the reader become acquainted with how Rust applications are built.'Rodney Weis 'Do you need to write an API endpoint in Rust? This is a good book on that.'Timothy Robert James Langford 'If you want a more streamlined approach to web development using Rust then this is your book.'Jeff Smith 'Unlock not only the possibilities of using Rust in web development but also the inner workings of Rust that may have been hard to understand without the right context.'Dane BaliaTable of Contentstable of contents detailed TOC PART 1: INTRODUCTION TO RUST READ IN LIVEBOOK 1WHY RUST? READ IN LIVEBOOK 2LAYING THE FOUNDATION PART 2: GETTING STARTED READ IN LIVEBOOK 3CREATE YOUR FIRST ROUTE HANDLER READ IN LIVEBOOK 4IMPLEMENT A RESTFUL API READ IN LIVEBOOK 5CLEANUP YOUR CODEBASE READ IN LIVEBOOK 6LOGGING, TRACING AND DEBUGGING READ IN LIVEBOOK 7ADD A DATABASE TO YOUR APPLICATION READ IN LIVEBOOK 8INTEGRATE 3RD-PARTY APIS PART 3: BRING IT IN PRODUCTION READ IN LIVEBOOK 9ADD AUTHENTICATION AND AUTHORIZATION READ IN LIVEBOOK 10DEPLOY YOUR APPLICATION 11 TESTING YOUR RUST APPLICATION
£33.14
Pearson Education Generative Analysis
Book SynopsisJim Arlow has been programming and designing object-oriented software systems since 1990. He has created object models for blue chip companies such as British Airways and M&G. He is a respected OO consultant in Europe and has written and delivered many training courses on object technology and Java. Jim is a regular speaker at conferences such as Object World, and has been an invited speaker at University College London, City University, and the British Computer Society. Ila Neustadt has worked in IT for British Airways (BA) for more than twenty years and has experience with all parts of the IT development life cycle. She worked in the strategy department modeling the architecture process and developing architecture training, and acted as program head for the graduate business analyst program. Ila now coordinates skills development for BA's IT staff.
£43.19
Pearson Education Starting Out with Java From Control Structures
Book SynopsisAbout our author Tony Gaddis is the principal author of the Starting Out With series of textbooks. He has 20 years of experience teaching computer science courses, primarily at Haywood Community College. Tony is a highly acclaimed instructor who was previously selected as the North Carolina Community College Teacher of the Year and has received the Teaching Excellence award from the National Institute for Staff and Organizational Development. The Starting Out With series includes introductory textbooks covering programming logic and design, C++, Java, Microsoft Visual Basic, Microsoft Visual C#, Python, Alice and App Inventor, all published by Pearson.
£59.84
O'Reilly Media Mastering Salesforce Reports and Dashboards
Book SynopsisEffective, repeatable, and insightful analytics are key to ROI in customer relationship management systems. This practical introduction covers all the aspects and features you need to be successful with Salesforce reports and dashboards.
£39.74
No Starch Press,US Arduino For Arduinians: 70 Projects for the
Book SynopsisThis friendly project-based book will turn Arduino beginners into advanced Arduinians with the skills and inspiration needed to construct their own professional or hobbyist devices. Building on Arduino techniques like those covered in the author's celebrated Arduino Workshop, this book covers dozens of new topics and techniques. The book dives straight into constructing the building blocks of advanced Arduino projects, where readers will learn to increase interfacing speed and power efficiency, work with digital cameras and various data buses, safely control AC mains power, and other advanced skills that leverage this inexpensive, versatile microcontroller platform.Trade Review"I highly recommend this rich, detailed, and extensive treatment of Arduino makery." —Greg Laden, Greg Laden's Blog"Another tome worthy of the Gadget Master library . . ."—Alun Williams, ElectronicsWeekly.comTable of ContentsAcknowledgments Introduction Chapter 1: Using Multiple Buttons with One Analog Input Chapter 2: Increasing Digital I/O Speed with Port Manipulation Chapter 3: Configuring the Arduino Environment for ATtiny MicrocontrollersChapter 4: Building Watchdog TimersChapter 5: Controlling LEDs with CharlieplexingChapter 6: Using Soft Power ControlChapter 7: Controlling AC Mains Power with the ArduinoChapter 8: Controlling High-Power Shift RegistersChapter 9: Working with MP3 ModulesChapter 10: Using Multiple I2C Devices with the Same AddressChapter 11: Emulating USB Keyboards and Mice with ArduinoChapter 12: Storing Data on USB Flash DrivesChapter 13: Interfacing with PS/2 KeyboardsChapter 14: Controlling the Arduino Wirelessly with BluetoothChapter 15: Increasing Energy Efficiency in Portable ProjectsChapter 16: Monitoring Automotive Electronics with the CAN Bus Chapter 17: Communicating via RS232 Using the ArduinoChapter 18: Communicating via RS485 Using the ArduinoChapter 19: Remote Controlling the Arduino via a Web PageChapter 20: Remote Controlling the Arduino via TelegramChapter 21: Keeping Accurate Time with Internet Time ServersChapter 22: Logging Data Wirelessly to Google SheetsChapter 23: Building an ESP32 Web ServerChapter 24: Using the ESP32 Camera BoardEpilogue Appendix: Creating and Installing Arduino LibrariesIndex
£28.49
Pearson Education Limited Concepts of Programming Languages Global Edition
Book SynopsisRobert Sebesta is an Associate Professor Emeritus in the Computer Science Department at the University of Colorado, Colorado Springs. Professor Sebesta received a BS in Applied Mathematics from the University of Colorado in Boulder and MS and PhD degrees in Computer Science from Pennsylvania State University. He has taught computer science for more than 40 years. His professional interests are the design and evaluation of programming languages and Web programming.Table of Contents Preliminaries Evolution of the Major Programming Languages Describing Syntax and Semantics Lexical and Syntax Analysis Names, Bindings, and Scopes Data Types Expressions and Assignment Statements Statement-Level Control Structures Subprograms Implementing Subprograms Abstract Data Types and Encapsulation Constructs Support for Object-Oriented Programming Concurrency Exception Handling and Event Handling Functional Programming Languages Logic Programming Languages
£60.99
The Pragmatic Programmers Agile Web Development with Rails 7
Book SynopsisRails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single-page applications - at a fraction of the complexity. Rails 7 integrates the Hotwire frameworks of Stimulus and Turbo directly as the new defaults, together with that hot newness of import maps. The result is a toolkit so powerful that it allows a single individual to create modern applications upon which they can build a competitive business. The way it used to be. Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly - you concentrate on creating the application, and Rails takes care of the details. Rails 7 brings many improvements, and this edition is updated to cover the new features and changes in best practices. We start with a step-by-step walkthrough of building a real application, and in-depth chapters look at the built-in Rails features. Follow along with an extended tutorial as you write a web-based store application. Eliminate tedious configuration and housekeeping, seamlessly incorporate JavaScript, send and receive emails, manage background jobs with ActiveJob, and build real-time features using WebSockets and ActionCable. Test your applications as you write them using the built-in unit, integration, and system testing frameworks, internationalize your applications, and deploy your applications easily and securely. Rails 1.0 was released in December 2005. This book was there from the start, and didn't just evolve alongside Rails, it evolved with Rails. It has been developed in consultation with the Rails core team. In fact, Rails itself is tested against the code in this book. What You Need: All you need is a Windows, Mac OS X, or Linux machine to do development on. This book will take you through the steps to install Rails and its dependencies. If you aren't familiar with the Ruby programming language, this book contains a chapter that covers the basics necessary to understand the material in the book.
£45.59
O'Reilly Media Efficient Linux at the Command Line
Book SynopsisTake your Linux skills to the next level! Whether you're a system administrator, software developer, site reliability engineer, or enthusiastic hobbyist, this practical, hands-on book will help you work faster, smarter, and more efficiently.
£35.99
No Starch Press,US The Book Of Dash: Build Dashboards with Python
Book SynopsisA swift and practical introduction to building interactive data visualization apps in Python, known as dashboards. You've seen dashboards before; think election result visualizations you can update in real time, or population maps you can filter by demographic. With the Python Dash library you'll create analytic dashboards that present data in effective, usable, elegant ways in just a few lines of code. A swift and practical introduction to building interactive data visualization apps in Python, known as dashboardsTrade Review"The bottom line is that [The Book of Dash] . . . is a convenient quick introduction that paves the way for Python programmers who are faced with the task of realizing a dashboard."—Tam Hanna, Founder of Tamoggemon Software“Very easy to understand . . . You can sense that the authors want to share their knowledge. . . . Overall [The Book of Dash] is an amazing book that data analysts must have when working with Python.”—Tânia Frazão, Python Coder“[The Book of Dash] fills the void of becoming master in Plotly Dash and Dashboards.”—Sanjeev Sharma, Python Coder“With [The Book of Dash], the authors have provided some great examples showing how easy and quickly it is to get a visualization up and running with just a few tools. While the book requires some familiarity with Python, it provides a refresher on basic programming topics in the first couple of chapters, then jumps into the topic at hand with some easy-to-follow examples. I’m looking forward to developing some of my own visual apps with what I’ve learned.”—Scott Chouinard, Senior Gaming Analyst, Service Nova Scotia"The understanding of Dash I gained in this book provided me with a whole new way to analyze and visualize data.”—Jordan Marshal, Python Developer“Just the book I’ve been looking for. This is the perfect next step for any Python student seeking to pivot into the Data Science niche. Easy to follow, and practical examples left me with the confidence to start on my own projects. Highly recommended.”—Peter Rubio, Python Author "My journey with Dash began when I stumbled upon one of Adam's videos by accident. After a lot of trial and error and digging through pages of documentation and blog posts, this is the book I wish I had when I first started. It is thorough and covers quite a number of often challenging topics and techniques with ease."—Brad Bartram, Founder of Darksbian Data ServicesTable of ContentsAcknowledgmentsIntroductionPART I: CRASH COURSESChapter 1: Python RefresherChapter 2: PyCharm TutorialChapter 3: Pandas Crash CoursePART II: BUILDING APPLICATIONSChapter 4: First Dash AppChapter 5: Global Data Analysis: Advanced Layouts and GraphsChapter 6: Investment Portfolio: Building Larger AppsChapter 7: Exploring Machine LearningChapter 8: Tips and TricksAppendix: Python BasicsIndex
£25.49
The Pragmatic Programmers Concurrent Data Processing in Elixir: Fast,
Book SynopsisLearn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or fault-tolerance. Most projects benefit from running background tasks and processing data concurrently, but the world of OTP and various libraries can be challenging. Which Supervisor and what strategy to use? What about GenServer? Maybe you need back-pressure, but is GenStage, Flow, or Broadway a better choice? You will learn everything you need to know to answer these questions, start building highly concurrent applications in no time, and write code that's not only fast, but also resilient to errors and easy to scale. Whether you are building a high-frequency stock trading application or a consumer web app, you need to know how to leverage concurrency to build applications that are fast and efficient. Elixir and the OTP offer a range of powerful tools, and this guide will show you how to choose the best tool for each job, and use it effectively to quickly start building highly concurrent applications. Learn about Tasks, supervision trees, and the different types of Supervisors available to you. Understand why processes and process linking are the building blocks of concurrency in Elixir. Get comfortable with the OTP and use the GenServer behaviour to maintain process state for long-running jobs. Easily scale the number of running processes using the Registry. Handle large volumes of data and traffic spikes with GenStage, using back-pressure to your advantage. Create your first multi-stage data processing pipeline using producer, consumer, and producer-consumer stages. Process large collections with Flow, using MapReduce and more in parallel. Thanks to Broadway, you will see how easy it is to integrate with popular message broker systems, or even existing GenStage producers. Start building the high-performance and fault-tolerant applications Elixir is famous for today. What You Need: You'll need Elixir 1.9+ and Erlang/OTP 22+ installed on a Mac OS X, Linux, or Windows machine.
£30.35
John Wiley & Sons Inc Deep Learning For Dummies
Book SynopsisTake a deep dive into deep learning Deep learning provides the means for discerning patterns in the data that drive online business and social media outlets. Deep Learning for Dummies gives you the information you need to take the mystery out of the topicand all of the underlying technologies associated with it. In no time, you'll make sense of those increasingly confusing algorithms, and find a simple and safe environment to experiment with deep learning. The book develops a sense of precisely what deep learning can do at a high level and then provides examples of the major deep learning application types. Includes sample codeProvides real-world examples within the approachable textOffers hands-on activities to make learning easierShows you how to use Deep Learning more effectively with the right tools This book is perfect for those who want to better understand the basis of the underlying technologies that we use each and every day. Table of ContentsIntroduction 1 Part 1: Discovering Deep Learning 7 Chapter 1: Introducing Deep Learning 9 Chapter 2: Introducing the Machine Learning Principles 25 Chapter 3: Getting and Using Python 45 Chapter 4: Leveraging a Deep Learning Framework 73 Part 2: Considering Deep Learning Basics 91 Chapter 5: Reviewing Matrix Math and Optimization 93 Chapter 6: Laying Linear Regression Foundations 111 Chapter 7: Introducing Neural Networks 131 Chapter 8: Building a Basic Neural Network 149 Chapter 9: Moving to Deep Learning 163 Chapter 10: Explaining Convolutional Neural Networks 179 Chapter 11: Introducing Recurrent Neural Networks 201 Part 3: Interacting with Deep Learning 215 Chapter 12: Performing Image Classification 217 Chapter 13: Learning Advanced CNNs 233 Chapter 14: Working on Language Processing 251 Chapter 15: Generating Music and Visual Art 269 Chapter 16: Building Generative Adversarial Networks 279 Chapter 17: Playing with Deep Reinforcement Learning 293 Part 4: The Part of Tens 307 Chapter 18: Ten Applications that Require Deep Learning 309 Chapter 19: Ten Must-Have Deep Learning Tools 317 Chapter 20: Ten Types of Occupations that Use Deep Learning 327 Index 335
£22.09
No Starch Press,US Cyberjutsu: Cybersecurity for the Modern Ninja
Book SynopsisCyberjutsu brings the tactics, techniques, and procedures ninjas used in feudal Japan into today's cyber security battlefield, creating an essential handbook for cyber defenders. The book uses authentic Japanese scrolls to analyze how real ninjas thought about and practiced information assurance, security, infiltration, and espionage that often required covert, unauthorized access to heavily fortified organizations many of the same concepts cyber security professionals deal with every day.Trade Review"As novel as it is illuminating, as it looks deep into the past. . . . [McCarty] provides a remarkably comprehensive tour of his subject, which is especially impressive for such a concise work that’s well under 300 pages. In it, he covers such as topics as mapping networks and authentication, and provides unconventional tips, as well . . . A thoughtful, original, and thorough guide to cybersecurity." —Kirkus Reviews"Cyberjutsu is an innovative work that is both highly technical and very readable. . . . it’s packed with ideas, tips, and practical techniques for combating cyber threats. As such, the book is likely to prove an invaluable resource for individuals and organizations looking to improve their cybersecurity practices." —Erin Britton, San Francisco Book Review"A very well researched and clearly organized book that uses Japanese history quite cleverly to illustrate modern cybersecurity problems, suggesting ways to counter technological invaders and hackers based on techniques used to defend castles against attacks by clever and resourceful ninja." —Catherine Langrehr, IndieReader, Starred Review"Pairs modern information security methods with ancient Japanese traditions, elevating both subjects in order to elucidate elements of the former. . . . an easy resource whose reference material flows well."—Foreword Reviews "A good quality book."—Antony Cummins, The Historical Ninjutsu Research Team "This helpful manual explores the field of cybersecurity, providing tips, tricks, and proven methods to help companies keep online information out of the hands of hackers. . . . Combining philosophical exercises with more concrete plans of action, McCarty blends new and old, complex and simple, to craft this intricate guide."—BookLife"The exercises are of a kind that would deeply kindle readers’ interest and spur them on to intense problem-solving activity as well as hands-on experimentation in a naturally appealing manner, particularly if you grew up loving adventure/mystery stories involving castles, kings, and queens. . . . [geeks will] find it highly enjoyable and challenging!" —Raju Chacko, Reedsy"May appeal to CEOs in the same way they might turn to Sun Tzu’s The Art of War to level up their plan of attack. The book is also a good overview of cybersecurity for students and anyone considering a career in this expanding field. . . . Cyberjutsu, with its knowledge of the past and its applications for the future, is sure to inspire both cybersecurity insiders and the curious." —Joanna Poncavage, BookTrib"A labor of love . . . There is much value in the descriptions, analogies and schemes as described. The cyber technology presented is correct and complete. I am no expert in Ninja warfare, but the analogies absolutely makes sense." —A Book Junkie Reviews"I had a lot of fun reading this book. It is by far one of the easiest technical books that I have read in a while. I’m not sure whether that was due to the comparisons to Shinobi holding my interest. Or whether it was due to the authors writing style that made it easy to read. Either way I blitzed through this book quickly and have recommended it to a few of my colleagues in the Cybersecurity industry."—HaXeZ, Medium"Don’t let its whimsical title fool you; this book is a practical and prescient compendium of cybersecurity concepts that lends itself to anyone considering a career in this expanding field along with organizational leaders seeking to level up their plan of attack with ninja-fueled tactics, techniques and procedures." —Herald & ReviewTable of ContentsChapter 1: Mapping NetworksChapter 2: Guarding with Special CareChapter 3: Xenophobic SecurityChapter 4: Identification ChallengesChapter 5: Double-Sealed PasswordChapter 6: Hours of InfiltrationChapter 7: Access to TimeChapter 8: ToolsChapter 9: SensorsChapter 10: Bridges and LaddersChapter 11: LocksChapter 12: Moon on the WaterChapter 13: Worm AgentChapter 14: Ghost on the MoonChapter 15: The Art of the FirefliesChapter 16: Live CaptureChapter 17: Fire AttackChapter 18: Covert CommunicationChapter 19: Call SignsChapter 20: Light, Noise, and Litter DisciplineChapter 21: Circumstances of InfiltrationChapter 22: Zero DaysChapter 23: Hiring ShinobiChapter 24: Guardhouse BehaviorChapter 25: Zero Suspicion Threat ManagementChapter 26: Shinobi Tradecraft
£24.64
Elsevier Science Platform Ecosystems
Book SynopsisOffers a roadmap for designing and orchestrating vibrant software platform ecosystems. This book offers actionable tools to develop your own platform strategy, backed by original research, tangible metrics, rich data, and cases. It helps you learn how architectural choices create organically-evolvable, vibrant ecosystems.Trade Review"Platform Ecosystems provides an extremely innovative and insightful approach to decode the value creation of platforms and apps. Amrit Tiwana has written a very provocative guide that will help every executive to reconsider their firms' strategic position and potential to deliver products and services via platforms. A must-read for anyone interested in the next generation business." --Eric van Heck, Professor of Information Management and Markets, Rotterdam School of Management, Erasmus University"In “Platform Ecosystems, Amrit Tiwana delivers a most timely and in-depth perspective of this exciting topic. Ecosystems are at the heart of all modern economic activity and the most powerful known ecosystems have a “platform at their core, driven by a strong player leading their ecosystem, inviting and mutually boosting the value-add by other players. The combinatorial multipliers of successful ecosystem lead to the competition of entire ecosystems. Understanding the key drivers and mechanisms of platform ecosystems is critically important when contemplating competitive strategies." --Clemens Szyperski, MicrosoftTable of ContentsIntroductionPART I: The Rise of Platforms1. The Rise of Platforms2. Core Concepts and Principles3. Why Platform Businesses are Unlike Product or Service Businesses 4. The Value Proposition of PlatformsPART II: Architecture and Governance5. Platform Architecture 6. Platform Governance PART III: Dynamics and Metrics of Ecosystem Evolution7. Metrics of Evolution8. Real Options Thinking 9. Modular OperatorsPART IV: Orchestrating Evolution 10. Evolving a Platform11. Evolving an AppPART V: The Road Ahead 12. Why Every Product is a Platform Waiting to HappenReferencesGlossary
£34.19
Pearson Education (US) Agile Estimating and Planning
Book SynopsisContains techniques for estimating and planning any agile project. This is the practical guide to estimating and planning agile projects. It discusses the philosophy of agile estimating and planning and shows you how to get the job done, with real-world examples and case studies. It supports agile, semiagile, or iterative process.Table of ContentsAbout the Author xvii Foreword by Robert C. Martin xix Foreword by Jim Highsmith xxi Foreword by Gabrielle Benefield xxv Acknowledgments xxvii Introduction xxix Part I: The Problem and the Goal 1 Chapter 1: The Purpose of Planning 3 Why Do It? 5 What Makes a Good Plan? 8 What Makes Planning Agile? 9 Summary 10 Discussion Questions 10 Chapter 2: Why Planning Fails 11 Planning Is by Activity Rather Than Feature 12 Multitasking Causes Further Delays 15 Features Are Not Developed by Priority 17 We Ignore Uncertainty 17 Estimates Become Commitments 18 Summary 18 Discussion Questions 19 Chapter 3: An Agile Approach 21 An Agile Approach to Projects 23 An Agile Approach to Planning 27 Summary 31 Discussion Questions 32 Part II: Estimating Size 33 Chapter 4: Estimating Size with Story Points 35 Story Points Are Relative 36 Velocity 38 Summary 40 Discussion Questions 41 Chapter 5: Estimating in Ideal Days 43 Ideal Time and Software Development 44 Ideal Days as a Measure of Size 46 One Estimate, Not Many 46 Summary 47 Discussion Questions 47 Chapter 6: Techniques for Estimating 49 Estimates Are Shared 51 The Estimation Scale 52 Deriving an Estimate 54 Planning Poker 56 Why Planning Poker Works 59 Summary 60 Discussion Questions 60 Chapter 7: Re-Estimating 61 Introducing the SwimStats Website 61 When Not to Re-Estimate 62 When to Re-Estimate 64 Re-Estimating Partially Completed Stories 66 The Purpose of Re-Estimating 67 Summary 67 Discussion Questions 67 Chapter 8: Choosing between Story Points and Ideal Days 69 Considerations Favoring Story Points 69 Considerations Favoring Ideal Days 72 Recommendation 73 Summary 74 Discussion Questions 75 Part III: Planning for Value 77 Chapter 9: Prioritizing Themes 79 Factors in Prioritization 80 Combining the Four Factors 86 Some Examples 86 Summary 88 Discussion Questions 89 Chapter 10: Financial Prioritization 91 Sources of Return 93 An Example: WebPayroll 96 Financial Measures 102 Comparing Returns 108 Summary 109 Discussion Questions 109 Chapter 11: Prioritizing Desirability 111 Kano Model of Customer Satisfaction 112 Relative Weighting: Another Approach 117 Summary 119 Discussion Questions 120 Chapter 12: Splitting User Stories 121 When to Split a User Story 121 Splitting across Data Boundaries 122 Splitting on Operational Boundaries 124 Removing Cross-Cutting Concerns 125 Don't Meet Performance Constraints 126 Split Stories of Mixed Priority 127 Don't Split a Story into Tasks 127 Avoid the Temptation of Related Changes 128 Combining Stories 128 Summary 129 Discussion Questions 129 Part IV: Scheduling 131 Chapter 13: Release Planning Essentials 133 The Release Plan 134 Updating the Release Plan 138 An Example 139 Summary 142 Discussion Questions 143 Chapter 14: Iteration Planning 145 Tasks Are Not Allocated During Iteration Planning 147 How Iteration and Release Planning Differ 148 Velocity-Driven Iteration Planning 149 Commitment-Driven Iteration Planning 158 My Recommendation 162 Relating Task Estimates to Story Points 163 Summary 165 Discussion Questions 166 Chapter 15: Selecting an Iteration Length 167 Factors in Selecting an Iteration Length 167 Making a Decision 171 Two Case Studies 173 Summary 175 Discussion Questions 176 Chapter 16: Estimating Velocity 177 Use Historical Values 178 Run an Iteration 179 Make a Forecast 181 Which Approach Should I Use? 185 Summary 186 Discussion Questions 186 Chapter 17: Buffering Plans for Uncertainty 187 Feature Buffers 188 Schedule Buffers 189 Combining Buffers 198 A Schedule Buffer Is Not Padding 199 Some Caveats 199 Summary 200 Discussion Questions 201 Chapter 18: Planning the Multiple-Team Project 203 Establishing a Common Basis for Estimates 204 Adding Detail to User Stories Sooner 205 Lookahead Planning 206 Incorporating Feeding Buffers into the Plan 208 But This Is So Much Work 210 Summary 210 Discussion Questions 211 Part V: Tracking and Communicating 213 Chapter 19: Monitoring the Release Plan 215 Tracking the Release 216 Release Burndown Charts 219 A Parking-Lot Chart 224 Summary 225 Discussion Questions 226 Chapter 20: Monitoring the Iteration Plan 227 The Task Board 227 Iteration Burndown Charts 230 Tracking Effort Expended 231 Individual Velocity 232 Summary 232 Discussion Questions 233 Chapter 21: Communicating about Plans 235 Communicating the Plan 237 Communicating Progress 238 An End-of-Iteration Summary 241 Summary 244 Discussion Questions 245 Part VI: Why Agile Planning Works 247 Chapter 22: Why Agile Planning Works 249 Replanning Occurs Frequently 249 Estimates of Size and Duration Are Separated 250 Plans Are Made at Different Levels 251 Plans Are Based on Features, Not Tasks 252 Small Stories Keep Work Flowing 252 Work in Process Is Eliminated Every Iteration 252 Tracking Is at the Team Level 253 Uncertainty Is Acknowledged and Planned For 253 A Dozen Guidelines for Agile Estimating and Planning 254 Summary 256 Discussion Questions 257 Part VII: A Case Study 259 Chapter 23: A Case Study: Bomb Shelter Studios 261 Day 1—Monday Morning 262 Estimating the User Stories 270 Preparing for Product Research 281 Iteration and Release Planning, Round 1 284 Two Weeks Later 302 Planning the Second Iteration 303 Two Weeks Later 305 Revising the Release Plan 305 Presenting the Revised Plan to Phil 308 Eighteen Weeks Later 312 Reference List 313 Index 319
£37.79
MIT Press Essentials of Compilation An Incremental Approach
Book SynopsisA hands-on approach to understanding and building compilers.Compilers are notoriously some of the most difficult programs to teach and understand. Most books about compilers dedicate one chapter to each progressive stage, a structure that hides how language features motivate design choices. By contrast, this innovative textbook provides an incremental approach that allows students to write every single line of code themselves. Essentials of Compilation guides the reader in constructing their own compiler for a small but powerful programming language, adding complex language features as the book progresses. Jeremy Siek explains the essential concepts, algorithms, and data structures that underlie modern compilers and lays the groundwork for future study of advanced topics. Already in wide use by students and professionals alike, this rigorous but accessible book invites readers to learn by doing. Deconstructs the challenge o
£43.20
MIT Press Ltd The City in the City
Book SynopsisAn exploration of the dramatic transformation of London’s financial district after 1945, viewed at four spatial scales: city, street, facade, interior.In The City in the City, Amy Thomas offers the first in-depth architectural and urban history of London’s financial district, the City of London, from the period of rebuilding after World War II to the explosive climax of financial deregulation in the 1980s and its long aftermath. Thomas examines abstract financial ideas, political ideology, and invisible markets as concrete realities; working on four spatial scales—city, street, facade, and interior—the book explores the grand plans, hidden alleys, neo-Georgian elevations, and sweaty dealing floors that have made the financial center work.Moving from politics to sociology, institutions to bodies, development plans to office desks, Thomas unravels the rich entanglements between the structure of the UK’s financial system and the
£26.10
MIT Press Program Proofs
Book SynopsisThis comprehensive and highly readable textbook teaches how to formally reason about computer programs using an incremental approach and the verification-aware programming language Dafny.Program Proofs shows students what it means to write specifications for programs, what it means for programs to satisfy those specifications, and how to write proofs that connect specifications and programs. Writing with clarity and humor, K. Rustan M. Leino first provides an overview of the basic theory behind reasoning about programs. He then gradually builds up to complex concepts and applications, until students are facing real programs using objects, data structures, and non-trivial recursion. To emphasize the practical nature of program proofs, all material and examples use the verification-aware programming language Dafny, but no previous knowledge of Dafny is assumed. Written in a highly readable and student-friendly style Builds up to complex concep
£60.30
Pearson Education (US) BehaviorDriven Development with Cucumber
Book SynopsisRichard Lawrence is co-owner of the consulting firm Agile For All. He trains and coaches people to collaborate more effectively with other people to solve complex, meaningful problems. He draws on a diverse background in software development, engineering, anthropology, and political science. Richard was an early adopter of behavior-driven development and led the development of the first .NET version of Cucumber, Cuke4Nuke. He is a popular speaker at conferences on BDD and Agile software development. Paul Rayner co-founded and co-leads DDD Denver. He regularly speaks at local user groups and at regional and international conferences. If you are looking for an expert hands-on team coach and design mentor in domain-driven design (DDD), BDD with Cucumber, or lean/agile processes, Paul is available for consulting and trainTable of Contents Chapter 1: Focusing on Value When Scrum Isn’t Enough Finding a High-Value Feature to Start With Before You Start with Cucumber Finding the First MMF Slicing an MMF into User Stories Summary Reference Chapter 2: Exploring with Examples BDD Is a Cooperative Game BDD Is a Whole Team Thing Allow Time and Space to Learn Flesh Out the Happy Path First Use Real Examples Example Mapping Gives the Discussion Structure Optimizing for Discovery Addressing Some Concerns Treat Resistance as a Resource Playing the BDD Game Opening Exploring Closing Summary References Chapter 3: Formalizing Examples into Scenarios Moving from Examples to Scenarios Feature Files as Collaboration Points BDD Is Iterative, Not Linear Finding the Meaningful Variations Gherkin: A Language for Expressive Scenarios Summary Resources Chapter 4: Automating Examples The Test Automation Stack Adjusting to Working Test-First Annotating Element Names in Mockups How Does User Experience Design Fit In to This? Did They Really Just Hard Code Those Results? Anatomy of a Step Definition Simple Cucumber Expressions Regular Expressions Anchors Wildcards and Quantifiers Capturing and Not Capturing Just Enough Custom Cucumber Expressions Parameter Types Beyond Ruby Slow Is Normal (at First) Choose Cucumber Based on Audience, Not Scope Summary Chapter 5: Frequent Delivery and Visibility How BDD Changes the Tester’s Role Exploratory Testing BDD and Automated Builds Faster Stakeholder Feedback How Getting to Done More Often Changes All Sorts of Things Frequent Visibility and Legacy Systems Documentation: Integrated and Living Avoiding Mini-Waterfalls and Making the Change Stick Summary References Chapter 6: Making Scenarios More Expressive Feedback About Scenarios How to Make Your Scenarios More Expressive Finding the Right Level of Abstraction Including the Appropriate Details Expressive Language in the Steps Refactoring Scenarios Good Scenario Titles Summary References Chapter 7: Growing Living Documentation What Is Living Documentation and Why Is It Better? Cucumber Features and Other Documentation Avoid Gherkin in User Story Descriptions The Unexpected Relationship Between Cucumber Features and User Stories Stable Scenarios Growing and Splitting Features Split When Backgrounds Diverge Split When a New Domain Concept Emerges Secondary Organization Using Tags Structure Is Emergent Summary Chapter 8: Succeeding with Scenario Data Characteristics of Good Scenarios Independent Repeatable Researchable Realistic Robust Maintainable Fast Sharing Data When to Share Data Raising the Level of Abstraction with Data Personas Data Cleanup Summary Reference Chapter 9: Conclusion 9780321772633 TOC 4/22/2019
£24.69
Pearson Education (US) More Agile Testing
Book SynopsisJanet Gregory is an agile testing coach and process consultant with DragonFire Inc. She is coauthor with Lisa Crispin of Agile Testing: A Practical Guide for Testers and Agile Teams (Addison-Wesley, 2009) and More Agile Testing: Learning Journeys for the Whole Team (Addison-Wesley, 2015). She is also a contributor to 97 Things Every Programmer Should Know . Janet specializes in showing agile teams how testers can add value in areas beyond critiquing the product, for example, guiding development with business-facing tests. Janet works with teams to transition to agile development and teaches agile testing courses and tutorials worldwide. She contributes articles to publications such as Better Software, Software Test & Performance Magazine, and Agile Journal and enjoys sharing her experiences at conferences and user group meetings around the world. For more about Janet's work and her blog, visit Trade ReviewPraise for More Agile Testing “I love this book. It will help to create really great testers. That’s a good thing, since anyone who reads this will want to have one on their team.” –Liz Keogh, agile coach, Lunivore Limited “This book will change your thinking and move your focus from tests to testing. Yes, it is not about the result, but about the activity!” –Kenji Hiranabe, cofounder of Astah and CEO, Change Vision, Inc. “To my mind, agile development is about learning–that one word captures the true spirit of what agile is all about. When I had the chance to read through their new book, I could only say, ‘Wow! Janet and Lisa have done themselves proud.’ This is not a book about testing; this is a book about learning. Their clear explanations are accompanied by great true stories and an impressive list of books, articles, and other resources. Those of us who like learning, who love to dig for more information, can rejoice! I know you’re always looking for something interesting and useful; I can guarantee that you will find it here!” –Linda Rising, coauthor of Fearless Change: Patterns for Introducing New Ideas “Janet and Lisa’s first book, Agile Testing, drew some general principles that are still important today but left me wondering, ‘how?’ In this second book, they adapt those principles to today’s development landscape–with mobile, DevOps, and cloud-based applications delivered in increasingly compressed release cycles. Readers get specific testing tools for the mind along with new practices and commentary to accelerate learning. Read it today.” –Matt Heusser, Managing Principal, Excelon Development “An excellent guide for your team’s agile journey, full of resources to help you with every kind of testing challenge you might meet along the way. Janet and Lisa share a wealth of experience with personal stories about how they helped agile teams figure out how to get value from testing. I really like how the book is filled with techniques explained by leading industry practitioners who’ve pioneered them in their own organizations.” –Rachel Davies, agile coach, unruly and coauthor of Agile Coaching “Let me net this out for you: agile quality and testing is hard to get right. It’s nuanced, context-based, and not for the faint of heart. In order to effectively balance it, you need hard-earned, pragmatic, real-world advice. This book has it–not only from Janet and Lisa, but also from forty additional expert agile practitioners. Get it and learn how to effectively drive quality into your agile products and across your entire organization.” –Bob Galen, Principal Consultant, R Galen Consulting Group, and Author of Agile Reflections and Scrum Product Ownership “Janet and Lisa have done it again. They’ve combined pragmatic life experience with ample storytelling to help people take their agile testing to the next level.” –Jonathan Rasmusson, author of Agile Samurai: How Masters Deliver Great Software “In this sequel to their excellent first book, Janet and Lisa have embraced the maturity of agile adoption and the variety of domains in which agile approaches are now being applied. In More Agile Testing they have distilled the experiences of experts working in different agile organizations and combined them with their own insights into a set of invaluable lessons for agile practitioners. Structured around a range of essential areas for software professionals to consider, the book examines what we have learned about applying agile, as its popularity has grown, and about software testing in the process. There is something for everyone here, not only software testers, but individuals in any business role or domain with an interest in delivering quality in an agile context.” –Adam Knight, Director of QA, RainStor “This book has it all: practical advice and stories from the trenches. Whether you’ve never heard of agile or you think you’re an expert, there is something here that will help you out. Jump around in the book and try a few things; I promise you will be a better tester and developer for it.” –Samantha Laing, agile coach and trainer, Growing Agile “More Agile Testing is a great collection of stories and ideas that can help you improve not just how you test, but the products you build and the way you work. What I love most about the book is how easy many of the ideas are to try. If one message is clear, it is that regardless of your context and challenges, there are things you can try to improve. Get started today with something small, and nothing will be impossible.” –Karen Greaves, agile coach and trainer, Growing Agile “More Agile Testing is an extensive compilation of experiences, stories, and examples from practitioners who work with testing in agile environments around the world. It covers a broad spectrum, from organizational and hiring challenges, test techniques and practices, to automation guidance. The diversity of the content makes it a great cookbook for anyone in software development who is passionate about improving their work and wants to produce quality software.” –Sigurdur Birgisson, quality assistance engineer, Atlassian Table of ContentsForeword by Elisabeth Hendrickson xvii Foreword by Johanna Rothman xix Preface xxi Acknowledgments xxix About the Authors xxxiii About the Contributors xxxv Part I: Introduction 1 Chapter 1: How Agile Testing Has Evolved 3 Summary 6 Chapter 2: The Importance of Organizational Culture 7 Investing Time 8 The Importance of a Learning Culture 12 Fostering a Learning Culture 13 Transparency and Feedback Loops 15 Educating the Organization 17 Managing Testers 19 Summary 20 Part II: Learning for Better Testing 21 Chapter 3: Roles and Competencies 23 Competencies versus Roles 24 T-Shaped Skill Set 28 Generalizing Specialists 33 Hiring the Right People 36 Onboarding Testers 37 Summary 39 Chapter 4: Thinking Skills for Testing 41 Facilitating 42 Solving Problems 43 Giving and Receiving Feedback 45 Learning the Business Domain 46 Coaching and Listening Skills 48 Thinking Differently 49 Organizing 51 Collaborating 52 Summary 53 Chapter 5: Technical Awareness 55 Guiding Development with Examples 55 Automation and Coding Skills 56 General Technical Skills 59 Development Environments 59 Test Environments 60 Continuous Integration and Source Code Control Systems 62 Testing Quality Attributes 65 Test Design Techniques 67 Summary 67 Chapter 6: How to Learn 69 Learning Styles 69 Learning Resources 72 Time for Learning 77 Helping Others Learn 79 Summary 83 Part III: Planning–So You Don’t Forget the Big Picture 85 Chapter 7: Levels of Precision for Planning 87 Different Points of View 87 Planning for Regression Testing 97 Visualize What You Are Testing 98 Summary 100 Chapter 8: Using Models to Help Plan 101 Agile Testing Quadrants 101 Challenging the Quadrants 108 Using Other Influences for Planning 113 Planning for Test Automation 115 Summary 116 Part IV: Testing Business Value 119 Chapter 9: Are We Building the Right Thing? 121 Start with “Why” 121 Tools for Customer Engagement 123 More Tools or Techniques for Exploring Early 134 Invest to Build the Right Thing 134 Summary 135 Chapter 10: The Expanding Tester’s Mindset: Is This My Job? 137 Whose Job Is This Anyway? 137 Take the Initiative 142 Summary 144 Chapter 11: Getting Examples 145 The Power of Using Examples 145 Guiding Development with Examples 148 Where to Get Examples 155 Benefits of Using Examples 157 Potential Pitfalls of Using Examples 159 The Mechanics of Using Examples to Guide Coding 162 Summary 162 Part V: Investigative Testing 163 Chapter 12: Exploratory Testing 165 Creating Test Charters 168 Generating Test Charter Ideas 171 Managing Test Charters 176 Exploring in Groups 183 Recording Results for Exploratory Test Sessions 185 Where Exploratory Testing Fits into Agile Testing 188 Summary 190 Chapter 13: Other Types of Testing 191 So Many Testing Needs 192 Concurrency Testing 194 Internationalization and Localization 195 Regression Testing Challenges 200 User Acceptance Testing 201 A/B Testing 203 User Experience Testing 205 Summary 207 Part VI: Test Automation 209 Chapter 14: Technical Debt in Testing 211 Make It Visible 212 Work on the Biggest Problem–and Get the Whole Team Involved 217 Summary 220 Chapter 15: Pyramids of Automation 223 The Original Pyramid 223 Alternate Forms of the Pyramid 224 The Dangers of Putting Off Test Automation 227 Using the Pyramid to Show Different Dimensions 231 Summary 235 Chapter 16: Test Automation Design Patterns and Approaches 237 Involve the Whole Team 238 Starting Off Right 239 Design Principles and Patterns 240 Test Maintenance 248 Summary 251 Chapter 17: Selecting Test Automation Solutions 253 Solutions for Teams in Transition 253 Meeting New Automation Challenges with the Whole Team 258 Achieving Team Consensus for Automation Solutions 260 How Much Automation Is Enough? 262 Collaborative Solutions for Choosing Tools 264 Scaling Automation to Large Organizations 264 Other Automation Considerations 268 Summary 269 Part VII: What Is Your Context? 271 Chapter 18: Agile Testing in the Enterprise 275 What Do We Mean by “Enterprise”? 275 “Scaling” Agile Testing 276 Coordinating Multiple Teams 283 Consistent Tooling 289 Managing Dependencies 292 Advantages of Reaching Out beyond the Delivery Team 296 Summary 297 Chapter 19: Agile Testing on Distributed Teams 299 Why Not Colocate? 301 Common Challenges 302 Strategies for Coping 308 Offshore Testing 312 Tool Ideas for Distributed Teams 319 Summary 322 Chapter 20: Agile Testing for Mobile and Embedded Systems 325 Similar, Yet Different 326 Testing Is Critical 328 Agile Approaches 329 Summary 337 Chapter 21: Agile Testing in Regulated Environments 339 The “Lack of Documentation” Myth 339 Agile and Compliance 340 Summary 346 Chapter 22: Agile Testing for Data Warehouses and Business Intelligence Systems 347 What Is Unique about Testing BI/DW? 348 Using Agile Principles 351 Data–the Critical Asset 352 Big Data 357 Summary 360 Chapter 23: Testing and DevOps 361 A Short Introduction to DevOps 361 DevOps and Quality 363 How Testers Add DevOps Value 371 Summary 376 Part VIII: Agile Testing in Practice 379 Chapter 24: Visualize Your Testing 381 Communicating the Importance of Testing 381 Visualize for Continuous Improvement 386 Visibility into Tests and Test Results 390 Summary 392 Chapter 25: Putting It All Together 393 Confidence-Building Practices 394 Create a Shared Vision 402 Summary 405 Appendix A: Page Objects in Practice: Examples 407 An Example with Selenium 2–WebDriver 407 Using the PageFactory Class 410 Appendix B: Provocation Starters 413 Glossary 415 References 423 Bibliography 435 Index 459
£37.52
John Wiley & Sons Inc Requirements Engineering A Good Practice Guide
Book Synopsis"A marvellous book. a unique focus on what practising engineers need to do. " Watts Humphrey, Software Engineering Institute, USA Requirements Engineering A good practice guide Find more RE resources at this web support site http://www. comp. lancs. ac. uk/computing/resources/re--gpg/ Visit our Web page! http://www. wiley.Table of ContentsPreface vii 1 Introduction 1 2 Practical Process Improvement 15 3 The Requirements Document 37 4 Requirements Elicitation 63 5 Requirements Analysis and Negotiation 111 6 Describing Requirements 141 7 System Modelling 161 8 Requirements Validation 189 9 Requirements Management 215 10 Requirements Engineering for Critical Systems 255 11 System Modelling with Structured Methods 299 12 Formal Specification 331 13 Viewpoints 359 Index 389
£55.76
John Wiley & Sons Inc UML 2 for Dummies
Book SynopsisUML 2 For Dummies covers UML 2. 0, the latest version of UML, expected out in March 2003. This book shows how to use UML to model systems. It provides practical advice and examples that enable readers to understand and demystify the standard UML models and extract key information from them.Table of ContentsIntroduction 1 Part I: UML and System Development 7 Chapter 1: What’s UML About, Alfie? 9 Chapter 2: Following Best Practices 19 Part II: The Basics of Object Modeling 37 Chapter 3: Objects and Classes 39 Chapter 4: Relating Objects That Work Together 61 Chapter 5: Including the Parts with the Whole 83 Chapter 6: Reusing Superclasses: Generalization and Inheritance 93 Chapter 7: Organizing UML Class Diagrams and Packages 111 Part III: The Basics of Use-Case Modeling 129 Chapter 8: Introducing Use-Case Diagrams 131 Chapter 9: Defining the Inside of a Use Case 147 Chapter 10: Relating Use Cases to Each Other 161 Part IV: The Basics of Functional Modeling 175 Chapter 11: Introducing Functional Modeling 177 Chapter 12: Capturing Scenarios with Sequence Diagrams 189 Chapter 13: Specifying Workflows with Activity Diagrams 213 Chapter 14: Capturing How Objects Collaborate 227 Chapter 15: Capturing the Patterns of Behavior 247 Part V: Dynamic Modeling 259 Chapter 16: Defining the Object’s Lives with States 261 Chapter 17: Interrupting the States by Hosting Events 277 Chapter 18: Avoiding States of Confusion 293 Part VI: Modeling the System’s Architecture 313 Chapter 19: Deploying the System’s Components 315 Chapter 20: Breaking the System into Packages/Subsystems 339 Part VII: The Part of Tens 359 Chapter 21: Ten Common Modeling Mistakes 361 Chapter 22: Ten Useful UML Web Sites 371 Chapter 23: Ten Useful UML Modeling Tools 377 Chapter 24: Ten Diagrams for Quick Development 383 Index 393
£19.54
Cambridge University Press A First Guide to Computational Modelling in
Book SynopsisThis hands-on text demystifies numerical modelling for early-stage physics and engineering students, with each chapter focusing on an intriguing physics problem. Developed over many years of teaching a computational modelling course, this stand-alone book gives students an essential numerical modelling toolkit for today's data-driven landscape.Table of ContentsPreface; How to use this book; First steps; 1. Rectangular finite quantum well – Stationary Schrödinger Equation in 1D; 2. Diffraction of light on a slit; 3. Pendulum as a standard unit of time; 4. Planetary system; 5. Gravitation inside a star; 6. Normal modes in a cylindrical waveguide; 7. Thermal insulation properties of a wall; 8. Cylindrical capacitor; 9. Coupled harmonic oscillators; 10. The Fermi-Pasta-Ulam problem; 11. Cold hydrogen star; 12. Rectangular quantum well filled with electrons – The idea of self-consistent calculations; 13. Time dependent Schrödinger Equation Dawid Dworzański; 14. Poisson equation in 2D; Appendices; Further Reading; Index.
£22.99
CRC Press Mastering Python for Web
Book SynopsisPython for WebPython definitely tops the charts when it comes to ease of use and beginner-friendly learning curve in the world of programming languages. At the same time, Python is essential when it comes to writing system scripts, processing big data, performing mathematical computations, creating web applications, and rapid prototyping. With this Mastering edition, we have focused especially on the usage of Python for Web. This book explores Python programming fundamentals with interactive projects and introduces core coding concepts and the basics of Python-based web development. The reader should be ready to dive deep into the world of Python for web development in no time. Since Python positions itself in web development as a back-end language, it is usually mixed with another front-end language to build a whole website. At the same time, reasons for using Python in web development are many: it is a flexible, versatile, and highly efficient
£50.99
O'Reilly Media Learning Functional Programming
Book SynopsisLearn how to think and write code like a functional programmer. With this practical guide, software developers familiar with object-oriented programming will dive into the core concepts of functional programming and learn how to use both functional and OOP features together on large or complex software projects.
£39.74
O'Reilly Media Data Visualization with Python and JavaScript 2e
Book SynopsisIn this practical book, author Kyran Dale shows data scientists and analysts--as well as Python and JavaScript developers--how to create the ideal toolchain for the job. By providing engaging examples and stressing hard-earned best practices, this guide teaches you how to leverage the power of best-of-breed Python and JavaScript libraries.
£39.74
O'Reilly Media Operating Continuously
Book SynopsisContinuous delivery doesn't stop with deployment. Modern software teams rely on an emerging set of best practices post-deployment to continuously improve their software. With this practical guide, CTOs, software architects, and senior engineering leaders will learn what these practices are and how to apply them to their existing operations.
£27.74
John Wiley & Sons Inc DevOps For Dummies
Book SynopsisTable of ContentsForeword xvii Introduction 1 Part 1: Demystifying DevOps 5 Chapter 1: Introducing DevOps 7 Chapter 2: Designing Your Organization 15 Chapter 3: Identifying Waste 31 Chapter 4: Persuading Colleagues to Try DevOps 43 Chapter 5: Measuring Your Organization 59 Part 2: Establishing a Pipeline 69 Chapter 6: Embracing the New Development Life Cycle 71 Chapter 7: Planning Ahead 79 Chapter 8: Designing Features from a DevOps Perspective 95 Chapter 9: Developing Code 111 Chapter 10: Automating Tests Prior to Release 129 Chapter 11: Deploying a Product 139 Part 3: Connecting the Circuit 159 Chapter 12: Implementing Rapid Iteration 161 Chapter 13: Creating Feedback Loops around the Customer 175 Chapter 14: DevOps Isn’t a Team (Except When It Is) 189 Chapter 15: Empowering Engineers 205 Part 4: Practicing Kaizen, the Art of Continuous Improvement 217 Chapter 16: Embracing Failure Successfully 219 Chapter 17: Preparing for Incidents 229 Chapter 18: Conducting Post-Incident Reviews 251 Part 5: Tooling Your DevOps Practice 261 Chapter 19: Adopting New Tools 263 Chapter 20: Managing Distributed Systems 275 Chapter 21: Migrating to the Cloud 295 Part 6: The Part of Tens 307 Chapter 22: Top Ten (Plus) Reasons That DevOps Matters 309 Chapter 23: Top Ten DevOps Pitfalls 315 Index 323
£19.54
John Wiley & Sons Inc Beginning Programming with Java For Dummies
Book SynopsisTable of ContentsIntroduction 1 Part 1: Getting Started with Java Programming 5 Chapter 1: The Big Picture 7 Chapter 2: Setting Up Your Computer 21 Chapter 3: Running Programs 47 Part 2: Writing Your Own Java Programs 71 Chapter 4: Exploring the Parts of a Program 73 Chapter 5: Composing a Program 95 Chapter 6: Using the Building Blocks: Variables, Values, and Types 127 Chapter 7: Numbers and Types 149 Chapter 8: Numbers? Who Needs Numbers? 173 Part 3: Controlling the Flow 197 Chapter 9: Forks in the Road 199 Chapter 10: Which Way Did He Go? 219 Chapter 11: Around and Around It Goes 251 Chapter 12: Circling Back to Java Loops 275 Part 4: The Inside ScOOP 293 Chapter 13: Programming with Objects and Classes 295 Chapter 14: Using Methods and Fields from a Java Class 315 Chapter 15: Creating New Java Methods 347 Part 5: Smart Java Techniques 375 Chapter 16: Piles of Files: Dealing with Information Overload 377 Chapter 17: How to Flick a Virtual Switch 401 Chapter 18: Creating Loops within Loops 423 Chapter 19: Out of Many, One 443 Chapter 20: Oooey-GUI Was a Worm 477 Part 6: The Part of Tens 503 Chapter 21: Ten Useful Classes in the Java API 505 Chapter 22: Ten Bits of Advice for New Software Developers 511 Index 517
£18.69
John Wiley and Sons Ltd Python Programming for Linguistics and Digital
Book SynopsisTable of ContentsList of Figures xi About the Companion Website xii 1 Introduction 1 1.1 Why Program? Why Python? 1 1.2 Course Overview and Aims 4 1.3 A Brief Note on the Exercises 5 1.4 Conventions Used in this Book 6 1.5 Installing Python 6 1.5.1 Installing on Windows 6 1.5.2 Installing on the Mac 7 1.5.3 Installing on Linux 8 1.6 Introduction to the Command Line/Console/Terminal 8 1.6.1 Activating the Command Line on Windows 9 1.6.2 Activating the Command Line on the Mac or Linux 9 1.7 Editors and IDEs 10 1.8 Installing and Setting Up WingIDE Personal 10 1.9 Discussions 11 2 Programming Basics I 15 2.1 Statements, Functions, and Variables 15 2.2 Data Types – Overview 17 2.3 Simple Data Types 18 2.3.1 Strings 18 2.3.2 Numbers 20 2.3.3 Binary Switches/Values 21 2.4 Operators – Overview 21 2.4.1 String Operators 21 2.4.2 Mathematical Operators 22 2.4.3 Logical Operators 24 2.5 Creating Scripts/Programs 25 2.6 Commenting Your Code 26 2.7 Discussions 28 3 Programming Basics II 33 3.1 Compound Data Types 33 3.2 Lists 35 3.3 Simple Interaction with Programs and Users 37 3.4 Problem Solving and Damage Control 38 3.4.1 Getting Help from Your IDE 38 3.4.2 Using the Debugger 39 3.5 Control Structures 40 3.5.1 Conditional Statements 41 3.5.2 Loops 42 3.5.3 while Loops 43 3.5.4 for Loops 44 3.5.5 Discussions 45 4 Intermediate String Processing 53 4.1 Understanding Strings 53 4.2 Cleaning Up Strings 54 4.3 Working with Sequences 55 4.3.1 Overview 55 4.3.2 Slice Syntax 56 4.4 More on Tuples 57 4.5 ‘Concatenating’ Strings More Efficiently 59 4.6 Formatting Output 60 4.6.1 Using the % Operator 60 4.6.2 The format Method 61 4.6.3 f- Strings 61 4.6.4 Formatting Options 62 4.7 Handling Case 62 4.8 Discussions 63 5 Working with Stored Data 71 5.1 Understanding and Navigating File Systems 71 5.1.1 Showing Folder Contents 72 5.1.2 Navigating and Creating Folders 74 5.1.3 Relative Paths 75 5.2 Stored Data 76 5.3 Opening and Closing Files 76 5.3.1 File Opening Modes 77 5.3.2 File Access Options 77 5.4 Reading File Contents 78 5.5 Error Handling 79 5.6 Writing to Files 82 5.7 Working with Folders and Paths 83 5.7.1 The os Module 83 5.7.2 The Path Object of the libpath Module 84 5.8 Discussions 86 6 Recognising and Working with Language Patterns 93 6.1 The re Module 93 6.2 General Syntax 94 6.3 Understanding and Working with the Match Object 94 6.4 Character Classes 96 6.5 Quantification 97 6.6 Masking and Using Special Characters 98 6.7 Regex Error Handling 98 6.8 Anchors, Groups and Alternation 99 6.9 Constraining Results Further 101 6.10 Compilation Flags 101 6.11 Discussions 102 7 Developing Modular Programs 109 7.1 Modularity 109 7.2 Dictionaries 109 7.3 User- defined Functions 111 7.4 Understanding Modules 112 7.5 Documenting Your Module 115 7.6 Installing External Modules 116 7.7 Classes and Objects 117 7.7.1 Methods 118 7.7.2 Class Schema 118 7.8 Testing Modules 119 7.9 Discussions 120 8 Word Lists, Frequencies and Ordering 129 8.1 Introduction to Word and Frequency Lists 129 8.2 Generating Word Lists 129 8.3 Sorting Basics 130 8.4 Generating Basic Word Frequency Lists 131 8.5 Lambda Functions 132 8.6 Discussions 134 9 Interacting with Data and Users Through GUIs 143 9.1 Graphical User Interfaces 143 9.2 PyQt Basics 144 9.2.1 The General Approach to Designing GUI- based Programs 144 9.2.2 Useful PyQt Widgets 145 9.2.3 A Minimal PyQt Program 146 9.2.4 Deriving from a Main Window 148 9.2.5 Working with Layouts 148 9.2.6 Defining Widgets and Assigning Layouts 150 9.2.7 Widget Properties, Methods and Signals 150 9.2.8 Adding Interactive Functionality 152 9.3 Designing More Advanced GUIs 153 9.3.1 Actions 153 9.3.2 Creating Menus, Tool and Status Bars 153 9.3.3 Working with Files and Folder in PyQt 155 9.4 Discussions 159 10 Web Data and Annotations 171 10.1 Markup Languages 171 10.2 Brief Intro to HTML 172 10.3 Using the urllib.request Module 174 10.4 Extracting Text from Web Pages 177 10.5 List and Dictionary Comprehension 178 10.6 Brief Intro to XML 179 10.7 Complex Regex Replacements Using Functions 182 10.8 Brief Intro to the TEI Scheme 182 10.8.1 The Header 183 10.8.2 The Text Body 184 10.9 Discussions 188 11 Basic Visualisation 201 11.1 Using Matplotlib for Basic Visualisation 201 11.2 Creating Word Clouds 207 11.3 Filtering Frequency Data Through Stop- Words 208 11.4 Working with Relative Frequencies 210 11.5 Comparing Frequency Data Visually 212 11.6 Discussions 216 12 Conclusion 227 Appendix – Program Code 231 Index 273
£30.35
McGraw-Hill Education LabVIEW Graphical Programming Fifth Edition
Book SynopsisPublisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product.LabVIEW programming techniques, tips, and practicesLearn to build effective LabVIEW programs using the detailed information contained in this thoroughly revised resource. This edition updates all content to align with the latest version and adds new chapters that clearly explain object-oriented programming methods, and programming in teams using the cloud. LabVIEW Graphical Programming, Fifth Edition begins with basics for beginners and quickly progresses to intermediate and advanced programming techniques. Written by a pair of LabVIEW experts, this hands-on guide shows how to work with data types, start building your own applications, handle I/O, and use the DAQmix library. You will also find out how to build applications that commTable of ContentsPrefaceAbbreviationsChapter 1. RootsChapter 2. LabVIEW FundamentalsChapter 3. Data AcquisitionChapter 4. LabVIEW Object Oriented ProgrammingChapter 5. LabVIEW FrameworksChapter 6. Unit TestingChapter 7. Developing in LabVIEW for TeamsChapter 8. Enterprise and IoT MessagingIindex
£71.09
McGraw-Hill Education IT Auditing Using Controls to Protect Information
Book Synopsis Secure Your Systems Using the Latest IT Auditing TechniquesFully updated to cover leading-edge tools and technologies, IT Auditing: Using Controls to Protect Information Assets, Third Edition, explains, step by step, how to implement a successful, enterprise-wide IT audit program. New chapters on auditing cybersecurity programs, big data and data repositories, and new technologies are included. This comprehensive guide describes how to assemble an effective IT audit team and maximize the value of the IT audit function. In-depth details on performing specific audits are accompanied by real-world examples, ready-to-use checklists, and valuable templates. Standards, frameworks, regulations, and risk management techniques are also covered in this definitive resource.â Build and maintain an internal IT audit function with maximum effectiveness and valueâ Audit entity-level controls and cybersecurity programsâ&nTable of ContentsPART 1: Audit OverviewChapter 1: Building an Effective Internal IT Audit FunctionChapter 2: The Audit ProcessPART 2: Auditing TechniquesChapter 3: Auditing Entity-Level ControlsChapter 4: Auditing Cybersecurity ProgramsChapter 5: Auditing Data Centers and Disaster RecoveryChapter 6: Auditing Networking DevicesChapter 7: Auditing Windows Operating SystemsChapter 8: Auditing Unix and Linux Operating SystemsChapter 9: Auditing Web Servers and Web ApplicationsChapter 10: Auditing DatabasesChapter 11: Auditing Big Data and Data RepositoriesChapter 12: Auditing StorageChapter 13: Auditing Virtualized EnvironmentsChapter 14: Auditing End User Computing DevicesChapter 15: Auditing ApplicationsChapter 16: Auditing Cloud Computing and Outsourced OperationsChapter 17: Auditing Company ProjectsChapter 18: Auditing New/Other TechnologiesPART 3: Frameworks, Standards, and RegulationsChapter 19: Standards and FrameworksChapter 20: RegulationsChapter 21: Risk Management
£47.19
Pearson Education Starting Out with Python Global Edition
£61.74
Hodder Education ComputeIT Students Book 1 Computing for KS3
Book SynopsisCompute-IT will help you deliver innovative lessons for the new Key Stage 3 Computing curriculum with confidence, using resources and meaningful assessment produced by expert educators. With Compute-IT you will be able to assess and record students'' attainment and monitor progression all the way through to Key Stage 4. Developed by members of Computing at School, the national subject association for Computer Science, and a team of Master Teachers who deliver CPD through the Network of Excellence project funded by the Department for Education, Compute-IT provides a cohesive and supportive learning package structured around the key strands of Computing. Creative and flexible in its approach, Compute-IT makes Computing for Key Stage 3 easy to teach, and fun and meaningful to learn, so you can:Follow well-structured and finely paced lessons along a variety of suggested routes through Key Stage 3Deliver engaging and interesting less
£26.97
APress MicroPython for the Internet of Things A
Book SynopsisTagline: Breaking the C-like language barrier to make device programming easy and fastTable of Contents1. What Is the Internet of Things?2. Introducing MicroPython3. MicroPython Hardware4. How to Program in MicroPython5. MicroPython Libraries6. Low-Level Hardware Support7. Electronics for Beginners8. Project 1: Hello, World! MicroPython Style9. Project 2: Stoplight Simulator10. Project 3: Plant Monitoring11. Project 4: Using Weather Sensors12. Where to Go from Here13. Appendix
£52.24
APress Reusable Firmware Development
Book SynopsisGain the knowledge and skills necessary to improve your embedded software and benefit from author Jacob Beningo''s more than 15 years developing reusable and portable software for resource-constrained microcontroller-based systems. You will explore APIs, HALs, and driver development among other topics to acquire a solid foundation for improving your own software. Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers not only explains critical concepts, but also provides a plethora of examples, exercises, and case studies on how to use and implement the concepts.What You''ll Learn Develop portable firmware using the C programming language Discover APIs and HALs, explore their differences, and see why they are important to developers of resource-constrained software Master microcontroller driver development concepts, strategies, and examples Write drivers that aTable of ContentsChapter 1 Concepts for Developing Portable Firmware .............3Why Code Reuse Matters.................................................................................3Portable Firmware ............................................................................................5Modularity ......................................................................................................... 11Module Coupling and Cohesion.................................................................. 12Following A Standard .................................................................................... 14Portability Issues in C – Data Types ......................................................... 15Portability Issues in C – Structures and Unions................................... 17Portability Issues in C – Bit Fields............................................................. 18Portability Issues in C – Preprocessor Directives ............................... 19Hardware Abstraction Layers (HAL) ....................................................... 21Application Programming Interfaces (APIs) ........................................ 28Project Organization...................................................................................... 28Getting Started Writing Portable Firmware ......................................... 29Going Further ................................................................................................... 32Chapter 2 API and HAL Fundamentals.............................................37The Wonderful World of HALs ................................................................... 37APIs versus HALs............................................................................................. 38The API and HAL Landscape ....................................................................... 40The Good, Bad and Ugly................................................................................ 42Potential Issues and the Boogeyman....................................................... 42Characteristics Every HAL should Exhibit ............................................. 46To Build or Not to Build................................................................................ 56A First Look at a HAL...................................................................................... 58The API Scope ................................................................................................... 59API Characteristics to look for ................................................................... 60Designing your own APIs ............................................................................. 65A First Look at an API .................................................................................... 65Going Further ................................................................................................... 67Confidential – ©2016 Jacob Beningo, All Rights Reserved, DRAFT A08Chapter 3 Device Driver Fundamentals in C..................................73Understanding the Memory Map...............................................................73Identifying Driver Interfaces.......................................................................77Design by Contract..........................................................................................80Assertion Fundamentals...............................................................................83Device Driver Models .....................................................................................85Polled versus Interrupt Driven Drivers ..................................................87Deciphering the volatile, const and static keywords .........................93Driver Module Definition..............................................................................93Naming Convention Recommendations..................................................95Object Oriented Programming in C...........................................................96Encapsulation and Data Hiding ...............................................................105Abstract Data Types.....................................................................................105Callback Functions .......................................................................................105Error Handling...............................................................................................110Expected Results and Recommendations............................................113Leverage Design Patterns..........................................................................114Going Further .................................................................................................114Chapter 4 Writing Reusable Drivers .............................................119It’s All about the Interface.........................................................................119How much Abstraction is too much? .....................................................120Wrapping the Interface ..............................................................................120Memory Mapping Methodologies ...........................................................128Mapping Memory Directly.........................................................................129Mapping Memory with Pointers..............................................................130Mapping Memory with Structures..........................................................133Using Pointer Arrays in Driver Design .................................................136Creating a Timer Driver Overview.........................................................138Step #1 – Define the Timers Configuration Table ............................138Step #2 – Define the Timers Peripheral Channels............................140Step #3 – Populate the Timers Configuration Table........................141Step #4 – Create the Timer Pointer Arrays .........................................143Step #5 – Create the Initialization Function .......................................145Step #6 – Fill in the Timer Driver Interface ........................................150Step #7 – Maintain and Port the Design Pattern...............................150Selecting the Right Driver Implementation........................................151Going Further .................................................................................................152Chapter 5 Documenting Firmware with Doxygen...................157The Importance of Good Documentation ............................................157Easing the Documentation Load .............................................................159An Introduction to Doxygen .....................................................................162Confidential – ©2016 Jacob Beningo, All Rights Reserved, DRAFT A08Installing Doxygen........................................................................................164Documentation Project Setup ..................................................................166Doxygen Comment Fundamentals..........................................................173Documenting enum and struct.................................................................174Documenting Functions..............................................................................175Documenting Modules ................................................................................181Creating a Reusable Template .................................................................183Generating a Main Page ..............................................................................18410 Tips for Commenting C Code...............................................................187Tip #1- Explain the Why not the How .........................................................188Tip #2 – Comment Before Coding..................................................................189Tip #3 – Use Doxygen Tags...............................................................................189Tip #4 – Adopt a Code Style Guide ................................................................190Tip #5 – Use a File Header ................................................................................190Tip #6 – Create a Commenting Template...................................................191Tip #7 – Consistent Comment Location......................................................191Tip #8 – Don’t Comment Every Line ............................................................192Tip #9 – Start Mathematical type Identifiers with the Type..............193Tip #10 – Update Comments with Code Updates ...................................193A Few Final Thoughts on Documentation............................................194Going Further .................................................................................................194Chapter 6 The Hardware Abstraction Layer Design Process197Why use a HAL?..............................................................................................197Characteristics of a Good HAL ..................................................................199The HAL Design Process .............................................................................200Step #1 – Review the Microcontroller Peripheral Datasheet.......202Step #2 – Identify Peripheral Features .................................................203Step #3 – Design and Create the Interface ...........................................204Step #4 – Create Stubs and Documentation Templates ..................206Step #5 – Implement for Target Processor(s) ....................................208Step #6 – Test, Test, Test ............................................................................210Step #7 – Repeat for the Next Peripheral .............................................21210 Tips for Designing a HAL ......................................................................214Tip #1- Identify Core Features ........................................................................214Tip #2 – Avoid an All Encompassing HAL ..................................................215Tip #3 – Add Register Access Hooks ............................................................216Tip #4 – Use Doxygen to Outline the HAL ..................................................217Tip #5 – Get a Second set of Eyes ...................................................................218Tip #6 – Create a Commenting Template ...................................................219Tip #7 – Keep the View at 30,000 Feet........................................................220Tip #8 – Use Appropriate Naming Conventions......................................221Tip #9 – Include a Parameter for Initialization .......................................222Confidential – ©2016 Jacob Beningo, All Rights Reserved, DRAFT A08Tip #10 – Deploy on Multiple Development Kits ................................... 223Going Further ................................................................................................. 224Chapter 7 HAL Design for GPIO .......................................................227An Overview of GPIO Peripherals ...........................................................227Step #1 – Review the GPIO Peripheral Datasheet.............................228Step #2 – GPIO Peripheral Features ......................................................230Step #3 – Design and Create the GPIO HAL Interface ......................232Step #4 – Create GPIO Stubs and Documentation Templates ......235Step #5 – Implement GPIO HAL for Target Processor .....................237Step #6 – Test, Test, Test ............................................................................239Step #7 – Repeat for the Next Peripheral ............................................241Going Further ................................................................................................. 242Chapter 8 HAL Design for SPI ...........................................................245An Overview of SPI Peripherals ..............................................................245Step #1 – Review the SPI Peripheral Datasheet ................................246Step #2 – SPI Peripheral Features ..........................................................249Step #3 – Design and Create the SPI HAL Interface ..........................251Step #4 – Create SPI Stubs and Documentation Templates ..........254Step #5 – Implement SPI HAL for Target Processor ........................256Step #6 – Test, Test, Test ............................................................................257Step #7 – Repeat for the Next Peripheral ............................................258Going Further ................................................................................................. 260Chapter 9 HAL Design for EEPROM and Memory Devices .....263An Overview of Memory Devices ............................................................263Step #1 – Review the EEPROM Peripheral Datasheet .....................266Step #2 – EEPROM Peripheral Features ...............................................269Step #3 – Design and Create the EEPROM HAL Interface ...............272Step #4 – Create EEPROM Stubs and Documentation Templates 275Step #5 – Implement EEPROM HAL for Target Processor .............277Step #6 – Test, Test, Test ............................................................................278Step #7 – Repeat for the Next Peripheral ............................................279Going Further ................................................................................................. 280Chapter 10 API Design for Embedded Applications ...............283Applications Made Easier ..........................................................................283Software Components .................................................................................285Application Frameworks ...........................................................................289Libraries ...........................................................................................................293The Real-time Operating System (RTOS).............................................296Open Source Software .................................................................................298Integration Nightmares ..............................................................................300Confidential – ©2016 Jacob Beningo, All Rights Reserved, DRAFT A08Common Software Frameworks – System Configuration ..............303Common Software Frameworks – Console Applications................306Common Software Frameworks – Bootloaders ................................. 309Common Software Frameworks – Thread Tracing...........................312Common Software Frameworks – FAT File System ..........................315Going Further ................................................................................................. 320Chapter 11 Testing Portable Embedded Software ..................323Cross Your Fingers and Pray .....................................................................323Standard Interface …. Standard Tests ...................................................326Test Driven Development ..........................................................................328Taking Advantage of Cyclomatic Complexity for Testing ..............334Automating Tests ..........................................................................................338Python for Testing ........................................................................................342Developing GPIO Test Cases ......................................................................348Developing SPI Test Cases .........................................................................356Test Cases for EEPROM ...............................................................................360Using Trace to Verify Application Software ........................................364Going Further ................................................................................................. 366Chapter 12 A Practical Approach to Code Reuse ......................369Being Practical in an Unpractical Environment ................................369Phases and Baby Steps ................................................................................372Getting the Most from Metrics ..................................................................374Metrics Worth Tracking .............................................................................376Recognizing Design Patterns ....................................................................378Creating Templates and Checklists ........................................................380Version Control is your Best Friend .......................................................383Results – Decreasing Time-to-Market ...................................................385Results – Decreasing Development Costs ............................................387Results –Increased Quality ........................................................................389What is the Cost to do Nothing? ...............................................................391Going Further ................................................................................................. 394Appendix A ...............................................................................................398Appendix B ...............................................................................................415Appendix C ...............................................................................................430References ...............................................................................................445Glossary ....................................................................................................450
£58.49
APress Practical NATS
Book SynopsisLearn to use NATS and messaging as a solution for communication between services. The NATS project has been around since 2010, but it has become more popular in recent years due to how well it fits into the paradigm of cloud native applications and microservices architectures. It''s fast becoming a very attractive option thanks to its great performance characteristics--a single server can push millions of messages per second--and overall simple design. First you will learn the fundamentals of NATS, such as its design, protocol and the styles of communications it enables, internals of the NATS clients, and how to use the basic API provided by all the official clients. You will also understand how to setup and configure NATS servers using the configuration file. Next you''ll work with real-world projects and see how to develop a production-ready cloud native application using NATS as the control plane over which clients communicate. Finally you''ll learn Table of Contents1. Introduction to NATS2. The NATS Protocol3. The NATS Clients4. Setting up NATS5. High Availability with NATS Clustering6. Developing a Cloud Native NATS Application7. Monitoring NATS8. Securing NATS9. Troubleshooting NATS10. Advanced NATS Techniques
£41.24
APress Java EE 8 Recipes
Book SynopsisQuickly find solutions to dozens of common programming problems with the Java Enterprise Edition Platform for small business web applications, enterprise database applications, and microservices solutions. Content is presented in the popular problem-solution format. Look up the programming problem that you want to solve. Read the solution. Apply the solution directly in your own code. Problem solved!Java EE 8 Recipes provides you with effective and proven solutions that can be used to accomplish just about any task that you may encounter. You can feel confident using the reliable solutions that are demonstrated in this book in your personal or corporate environment.Java is a mature programming language that has been refined over the years into a productive and lucrative language for those with the skills to wield it. One result of this years-long refining process is that that the language carries forward many older feature sets that no longer
£58.49
APress Essential Angular for ASP.NET Core MVC 3
Book SynopsisCombine the strengths of Angular, the leading framework for developing complex client-side applications, and ASP.NET Core MVC 3, the latest evolution of Microsoft''s framework for server-side applications. This new edition offers updated Angular, ASP.NET Core 3, Entity Framework Core 3 examples, an all-new chapter on interoperability with Blazor, and more!Best-selling author Adam Freeman brings together these two key technologies and explains how to use ASP.NET Core MVC 3 to provide back-end services for Angular applications. This fast-paced and practical guide starts from the nuts and bolts and gives you the knowledge you need to combine Angular and ASP.NET Core MVC 3 in your projects.Each topic is covered clearly and concisely and is packed with the essential details you need to learn to be truly effective.What You Will Learn Gain a solid understanding of how ASP.NET Core MVC 3 and Angular can work together Utilize botTable of Contents1: Understanding Angular and ASP.NET Core MVC 2: Getting Ready 3: Creating the Combined Project 4: Creating the Data Model 5: Creating the RESTful Web Service 6: Completing the RESTful Web Service 7: Structuring the Angular Application 8: Creating the Angular Store 9: Completing the Angular Store 10: Using Angular with Blazor 11: Administering the Application 12: Securing the Application 13: Preparing for Deployment
£29.99
APress Learn Rails 6
Book SynopsisEffectively learn and apply software development and engineering techniques to web application development using Rails 6 with this accelerated tutorial. This book teaches modern engineering practices including git flow, containerization, debugging, testing, and deployment. Along the way, you''ll see how to build a social network application and then deploy it on a cloud provider such as Amazon Web Services. After reading and using this book, you''ll be able to effectively build and deploy your Rails application to the cloud. You''ll also have used the Ruby on Rails framework to carry out the rapid development of an idea into a product without sacrificing quality. What You Will Learn Use the Ruby on Rails 6 web development framework Integrate Docker with your Ruby on Rails code Apply software engineering techniques to learning the Rails framework Design, build, and deplTable of Contents Part 1: Introduction to Ruby and Rails Chapter 1: Hello, Rails · The world before the Rails · Favorite things I gained from Rails · Increased Signal-to-Noise ratio · Testability since Day 1 · Programmer happiness · Installing Docker on Windows · Installing Docker on Ubuntu Linux · Installing Docker on MacOS · Creating simple containerized Rails app · MVC architecture · Deploying to Heroku · Git workflow Chapter 2: Ruby Quick Crash Course · What kind of a language is Ruby? · Interactive console · Number · String · Making a Class · Public functions · Private and protected membership · Instance variables · Constants · Building on a Module · Everything is an Object · Date · Array · Hash · Symbol (after having experience building Hash with Symbol vs String) · Instantiating other objects · Make your own Block (simple way to introduce yield & block, and learn build simple DSL) · Thread · Meta-programming Part 2: Building a Social Network · What are we building? · Use case diagram · Entity diagram Chapter 3: Building the Models · User model · Inserting data · Updating data · Seeking data · Destroying data · Unit-test the model with RSpec · Complex Query · Status model and Has One-to-One relationship · Friendship model and Many-to-Many relationship · Testing up the relationships · Adding validations · Updating table schema Chapter 4: Login Capabilities · Installing Devise · Routing · Layout · Building Sign in and Sign up form · Wiring up the Sign out · Testing up the request Chapter 5: Building Post and Timeline · Building the Timeline · Introduction to Helper · Post a Status! · Integration testing with Capybara · Debugging with Pry Chapter 6: Add as Friend · AJAX request · Sending friendship request · Confirming friendship request · Sending email · Background processing Chapter 7: Deploying to AWS · Making an Amazon account · Making an ElasticBeanstalk instance · Setting up deploy script · Seeing it online · How to associate it with a domain name? Chapter 8: What next? · Mobile App? · API controllers · Staging environment
£48.74
O'Reilly Media Arduino Cookbook
Book SynopsisThis cookbook is perfect for anyone who wants to experiment with the popular Arduino microcontroller and programming environment. Updated for Arduino 1.8, the third edition includes more than 200 tips and techniques for building a variety of objects and prototypes
£35.99
O'Reilly Media Learning Serverless
Book SynopsisWhether your company is considering serverless computing or has already made the decision to adopt this model, this practical book is for you. Author Jason Katzer shows early- and mid-career developers what's required to build and ship maintainable and scalable services using this model.
£39.74
O'Reilly Media High Performance MySQL
Book SynopsisHow can you realize MySQL's full power? With High Performance MySQL, you'll learn advanced techniques for everything from setting service-level objectives to designing schemas, indexes, and queries to tuning your server, operating system, and hardware to achieve your platform's full potential.
£39.74