Computer programming / software engineering Books

2176 products


  • How To Hack Like A Ghost: Breaching the Cloud

    No Starch Press,US How To Hack Like A Ghost: Breaching the Cloud

    2 in stock

    Book SynopsisHow to Hack Like a Ghost takes readers deep inside the mind of a hacker as they carry out a fictionalised attack against a tech company, teaching cutting-edge hacking techniques along the way. Readers shadow a hacker as they describe, with detailed code, how they might hack a tech company and escape detection. While the account is fictional, the tech company's vulnerabilities are drawn from real-life weaknesses common in today's corporate, cloud-based systems. By following along and studying the code, the reader learns practical, cutting-edge hacking techniques.Trade Review"Spark Flow uses a realistic scenario to aid the reader in understanding how to hack modern cloud infrastructures. From reconnaissance to post-exploitation, the author guides the reader through the process of hacking a fictional enterprise's cloud environment, utilising some of the latest tooling employed in the industry today. This unique approach makes for an engaging read. I would recommend this book to anyone looking to sharpen their hacking skills against modern cloud solutions.”—Ed, EdOverflowTable of ContentsIntroductionPart 1 1. Becoming Anonymous2. Return of Command and Control3. Let There Be InfrastructurePart 2 4. Healthy Stalking5. Vulnerability Seeking6. FracturePart 37. Behind the Curtain8. Shawshank Redemption: Breaking Out9. Sticky ShellPart 410. The Enemy Inside11. Nevertheless, We Persisted12. Apotheosis13. Final Cut

    2 in stock

    £25.49

  • How Cybersecurity Really Works: A Hands-On Guide

    No Starch Press,US How Cybersecurity Really Works: A Hands-On Guide

    3 in stock

    Book SynopsisCybersecurity for Beginners is an engaging, informal introduction to the field of cybersecurity. Readers learn how attackers operate, as well as how to defend individuals and organisations against online attacks. An accessible introduction to the field of cybersecurity, requiring no prior technical knowledge. Readers learn how 'black hat' (criminal) hackers select targets, trick victims into divulging private information, deploy malware, steal passwords, steal data, pirate WiFi, and escape detection. Readers also learn strategies for defending against online attacks.Trade Review"An excellent resource . . . The chapters scaffold in a beautiful fashion leaving the reader with a concrete foundation of cyber knowledge. Sam’s ability to explain abstract or complex concepts in a simplistic, digestible, and visual way is a major strength of this book. Novices or anyone interested in learning about cybersecurity, this is the book for you!" —Dr. Pauline Mosley, Pace University, Professor of Information Technology "This book is an excellent and practical introduction to cybersecurity for a beginner. . . . Sam’s examples are clear, and will be relevant to those looking for their first job in cybersecurity, pivoting to security from another field, or who just want to improve the security of their home network. . . . I enjoyed reading it." —Jamie Winterton, Director, Strategy at Global Security Initiative at Arizona State University“Our absolute favorite cybersecurity book . . . if you’re a total beginner looking to learn the ins and outs of cybersecurity, you’ve found your book right here.”—Geena SQL, RealToughCandy.com“An excellent book for beginners because it takes the mystery out of doing cybersecurity right.”—Giovanni Hale, Goodreads Reviewer“Easy to read . . . Useful for undergraduate CyberSec courses.”—Dr. Larry Leibrock, Professor at Idaho State UniversityTable of ContentsChapter 1: An Introduction to CybersecurityChapter 2: Attack Targets on the InternetChapter 3: Phishing TacticsChapter 4: Malware InfectionsChapter 5: Password Thefts and Other Account Access TricksChapter 6: Network TappingChapter 7: Attacks in the CloudChapter 8: Wireless Network PiratingChapter 9: Encryption CrackingChapter 10: How to Defeat Black Hats

    3 in stock

    £22.79

  • The Art Of Mac Malware: The Guide to Analyzing

    No Starch Press,US The Art Of Mac Malware: The Guide to Analyzing

    2 in stock

    Book SynopsisWritten by leading macOS threat analyst Patrick Wardle, The Art of Mac Malware Analysis covers the knowledge and hands-on skills required to analyze Mac malware. Using real-world examples and references to original research, Part 1 surveys the malware's various infection methods, persistence mechanisms, and capabilities. In Part 2, you'll learn about the static and dynamic analysis tools and techniques needed to examine malware you may find in the wild. Finally, you'll put these lessons into practice by walking through a comprehensive analysis of a complex Mac malware specimen (Part 3).Trade Review"[The Art of Mac Malware] serves as a valuable resource for anyone looking to level up their skills to stay on top of the latest macOS threats. Patrick's approachable, educating writing style and extensive knowledge in this field made him the ideal author to write this book."—Maria Markstedter, @Fox0x01, Forbes Person Of The Year In Cybersecurity"Mac doesn’t face the same level of malware threat that Windows users experience. However, it is possible to create malware for macOS and the excellent book, The Art of Mac Malware, goes into a lot of detail."—Security Boulevard"Awesome job keeping readers hooked."—Tony Lambert, @ForensicITGuy"An awesome researcher writing for my favorite publisher . . . If you’re interested in Mac malware, I highly recommend!"—Francisco Donoso, @Francisckrs

    2 in stock

    £35.99

  • Practical Linux Forensics: A Guide for Digital

    No Starch Press,US Practical Linux Forensics: A Guide for Digital

    3 in stock

    Book SynopsisPractical Linux Forensics dives into the technical details of analyzing postmortem forensic images of Linux systems which have been misused, abused, or the target of malicious attacks. It helps forensic investigators locate and analyze digital evidence found on Linux desktops, servers, and IoT devices. You'll learn how to identify digital artifacts which may be of interest to an investigation, draw logical conclusions, reconstruct past activity from incidents, how Linux works from a digital forensics and investigation perspective, and how to interpret evidence from Linux environments.Trade Review“Practical Linux Forensics is an excellent resource suitable for those new to Linux, as well as for experienced users. Whether you are an investigator, administrator, developer, or curious student, you will gain imperative knowledge that can easily be applied to your own field and endeavors.”—Techtyte, Cybersecurity Researcher and Advanced Reviewer"Thorough . . . Even if this is your first foray into computer forensics, there is a lot to be gained from Nikkel’s book."—Lee Teschler, Microcontroller Tips"A comprehensive and informative guide . . . The author provides a wealth of information and practical tips that can be used in real-world scenarios, making it a valuable resource for both professionals and students. It is a must-read for anyone looking to gain a deeper understanding of forensic analysis on Linux systems."—The Security Noob"After Practical Forensic Imaging, Bruce Nikkel has produced another fantastic learning resource and reference in Practical Linux Forensics. Made both for professionals more familiar with Windows or macOS forensics as well as adept Linux users looking to learn forensics, it does not need to be read linearly. Each chapter provides focused knowledge on different aspects of Linux systems in a distribution-agnostic manner. Definitely grab a copy to demystify this area of computer forensics."—Daniyal S., Advanced Reviewer"Bruce Nikkel shares some [insight on] really uncommon and least understood areas of the Linux network stack, which will be very valuable for practitioners . . . [Practical Linux Forensics] touches on areas ignored by other resources on the subject."—Arvind, Advanced ReviewerTable of ContentsIntroductionChapter 1: Digital Forensics OverviewChapter 2: Linux OverviewChapter 3: Extracting Evidence from Storage Devices and FilesystemsChapter 4: Directory Layout and Forensic Analysis of Linux FilesChapter 5: Investigating Evidence from Linux LogsChapter 6: Reconstructing System Boot and InitializationChapter 7: Examination of Installed Software PackagesChapter 8: Identifying Network Configuration ArtifactsChapter 9: Forensic Analysis of Time and LocationChapter 10: Reconstructing User Desktops and Login ActivityChapter 11: Forensic Traces of Attached Peripheral DevicesAfterwordAppendix A: File and Directory List for Digital Investigators

    3 in stock

    £42.74

  • Graph Algorithms the Fun Way

    Penguin Random House Group Graph Algorithms the Fun Way

    3 in stock

    Book Synopsis

    3 in stock

    £38.99

  • You Are Not Expected to Understand This

    Princeton University Press You Are Not Expected to Understand This

    7 in stock

    Book SynopsisTrade Review"A Choice Outstanding Academic Title of the Year""[An] intriguingly human collection of articles . . . [from] contributors, including programmers, technologists, historians, journalists and academics."---Andrew Robinson, Nature"A wonderful book. . . . The writing is clear, and you don’t need to know anything about computers to understand pretty much every line of this book. A must-read!"---Jonathan Shock, Mathemafrica"A highly relevant collection of short essays. . . . [You Are Not Expected to Understand This] is intended to develop readers' appreciation for the critical role of software in their lives." * Choice *

    7 in stock

    £15.29

  • Modeling and Animation Using Blender

    APress Modeling and Animation Using Blender

    1 in stock

    Book SynopsisDiscover the 3D-modeling and animation power ofBlender 3D. This book starts with a brief introduction to Blender 3D including installation and the user interface. The following two chapters then introduce you to the upgraded tools in Blender 2.80 for 3D modeling, texturing, shading, and animation. The last chapter discusses the Blender game engine and all its core features. Along the way you'll see why Blender 3D has proved its competency in UV unwrapping, texturing, raster graphic editing, rigging, sculpting, animating, motion graphics, and video editing through the years. Modeling and Animation Using Blendergives a thorough tour of Blender Eevee, covering its new features and how to make best use of them. After reading this book you will have the confidence to choose Blender for your next project. What You Will LearnMaster the features of Blender EeveeWork with modeling, animation, and much more using theupdated softwareUnderstand important concepts such as physics and particlesWTable of ContentsChapter 1: The Tour! Chapter 2: Blending with Blender: Getting Started Chapter 3: Blending with Blender: Modeling Workspace Chapter 4: Blending with Blender: Shading Workspace Chapter 5: Let’s Animate Chapter 6: The Future of Game Engine

    1 in stock

    £44.99

  • Python Programming: An Introduction to Computer

    Franklin, Beedle & Associates Inc Python Programming: An Introduction to Computer

    2 in stock

    Book SynopsisThis book is designed to be used as a primary textbook in a college-level first course in computing. It takes a fairly traditional approach, emphasizing problem solving, design, and programming as the core skills of computer science. However, these ideas are illustrated using a non-traditional language, namely Python. This textbook was written with a single overarching goal: to introduce fundamental computer science concepts as simply as possible without being simplistic. Using Python is central to this goal. Traditional systems languages such as C , Ada, and Java evolved to solve problems in large-scale programming, where the primary emphasis is on structure and discipline. They were not designed to make writing small- or medium-scale programs easy. The recent rise in popularity of scripting (sometimes called “agile”) languages, such as Python, suggests an alternative approach. Python is very flexible and makes experimentation easy. Solutions to simple problems are simply and elegantly expressed. Python provides a great laboratory for the neophyte programmer. Python has a number of features that make it a near-perfect choice as a first programming language. The basic structures are simple, clean, and well designed, which allows students to focus on the primary skills of algorithmic thinking and program design without getting bogged down in arcane language details. Concepts learned in Python carry over directly to subsequent study of systems languages such as C and Java. But Python is not a “toy language.” It is a real-world production language that is freely available for virtually every programming platform and comes standard with its own easy-to-use integrated programming environment. The best part is that Python makes learning to program fun again.New to the Third EditionThe third edition continues the tradition of updating the text to reflect new technologies while maintaining a time-tested approach to teaching introductory computer science. An important change to this edition is the removal of most uses of eval and the addition of a discussion of its dangers. In our increasingly connected world, it’s never too early to begin considering computer security issues. Several new graphics examples, developed throughout chapters 4–12, have been added to introduce new features of the graphics library that support animations, including simple video game development. This brings the text up to date with the types of final projects that are often assigned in modern introductory classes. Smaller changes have been made throughout the text, including: Material on file dialogs has been added in Chapter 5. Chapter 6 has been expanded and reorganized to emphasize value-returning functions. Coverage has been streamlined and simplified to use IDLE (the standard “comes-with-Python” development environment) consistently. This makes the text more suitable for self-study as well as for use as a classroom textbook. Technology references have been updated. To further accommodate self-studiers, end-of-chapter solutions for this third edition will be freely available online. Classroom instructors wishing to use alternative exercises can request those from the publisher. Self-studiers and instructors alike will be able to visit this website to download the solutions.

    2 in stock

    £41.61

  • Android Programming Pushing the Limits

    John Wiley & Sons Inc Android Programming Pushing the Limits

    Book SynopsisUnleash the power of the Android OS and build the kinds of brilliant, innovative apps users love to use If you already know your way around the Android OS and can build a simple Android app in under an hour, this book is for you.Table of ContentsIntroduction 1 Part I Building a Better Foundation 7 Chapter 1 Fine-Tuning Your Development Environment 9 Chapter 2 Efficient Java Code for Android 33 Part II Getting the Most Out of Components 55 Chapter 3 Components, Manifests, and Resources 57 Chapter 4 Android User Experience and Interface Design 77 Chapter 5 Android User Interface Operations 93 Chapter 6 Services and Background Tasks 111 Chapter 7 Android IPC 131 Chapter 8 Mastering BroadcastReceivers and Configuration Changes 151 Chapter 9 Data Storage and Serialization Techniques 165 Chapter 10 Writing Automated Tests 191 Part III Pushing the Limits 205 Chapter 11 Advanced Audio, Video, and Camera Applications 207 Chapter 12 Secure Android Applications 231 Chapter 13 Maps, Location, and Activity APIs 249 Chapter 14 Native Code and JNI 267 Chapter 15 The Hidden Android APIs 287 Chapter 16 Hacking the Android Platform 299 Chapter 17 Networking, Web Service, and Remote APIs 319 Chapter 18 Communicating with Remote Devices 349 Chapter 19 Google Play Services 369 Chapter 20 Distributing Applications on Google Play Store 389 Index 403

    £23.99

  • John Wiley & Sons Inc Arduino For Dummies

    Out of stock

    Book SynopsisTable of Contents Foreword xiii Introduction 1 Part 1: Getting to Know Arduino 5 Chapter 1: Discovering Arduino 7 Chapter 2: Finding Your Board and Your Way Around It 17 Chapter 3: Blinking an LED 37 Part 2: Getting Physical with Arduino 55 Chapter 4: Tools of the Trade 57 Chapter 5: A Primer on Electricity and Circuitry 69 Chapter 6: Basic Sketches: Inputs, Outputs, and Communication 85 Chapter 7: More Basic Sketches: Motion and Sound 119 Part 3: Building on the Basics 159 Chapter 8: Learning by Example 161 Chapter 9: Soldering On 177 Chapter 10: Getting Clever with Code 205 Chapter 11: Common Sense with Common Sensors 237 Chapter 12: Becoming a Specialist with Shields and Libraries 285 Part 4: Sussing Out Software 303 Chapter 13: Getting to Know Processing 305 Chapter 14: Processing the Physical World 323 Part 5: The Part of Tens 357 Chapter 15: Ten Places to Learn More about Arduino 359 Chapter 16: Ten Great Shops to Know 363 Index 367

    Out of stock

    £999.99

  • Professional Mobile Application Development

    John Wiley & Sons Inc Professional Mobile Application Development

    Book SynopsisCreate applications for all major smartphone platforms Creating applications for the myriad versions and varieties of mobile phone platforms on the market can be daunting to even the most seasoned developer.Table of ContentsIntroduction xxiii Chapter 1: Preliminary Considerations 1 Why You Might Be Here 2 Competition 2 Quality vs. Time to Market 2 Legacy System Integration 2 Mobile Web vs. Mobile App 3 Cost of Development 3 Hardware 3 Software 4 Licenses and Developer Accounts 5 Documentation and APIs 5 The Bottom Line 6 Importance of Mobile Strategies in the Business World 6 Why is Mobile Development Difficult? 6 Mobile Development Today 8 Mobile Myths 8 Third-Party Frameworks 9 Appcelerator Titanium Mobile Framework 9 Nitobi PhoneGap 10 MonoDroid and MonoTouch 10 Summary 10 Chapter 2: Diving into Mobile: App or Website? 11 Mobile Web Presence 12 Mobile Content 13 Mobile Browsers 14 Mobile Applications 17 You’re a Mobile App If . . . 17 When to Create an App 18 Benefits of a Mobile App 22 Marketing 24 Quick Response Codes 25 The Advertising You Get from the App Market 26 Third-Party Markets 32 Your App as a Mobile Web App 33 Summary 36 Chapter 3: Creating Consumable Web Services for Mobile Devices 37 What is a Web Service? 37 Examples of Web Services 38 Advantages of Web Services 39 Web Services Languages (Formats) 40 eXtensible Markup Language (XML) 40 JavaScript Object Notation (JSON) 42 Transferring Nontextual Data 42 Creating an Example Web Service 42 Using the Microsoft Stack 43 Using the Linux Apache MySQL PHP (LAMP) Stack 77 Debugging Web Services 83 Tools 83 Advanced Web Service Techniques 85 Summary 86 Chapter 4: Mobile User Interface Design 89 Effective Use of Screen Real Estate 90 Embrace Minimalism 90 Use a Visual Hierarchy 90 Stay Focused 90 Understanding Mobile Application Users 91 Proximity 91 Closure 91 Continuity 92 Figure and Ground 92 Similarity 92 The Social Aspect of Mobile 92 Usability 93 Accessibility 94 Understanding Mobile Information Design 96 Information Display 96 Design Patterns 96 Content Structure and Usage 107 Understanding Mobile Platforms 109 Android 110 iOS 110 BlackBerry OS 111 Windows Phone 7 112 Mobile Web Browsers 112 Using the Tools of Mobile Interface Design 113 User Acceptance Testing 113 Information Design Tools 114 Summary 115 Chapter 5: Mobile Websites 117 Choosing a Mobile Web Option 118 Why Do People Use Your Website on Mobile Devices? 118 What Can Your Current Website Accommodate? 118 How Much Do You Want to Provide for Mobile Users? 119 Adaptive Mobile Websites 120 Get Your Queries in Place 121 Add Mobile Styles 125 Dedicated Mobile Websites 140 Mobile Web Apps with HTML5 143 What Exactly is HTML5? 143 And What Exactly is a Mobile Web App? 144 How Do You Use HTML5 in a Mobile Web App? 144 Make Your Mobile Web App Even More Native 148 Summary 150 Chapter 6: Getting Started with Android 151 Why Target Android? 152 Who Supports Android? 152 Android as Competition to Itself 152 Multiple Markets and Market Locks 152 Getting the Tools You Need 153 Downloading and Installing JDK 153 Downloading and Installing Eclipse 153 Downloading and Installing the Android SDK 154 Downloading and Configuring the Eclipse ADT Plug-in 155 Installing Additional SDK Components 157 Development 158 Connecting to the Google Play 172 Getting an Android Developer Account 172 Signing Your Application 172 Android Development Practices 172 Android Fundamentals 172 Fragments as UI Elements 173 Ask for Permission 173 Mind the Back Stack 174 Building the Derby App in Android 174 Common Interactions 174 Offline Storage 176 Web Service 177 GPS 180 Accelerometer 181 Summary 182 Chapter 7: Getting Started with iOS 183 The iPhone Craze 183 Apple in Its Beauty 184 Apple Devices 185 Getting the Tools You Need 187 Hardware 187 xCode and the iOS SDK 191 The iOS Human Interface Guideline 193 iOS Project 193 Anatomy of an iOS App 194 Getting to Know the xCode IDE 195 Debugging iOS Apps 199 The iOS Simulator 199 Debugging Code 200 Instruments 204 Objective-C Basics 204 Classes 205 Control Structures 206 Try Catch 207 Hello World App 208 Creating the Project 208 Creating the User Interface 211 Building the Derby App in iOS 214 User Interface 215 Team Roster 217 Details 219 Leagues and Team Names 220 Other Useful iOS Things 223 Offline Storage 223 GPS 224 Summary 227 Chapter 8: Getting Started with Windows Phone 7 229 New Kid on the Block 229 Metro 230 Application Bar 230 Tiles 232 Tombstoning 233 Getting the Tools You Need 234 Hardware 234 Visual Studio and Windows Phone SDK 234 Windows Phone 7 Project 236 Silverlight vs. Windows Phone 7 236 Anatomy of a Windows Phone 7 App 237 The Windows Phone 7 Emulator 238 Building the Derby App in Windows Phone 7 239 Creating the Project 239 User Interface 240 Derby Names 241 Leagues 243 Distribution 244 Other Useful Windows Phone Things 245 Offline Storage 245 Notifications 247 GPS 249 Accelerometer 250 Web Services 252 Summary 252 Chapter 9: Getting Started with BlackBerry 253 The BlackBerry Craze 254 BlackBerry Devices 254 BlackBerry Playbook 259 Getting the Tools You Need 259 BlackBerry Developer Program 259 Code Signing Keys 260 BlackBerry Java Development Environment 260 Implementing the Derby App with BlackBerry for Java 265 BlackBerry Eclipse Specifics 269 BlackBerry Development with WebWorks 270 Other Useful BlackBerry Things 276 Offline Storage 277 Location Services 278 BlackBerry Distribution 280 Summary 280 Chapter 10: Getting Started with Appcelerator Titanium 283 Why Use Titanium? 284 Who is Using Titanium? 284 NBC 285 GetGlue 286 Getting the Tools You Need 287 Installing Titanium Studio 287 Downloading the Kitchen Sink 290 Development 291 Connecting Titanium to the Markets 294 Versioning Your App 296 Building the Derby App in Titanium 297 Common UI Patterns 297 Offline Storage 301 Web Service 302 GPS 305 Accelerometer 306 Summary 308 Chapter 11: Getting Started with PhoneGap 309 History of PhoneGap 309 Why Use PhoneGap? 310 Who is Using PhoneGap? 310 METAR Reader 310 Logitech Squeezebox Controller 311 Wikipedia 311 Differences between PhoneGap and HTML5 311 Getting the Tools You Need 312 Installing PhoneGap for iOS 312 Installing PhoneGap for Android 314 Installing PhoneGap for Windows Phone 7 317 PhoneGap Tools and IDE 319 PhoneGap Project 323 Anatomy of a PhoneGap Application 323 Creating User Interfaces 324 Debugging 324 Useful JavaScript Libraries 325 Building the Derby App in PhoneGap 330 Other Useful Phone Gap Things 335 Pickers 336 Offline Storage 337 GPS 339 Accelerometer 340 Connecting PhoneGap to the Markets 341 Summary 341 Chapter 12: Getting Started with MonoTouch and Mono for Android 343 The Mono Framework 343 MonoTouch 344 Mono for Android 345 Assemblies 346 Why MonoTouch/Mono for Android? 347 Downsides 347 Xamarin Mobile 348 Getting the Tools You Need 350 Mono Framework 350 MonoTouch 351 Mono for Android 352 Getting to Know MonoDevelop 353 Debugging 354 MonoTouch Specifics 355 Mono for Android Specifics 356 Mono Projects 357 Anatomy of a MonoTouch App 358 Anatomy of a Mono for Android App 361 Building the Derby App with Mono 362 MonoTouch 362 Mono for Android 368 Other Useful MonoTouch/Mono Features 374 Local Storage 374 GPS 375 Summary 377 Index 379

    £27.99

  • Kubernetes in Action

    Manning Publications Kubernetes in Action

    Book SynopsisDescription With Kubernetes, users don't have to worry about which specific machine in their data center their application is running on. Each layer in their application is decoupled from other layers so they can scale, update, and maintain them independently. Kubernetes in Action teaches developers how to use Kubernetes to deploy self-healing scalable distributed applications. By the end, readers will be able to build and deploy applications in a proper way to take full advantage of the Kubernetes platform. Key features • Easy to follow guide • Hands-on examples • Clearly-written Audience The book is for both application developers as well as system administrators who want to learn about Kubernetes from the developer’s perspective. About the Technology Kubernetes abstracts away the hardware infrastructure and exposes your whole datacenter as a single enormous computational resource.

    £43.19

  • Well-Grounded Python Developer, The

    Manning Publications Well-Grounded Python Developer, The

    Book SynopsisWhen you're new to Python, it can be tough to understand where and how to use its many language features. There's a dizzying array of libraries, and it's challenging to fit everything together. The Well- Grounded Python Developer builds on Python skills you've learned in isolation and shows you how to unify them into a meaningful whole. The Well-Grounded Python Developer teaches you how to write real software in Python by building on the basic language skills you already have. It helps you see the big picture you can create out of small pieces, introducing concepts like modular construction, APIs, and the design of a basic web server. When you're finished, you'll have gone from having a basic understanding of Python's syntax, grammar, and libraries to using them as the tools of a professional software developer. About the TechnologyPython is the perfect language for beginning programmers. It is easy to learn, with tons of helpful libraries and tools. Better still, it doesn't run out of steam when you want to create more advanced applications for web development or machine learning. Once you've mastered the syntax of simple Python scripts, it can be a challenge to progress to more ambitious projects. This book helps you on that path.Trade Review"I would consider this book a bible of sorts, offering something to every level of Python developer." Lee Harding "A very good book not just for becoming a well grounded python developer but a good resource to become a well grounded developer in general." Kimberly Winston-Jackson "If you want to become a good Pythonista you need this book!" Gustavo Filipe Ramos Gomes "A great introduction to the necessary concepts that make you a great programmer." Christopher Kardell

    £36.09

  • Clean Architecture with .NET

    Pearson Education Clean Architecture with .NET

    Book SynopsisDino Esposito has authored more than 20 books and 1,000 articles to date. His programming career has so far spanned 25 years. It is commonly recognized that his books and articles helped the professional growth of thousands of .NET developers and architects worldwide. Dino started back in 1992 as a C developer and witnessed the debut of .NET, the rise and fall of Silverlight, and the ups and downs of various architectural patterns. After 2 years of consulting in energy, he now leads the IT team that has built and maintains the (ASP.NET) platform that runs every-day, worldwide operations for professional tennis and another team that builds (ASP.NET) software for digital therapies within the Vatican's hospital. You can get in touch with Dino at http://youbiquitous.net.

    £25.49

  • Wiley-VCH Verlag GmbH JavaScript für Dummies

    Out of stock

    Book SynopsisSchritt für Schritt zu JavaScript Wenn Sie mit JavaScript programmieren lernen möchten, dann greifen Sie zu! Sebastian Springer vermittelt Ihnen in diesem Einstieg das Grundwissen zur Programmierung mit dieser mächtigen Programmiersprache. Sie lernen neben Grundlagen wie Schleifen, Verzweigungen und Co. alle wichtigen Tools, Arbeitsweisen und Besonderheiten der Browser kennen. Doch damit nicht genug: Fortgeschrittene Technologien, wie die asynchrone Programmierung, werden erklärt; außerdem, wie Sie zwischen Frontend und Backend kommunizieren oder mit Nutzern interagieren. Alles garniert mit übungen und Beispiel-Programmen. Sie erfahren Was es mit Node.js auf sich hat Wie das Zusammenspiel von JavaScript und HTML und CSS funktioniert Was Sie über Datentypen, Variable und Konstante wissen sollten Wie Sie Fehler aufspüren und beheben

    Out of stock

    £999.99

  • Springer Nature Switzerland AG Physics Experiments with Arduino and Smartphones

    15 in stock

    Book SynopsisThis book on the use of Arduino and Smartphones in physics experiments, with a focus on mechanics, introduces various techniques by way of examples. The main aim is to teach students how to take meaningful measurements and how to interpret them. Each topic is introduced by an experiment. Those at the beginning of the book are rather simple to build and analyze. As the lessons proceed, the experiments become more refined and new techniques are introduced. Rather than providing recipes to be adopted while taking measurements, the need for new concepts is raised by observing the results of an experiment. A formal justification is given only after a concept has been introduced experimentally. The discussion extends beyond the taking of measurements to their meaning in terms of physics, the importance of what is learned from the laws that are derived, and their limits. Stress is placed on the importance of careful design of experiments as to reduce systematic errors and on good practices to avoid common mistakes. Data are always analyzed using computer software. C-like structures are introduced in teaching how to program Arduino, while data collection and analysis is done using Python. Several methods of graphical representation of data are used.Table of Contents1 Physics and Nature.- 2 Units.- 3 Uncertainties.- 4 Statistical analysis of data.- 5 Statistical distributions and their properties.- 6 Establishing a physics law.- 7 Parameters evaluation- 8 Automatic data acquisition.- 9 The Hooke’s law.- 10 Pendulum.- 11 Kinematics.- 12 Free fall.- 13 Wave mechanics.

    15 in stock

    £27.99

  • Upfront Publishing The Book of Shen - Fourth edition

    15 in stock

    15 in stock

    £28.50

  • Practical Machine Learning in R

    John Wiley & Sons Inc Practical Machine Learning in R

    15 in stock

    Book SynopsisTable of ContentsAbout the Authors vii About the Technical Editors ix Acknowledgments xi Introduction xxi Part I: Getting Started 1 Chapter 1 What is Machine Learning? 3 Discovering Knowledge in Data 5 Introducing Algorithms 5 Artificial Intelligence, Machine Learning, and Deep Learning 6 Machine Learning Techniques 7 Supervised Learning 8 Unsupervised Learning 12 Model Selection 14 Classification Techniques 14 Regression Techniques 15 Similarity Learning Techniques 16 Model Evaluation 16 Classification Errors 17 Regression Errors 19 Types of Error 20 Partitioning Datasets 22 Holdout Method 23 Cross-Validation Methods 23 Exercises 24 Chapter 2 Introduction to R and RStudio 25 Welcome to R 26 R and RStudio Components 27 The R Language 27 RStudio 28 RStudio Desktop 28 RStudio Server 29 Exploring the RStudio Environment 29 R Packages 38 The CRAN Repository 38 Installing Packages 38 Loading Packages 39 Package Documentation 40 Writing and Running an R Script 41 Data Types in R 44 Vectors 45 Testing Data Types 47 Converting Data Types 50 Missing Values 51 Exercises 52 Chapter 3 Managing Data 53 The Tidyverse 54 Data Collection 55 Key Considerations 55 Collecting Ground Truth Data 55 Data Relevance 55 Quantity of Data 56 Ethics 56 Importing the Data 56 Reading Comma-Delimited Files 56 Reading Other Delimited Files 60 Data Exploration 60 Describing the Data 61 Instance 61 Feature 61 Dimensionality 62 Sparsity and Density 62 Resolution 62 Descriptive Statistics 63 Visualizing the Data 69 Comparison 69 Relationship 70 Distribution 72 Composition 73 Data Preparation 74 Cleaning the Data 75 Missing Values 75 Noise 79 Outliers 81 Class Imbalance 82 Transforming the Data 84 Normalization 84 Discretization 89 Dummy Coding 89 Reducing the Data 92 Sampling 92 Dimensionality Reduction 99 Exercises 100 Part II: Regression 101 Chapter 4 Linear Regression 103 Bicycle Rentals and Regression 104 Relationships Between Variables 106 Correlation 106 Regression 114 Simple Linear Regression 115 Ordinary Least Squares Method 116 Simple Linear Regression Model 119 Evaluating the Model 120 Residuals 121 Coefficients 121 Diagnostics 122 Multiple Linear Regression 124 The Multiple Linear Regression Model 124 Evaluating the Model 125 Residual Diagnostics 127 Influential Point Analysis 130 Multicollinearity 133 Improving the Model 135 Considering Nonlinear Relationships 135 Considering Categorical Variables 137 Considering Interactions Between Variables 139 Selecting the Important Variables 141 Strengths and Weaknesses 146 Case Study: Predicting Blood Pressure 147 Importing the Data 148 Exploring the Data 149 Fitting the Simple Linear Regression Model 151 Fitting the Multiple Linear Regression Model 152 Exercises 161 Chapter 5 Logistic Regression 165 Prospecting for Potential Donors 166 Classifi cation 169 Logistic Regression 170 Odds Ratio 172 Binomial Logistic Regression Model 176 Dealing with Missing Data 178 Dealing with Outliers 182 Splitting the Data 187 Dealing with Class Imbalance 188 Training a Model 190 Evaluating the Model 190 Coeffi cients 193 Diagnostics 195 Predictive Accuracy 195 Improving the Model 198 Dealing with Multicollinearity 198 Choosing a Cutoff Value 205 Strengths and Weaknesses 206 Case Study: Income Prediction 207 Importing the Data 208 Exploring and Preparing the Data 208 Training the Model 212 Evaluating the Model 215 Exercises 216 Part III: Classification 221 Chapter 6 k-Nearest Neighbors 223 Detecting Heart Disease 224 k-Nearest Neighbors 226 Finding the Nearest Neighbors 228 Labeling Unlabeled Data 230 Choosing an Appropriate k 231 k-Nearest Neighbors Model 232 Dealing with Missing Data 234 Normalizing the Data 234 Dealing with Categorical Features 235 Splitting the Data 237 Classifying Unlabeled Data 237 Evaluating the Model 238 Improving the Model 239 Strengths and Weaknesses 241 Case Study: Revisiting the Donor Dataset 241 Importing the Data 241 Exploring and Preparing the Data 242 Dealing with Missing Data 243 Normalizing the Data 245 Splitting and Balancing the Data 246 Building the Model 248 Evaluating the Model 248 Exercises 249 Chapter 7 Naïve Bayes 251 Classifying Spam Email 252 Naïve Bayes 253 Probability 254 Joint Probability 255 Conditional Probability 256 Classification with Naïve Bayes 257 Additive Smoothing 261 Naïve Bayes Model 263 Splitting the Data 266 Training a Model 267 Evaluating the Model 267 Strengths and Weaknesses of the Naïve Bayes Classifier 269 Case Study: Revisiting the Heart Disease Detection Problem 269 Importing the Data 270 Exploring and Preparing the Data 270 Building the Model 272 Evaluating the Model 273 Exercises 274 Chapter 8 Decision Trees 277 Predicting Build Permit Decisions 278 Decision Trees 279 Recursive Partitioning 281 Entropy 285 Information Gain 286 Gini Impurity 290 Pruning 290 Building a Classification Tree Model 291 Splitting the Data 294 Training a Model 295 Evaluating the Model 295 Strengths and Weaknesses of the Decision Tree Model 298 Case Study: Revisiting the Income Prediction Problem 299 Importing the Data 300 Exploring and Preparing the Data 300 Building the Model 302 Evaluating the Model 302 Exercises 304 Part IV: Evaluating and Improving Performance 305 Chapter 9 Evaluating Performance 307 Estimating Future Performance 308 Cross-Validation 311 k-Fold Cross-Validation 311 Leave-One-Out Cross-Validation 315 Random Cross-Validation 316 Bootstrap Sampling 318 Beyond Predictive Accuracy 321 Kappa 323 Precision and Recall 326 Sensitivity and Specificity 328 Visualizing Model Performance 332 Receiver Operating Characteristic Curve 333 Area Under the Curve 336 Exercises 339 Chapter 10 Improving Performance 341 Parameter Tuning 342 Automated Parameter Tuning 342 Customized Parameter Tuning 348 Ensemble Methods 354 Bagging 355 Boosting 358 Stacking 361 Exercises 366 Part V: Unsupervised Learning 367 Chapter 11 Discovering Patterns with Association Rules 369 Market Basket Analysis 370 Association Rules 371 Identifying Strong Rules 373 Support 373 Confi dence 373 Lift 374 The Apriori Algorithm 374 Discovering Association Rules 376 Generating the Rules 377 Evaluating the Rules 382 Strengths and Weaknesses 386 Case Study: Identifying Grocery Purchase Patterns 386 Importing the Data 387 Exploring and Preparing the Data 387 Generating the Rules 389 Evaluating the Rules 389 Exercises 392 Notes 393 Chapter 12 Grouping Data with Clustering 395 Clustering 396 k-Means Clustering 399 Segmenting Colleges with k-Means Clustering 403 Creating the Clusters 404 Analyzing the Clusters 407 Choosing the Right Number of Clusters 409 The Elbow Method 409 The Average Silhouette Method 411 The Gap Statistic 412 Strengths and Weaknesses of k-Means Clustering 414 Case Study: Segmenting Shopping Mall Customers 415 Exploring and Preparing the Data 415 Clustering the Data 416 Evaluating the Clusters 418 Exercises 420 Notes 420 Index 421

    15 in stock

    £24.79

  • Electronics Cookbook

    O'Reilly Media Electronics Cookbook

    1 in stock

    Book SynopsisAuthor Simon Monk (Raspberry Pi Cookbook) breaks down this complex subject into several topics, from using the right transistor to building and testing projects and prototypes.

    1 in stock

    £29.99

  • 15 in stock

    £23.99

  • O'Reilly Media 97 Things Every Programmer Should Know

    5 in stock

    Book SynopsisOffers 97 short and useful programming tips from the experienced practitioners in the industry. This title helps you learn the programming languages and follow specific practices. It contains principles that apply to projects of various types. It is intended for programmers.

    5 in stock

    £25.59

  • Pearson Education (US) Refactoring Databases

    Out of stock

    Book SynopsisScott W. Ambler is a software process improvement (SPI) consultant living just north of Toronto. He is founder and practice leader of the Agile Modeling (AM) (www.agilemodeling.com), Agile Data (AD) (www.agiledata.org), Enterprise Unified Process (EUP) (www.enterpriseunifiedprocess.com), and Agile Unified Process (AUP) (www.ambysoft.com/unifiedprocess) methodologies. Scott is the (co-)author of several books, including Agile Modeling (John Wiley & Sons, 2002), Agile Database Techniques (John Wiley & Sons, 2003), The Object Primer, Third Edition (Cambridge University Press, 2004), The Enterprise Unified Process (Prentice Hall, 2005), and The Elements of UML 2.0 Style (Cambridge University Press, 2005). Scott is a contributing editor with Software Development magazine (www.sdmagazine.com) and has spoken and keynoted at a wide variety of international conferences, including Software Development, UML World,Table of ContentsAbout the Authors xv Forewords xvii Preface xxi Acknowledgments xxvii Chapter 1: Evolutionary Database Development 1 Chapter 2: Database Refactoring 13 Chapter 3: The Process of Database Refactoring 29 Chapter 4: Deploying into Production 49 Chapter 5: Database Refactoring Strategies 59 Chapter 6: Structural Refactorings 69 Chapter 7: Data Quality Refactorings 151 Chapter 8: Referential Integrity Refactorings 203 Chapter 9: Architectural Refactorings 231 Chapter 10: Method Refactorings 277 Chapter 11: Transformations 295 Appendix: The UML Data Modeling Notation 315 Glossary 321 References and Recommended Reading 327 Index 331

    Out of stock

    £999.99

  • Adaptive Code: Agile coding with design patterns

    Microsoft Press,U.S. Adaptive Code: Agile coding with design patterns

    20 in stock

    Book SynopsisWrite code that can adapt to changes. By applying this book’s principles, you can create code that accommodates new requirements and unforeseen scenarios without significant rewrites. Gary McLean Hall describes Agile best practices, principles, and patterns for designing and writing code that can evolve more quickly and easily, with fewer errors, because it doesn’t impede change. Now revised, updated, and expanded, Adaptive Code, Second Edition adds indispensable practical insights on Kanban, dependency inversion, and creating reusable abstractions. Drawing on over a decade of Agile consulting and development experience, McLean Hall has updated his best-seller with deeper coverage of unit testing, refactoring, pure dependency injection, and more. Master powerful new ways to: • Write code that enables and complements Scrum, Kanban, or any other Agile framework • Develop code that can survive major changes in requirements • Plan for adaptability by using dependencies, layering, interfaces, and design patterns • Perform unit testing and refactoring in tandem, gaining more value from both • Use the “golden master” technique to make legacy code adaptive • Build SOLID code with single-responsibility, open/closed, and Liskov substitution principles • Create smaller interfaces to support more-diverse client and architectural needs • Leverage dependency injection best practices to improve code adaptability • Apply dependency inversion with the Stairway pattern, and avoid related anti-patterns About You This book is for programmers of all skill levels seeking more-practical insight into design patterns, SOLID principles, unit testing, refactoring, and related topics. Most readers will have programmed in C#, Java, C++, or similar object-oriented languages, and will be familiar with core procedural programming techniques.Table of Contents Chapter 1 Introduction to Scrum Chapter 2 Introduction to Kanban Chapter 3 Dependencies and layering Chapter 4 Interfaces and design patterns Chapter 5 Testing Chapter 6 Refactoring Chapter 7 The single responsibility principle Chapter 8 The open/closed principle Chapter 9 The Liskov substitution principle Chapter 10 Interface segregation Chapter 11 Dependency inversion Chapter 12 Dependency injection Chapter 13 Coupling, cohesion, and connascence

    20 in stock

    £33.29

  • Beginning Linux Programming 4th Edition

    John Wiley & Sons Inc Beginning Linux Programming 4th Edition

    Book SynopsisBeginning Linux Programming, Fourth Edition continues its unique approach to teaching UNIX programming in a simple and structured way on the Linux platform. Through the use of detailed and realistic examples, students learn by doing, and are able to move from being a Linux beginner to creating custom applications in Linux. The book introduces fundamental concepts beginning with the basics of writing Unix programs in C, and including material on basic system calls, file I/O, interprocess communication (for getting programs to work together), and shell programming. Parallel to this, the book introduces the toolkits and libraries for working with user interfaces, from simpler terminal mode applications to X and GTK+ for graphical user interfaces. Advanced topics are covered in detail such as processes, pipes, semaphores, socket programming, using MySQL, writing applications for the GNOME or the KDE desktop, writing device drivers, POSIX Threads, and kernel programming for the latesTable of ContentsAcknowledgements x Foreword xxiii Introduction xxv Chapter 1: Getting Started 1 An Introduction to UNIX, Linux, and GNU 1 What Is UNIX? 1 What Is Linux? 3 The GNU Project and the Free Software Foundation 3 Linux Distributions 4 Programming Linux 4 Linux Programs 5 Text Editors 6 The C Compiler 7 Development System Roadmap 8 Getting Help 14 Summary 16 Chapter 2: Shell Programming 17 Why Program with a Shell? 18 A Bit of Philosophy 18 What Is a Shell? 19 Pipes and Redirection 21 Redirecting Output 21 Redirecting Input 22 Pipes 22 The Shell as a Programming Language 23 Interactive Programs 23 Creating a Script 24 Making a Script Executable 25 Shell Syntax 27 Variables 27 Conditions 31 Control Structures 34 Functions 46 Commands 49 Command Execution 68 Here Documents 73 Debugging Scripts 74 Going Graphical — The dialog Utility 75 Putting It All Together 81 Requirements 82 Design 82 Summary 91 Chapter 3: Working with Files 93 Linux File Structure 94 Directories 94 Files and Devices 95 System Calls and Device Drivers 96 Library Functions 97 Low-Level File Access 98 write 98 read 99 open 100 Initial Permissions 101 Other System Calls for Managing Files 106 The Standard I/O Library 109 fopen 110 fread 110 fwrite 111 fclose 111 fflush 111 fseek 112 fgetc, getc, and getchar 112 fputc, putc, and putchar 112 fgets and gets 113 Formatted Input and Output 113 printf, fprintf, and sprintf 113 scanf, fscanf, and sscanf 115 Other Stream Functions 117 Stream Errors 119 Streams and File Descriptors 119 File and Directory Maintenance 120 chmod 120 chown 120 unlink, link, and symlink 121 mkdir and rmdir 121 chdir and getcwd 122 Scanning Directories 122 opendir 123 readdir 123 telldir 123 seekdir 124 closedir 124 Errors 127 strerror 127 perror 127 The /proc File System 128 Advanced Topics: fcntl and mmap 132 fcntl 132 mmap 133 Summary 135 Chapter 4: The Linux Environment 137 Program Arguments 137 getopt 140 getopt_long 142 Environment Variables 144 Use of Environment Variables 146 The environ Variable 147 Time and Date 148 Temporary Files 156 User Information 158 Host Information 161 Logging 163 Resources and Limits 167 Summary 173 Chapter 5: Terminals 175 Reading from and Writing to the Terminal 175 Talking to the Terminal 180 The Terminal Driver and the General Terminal Interface 182 Overview 183 Hardware Model 183 The termios Structure 184 Input Modes 186 Output Modes 186 Control Modes 187 Local Modes 188 Special Control Characters 188 Terminal Speed 192 Additional Functions 192 Terminal Output 196 Terminal Type 197 Identify Your Terminal Type 197 Using terminfo Capabilities 200 Detecting Keystrokes 205 Virtual Consoles 207 Pseudo-Terminals 208 Summary 209 Chapter 6: Managing Text-Based Screens with curses 211 Compiling with curses 212 Curses Terminology and Concepts 213 The Screen 216 Output to the Screen 216 Reading from the Screen 217 Clearing the Screen 218 Moving the Cursor 218 Character Attributes 218 The Keyboard 221 Keyboard Modes 221 Keyboard Input 222 Windows 224 The WINDOW Structure 224 Generalized Functions 225 Moving and Updating a Window 225 Optimizing Screen Refreshes 229 Subwindows 230 The Keypad 232 Using Color 235 Redefining Colors 238 Pads 238 The CD Collection Application 240 Starting a New CD Collection Application 240 Looking at main 243 Building the Menu 243 Database File Manipulation 245 Querying the CD Database 250 Summary 254 Chapter 7: Data Management 255 Managing Memory 255 Simple Memory Allocation 256 Allocating Lots of Memory 257 Abusing Memory 260 The Null Pointer 261 Freeing Memory 262 Other Memory Allocation Functions 264 File Locking 264 Creating Lock Files 265 Locking Regions 268 Use of read and write with Locking 271 Competing Locks 276 Other Lock Commands 280 Deadlocks 280 Databases 281 The dbm Database 281 The dbm Routines 283 dbm Access Functions 283 Additional dbm Functions 287 The CD Application 289 Updating the Design 289 The CD Database Application Using dbm 290 Summary 309 Chapter 8: MySQL 311 Installation 312 MySQL Packages 312 Post-Install Configuration 314 Post-Installation Troubleshooting 319 MySQL Administration 320 Commands 320 Creating Users and Giving Them Permissions 325 Passwords 327 Creating a Database 328 Data Types 329 Creating a Table 330 Graphical Tools 333 Accessing MySQL Data from C 335 Connection Routines 337 Error Handling 341 Executing SQL Statements 342 Miscellaneous Functions 357 The CD Database Application 358 Creating the Tables 359 Adding Some Data 362 Accessing the Application Data from C 364 Summary 375 Chapter 9: Development Tools 377 Problems of Multiple Source Files 377 The make Command and Makefiles 378 The Syntax of Makefiles 378 Options and Parameters to make 379 Comments in a Makefile 382 Macros in a Makefile 382 Multiple Targets 384 Built-in Rules 387 Suffix and Pattern Rules 388 Managing Libraries with make 389 Advanced Topic: Makefiles and Subdirectories 391 GNU make and gcc 391 Source Code Control 392 RCS 393 SCCS 399 Comparing RCS and SCCS 399 CVS 400 CVS Front Ends 404 Subversion 405 Writing a Manual Page 406 Distributing Software 409 The patch Program 410 Other Distribution Utilities 411 RPM Packages 413 Working with RPM Package Files 414 Installing RPM Packages 415 Building RPM Packages 415 Other Package Formats 424 Development Environments 424 KDevelop 425 Other Environments 425 Summary 427 Chapter 10: Debugging 429 Types of Errors 429 General Debugging Techniques 430 A Program with Bugs 430 Code Inspection 433 Instrumentation 434 Controlled Execution 436 Debugging with gdb 437 Starting gdb 437 Running a Program 438 Stack Trace 438 Examining Variables 439 Listing the Program 440 Setting Breakpoints 441 Patching with the Debugger 444 Learning More about gdb 445 More Debugging Tools 445 Lint: Removing the Fluff from Your Programs 446 Function Call Tools 449 Execution Profiling with prof/gprof 451 Assertions 452 Memory Debugging 453 ElectricFence 454 valgrind 455 Summary 459 Chapter 11: Processes and Signals 461 What Is a Process? 461 Process Structure 462 The Process Table 463 Viewing Processes 463 System Processes 464 Process Scheduling 467 Starting New Processes 468 Waiting for a Process 475 Zombie Processes 477 Input and Output Redirection 479 Threads 480 Signals 481 Sending Signals 484 Signal Sets 489 Summary 493 Chapter 12: POSIX Threads 495 What Is a Thread? 495 Advantages and Drawbacks of Threads 496 A First Threads Program 497 Simultaneous Execution 501 Synchronization 503 Synchronization with Semaphores 503 Synchronization with Mutexes 508 Thread Attributes 512 Canceling a Thread 517 Threads in Abundance 520 Summary 524 Chapter 13: Inter-Process Communication: Pipes 525 What Is a Pipe? 525 Process Pipes 526 Sending Output to popen 528 Passing More Data 529 How popen Is Implemented 530 The Pipe Call 531 Parent and Child Processes 535 Reading Closed Pipes 536 Pipes Used as Standard Input and Output 537 Named Pipes: FIFOs 540 Accessing a FIFO 542 Advanced Topic: Client/Server Using FIFOs 549 The CD Database Application 553 Aims 554 Implementation 555 Client Interface Functions 558 The Server Interface, server.c 565 The Pipe 569 Application Summary 574 Summary 575 Chapter 14: Semaphores, Shared Memory, and Message Queues 577 Semaphores 577 Semaphore Definition 579 A Theoretical Example 579 Linux Semaphore Facilities 580 Using Semaphores 582 Shared Memory 586 shmget 588 shmat 588 shmdt 589 shmctl 589 Message Queues 594 msgget 594 msgsnd 595 msgrcv 595 msgctl 596 The CD Database Application 599 Revising the Server Functions 600 Revising the Client Functions 602 IPC Status Commands 604 Displaying Semaphore Status 604 Displaying Shared Memory Status 604 Displaying Message Queue Status 605 Summary 605 Chapter 15: Sockets 607 What Is a Socket? 608 Socket Connections 608 Socket Attributes 612 Creating a Socket 614 Socket Addresses 615 Naming a Socket 616 Creating a Socket Queue 617 Accepting Connections 617 Requesting Connections 618 Closing a Socket 619 Socket Communications 619 Host and Network Byte Ordering 622 Network Information 624 The Internet Daemon (xinetd/inetd) 629 Socket Options 631 Multiple Clients 632 select 635 Multiple Clients 638 Datagrams 642 Summary 644 Chapter 16: Programming GNOME Using GTK+ 645 Introducing X 645 X Server 646 X Client 646 X Protocol 646 Xlib 647 Toolkits 647 Window Managers 647 Other Ways to Create a GUI — Platform-Independent Windowing APIs 648 Introducing GTK+ 648 GLib Type System 649 GTK+ Object System 650 Introducing GNOME 651 Installing the GNOME/GTK+ Development Libraries 652 Events, Signals, and Callbacks 655 Packing Box Widgets 658 GTK+ Widgets 661 GtkWindow 662 GtkEntry 663 GtkSpinButton 666 GtkButton 668 GtkTreeView 672 GNOME Widgets 676 GNOME Menus 677 Dialogs 682 GtkDialog 682 Modal Dialog Box 684 Nonmodal Dialogs 685 GtkMessageDialog 686 CD Database Application 687 Summary 699 Chapter 17: Programming KDE Using Qt 701 Introducing KDE and Qt 701 Installing Qt 702 Signals and Slots 705 Qt Widgets 712 QLineEdit 712 Qt Buttons 716 QComboBox 721 QListView 724 Dialogs 727 QDialog 728 QMessageBox 730 QInputDialog 731 Using qmake to Simplify Writing Makefiles 733 Menus and Toolbars with KDE 733 CD Database Application Using KDE/Qt 738 MainWindow 738 AddCdDialog 742 LogonDialog 743 main.cpp 745 Summary 746 Chapter 18: Standards for Linux 747 The C Programming Language 748 A Brief History Lesson 748 The GNU Compiler Collection 749 gcc Options 749 Interfaces and the Linux Standards Base 751 LSB Standard Libraries 752 LSB Users and Groups 754 LSB System Initialization 754 The Filesystem Hierarchy Standard 755 Further Reading about Standards 758 Summary 759 Index 761

    £27.20

  • Managing Software Quality Business Risk Rights of

    John Wiley & Sons Inc Managing Software Quality Business Risk Rights of

    Book SynopsisSoftware development failures are invariably caused by a combination of circumstances -- circumstances that are rarely technical in origin. Increasingly, standard risk management practices used in other industries are being applied to software development projects.Trade Review"Managing Software Quality and Business Risk addresses itself to software project leaders, managers and technicians alike, pulling them temporarily away from their own discipline and encouraging them to view the gestalt of project planning. You get an overview of what each of these areas of expertise has to offer: a technician, for example, might learn the importance and practicality of risk planning first, followed by quality planning. (The software project team that does not calculate for the eventualities of many kinds of failure is re-enacting a tragedy of Shakespearean proportions.) The unifying theme is studying and perfecting the planning process, and ensuring that your project plan has minimised associated risks and maximised quality. The style is clear, and though the writing is studded with a fair amount of jargon, it clearly lays out management information and perspectives. On the practical side, the author takes you through several techniques and introduces insights from those skilled in coping with market forces or with service users, often underestimated, misunderstood or completely ignored by programmers. There are plenty of interesting, well-designed grey tone charts and diagrams that instantly bring to the fore the subject or strategy being developed, and examples are given throughout. This is a book that is best approached as a good, thought-provoking read rather than as a reference.--" -Wilf Hey , Amazon.co.ukTable of ContentsINTRODUCTION BUILDING THE BOAT ICEBERGS AHEAD! BUSINESS RISK PLANNING FOR RISK MANAGEMENT SOFTWARE QUALITY RIVETS OR WELDING? PLANNING FOR QUALITY ACHIEVEMENT IS IT WATERTIGHT? PLANNING FOR QUALITY CONTROL STOPPING THE RUST: PLANNING FOR QUALITY PRESERVATION PUSHING THE BOAT OUT: CREWING AND PROVISIONING THE HAND ON THE TILLER AND THE CAPTAIN'S LOG BLOCKS ON THE SLIPWAY DIARY OF A VOYAGE RESUME OF THE PLANNING PROCESS GLOSSARY INDEX

    £90.20

  • Program Construction

    John Wiley & Sons Inc Program Construction

    Book SynopsisMost texts on logic or discrete math fail to show why math and logic are fundamental tools for programmers. Program Construction illustrates the importance of math and logic to programming, providing a complete, self-contained account of the principles of logical reasoning. Designed specifically so users can construct programs that meet their specifications, the book details program construction principles in a straightforward fashion, avoiding overly complicated theory, and then illustrating each with convincing examples.Table of ContentsPreface ix 1 A Science of Computing 1 1.1 Debugging 2 1.2 Testing a Correct Program 3 1.3 Testing an Incorrect Program 5 1.4 Correct by Construction 6 2 A Searching Problem and Its Solution 9 2.1 Problem Statement 9 2.2 Problem Solution 11 2.3 Proof of Correctness 12 2.4 What, Why and How 14 2.5 Exercises 15 2.6 Summary 21 3 Calculational Proof 23 3.1 The Nature of Proof 23 3.2 Construction versus Verification 26 3.3 Formatting Calculations 31 3.3.1 Basic Structure 31 3.3.2 Hints 32 3.3.3 Relations between Steps 34 3.3.4 ‘IT’ and ‘Only If’ 36 3.4 A Classic Example 37 3.5 Summary 39 4 Implementation Issues 41 4.1 Binary Search 41 4.1.1 Implementation 44 4.2 Verifying Correctness—A Taster 45 4.3 Summary 52 5 Calculational Logic: Part 1 53 5.1 Logical Connectives 54 5.2 Boolean Equality 56 5.3 Examples of the Associativity of Equivalence 59 5.4 Continued Equivalences 61 5.5 The Island of Knights and Knaves 63 5.6 Negation 65 5.7 Summary 68 6 Number Conversion 71 6.1 The Floor Function 71 6.2 Properties of Floor 73 6.3 Indirect Equality 75 6.4 Rounding Off 77 6.5 Summary 80 7 Calculational Logic: Part 2 83 7.1 Disjunction 83 7.2 Conjunction 85 7.3 Implication 88 7.3.1 Definitions and Basic Properties 89 7.3.2 Replacement Rules 90 7.4 Exercises: Logic Puzzles 93 7.5 Summary 96 8 Maximum and Minimum 97 8.1 Definition of Maximum 97 8.2 Using Indirect Equality 98 8.3 Exercises 101 8.4 Summary 103 9 The Assignment Statement 105 9.1 Hoare Triples 105 9.2 Ghost Variables 107 9.3 Hoare Triples as Program Specifications 109 9.4 Assignment Statements 112 9.5 The Assignment Axiom 113 9.6 Calculating Assignments 115 9.7 Complications 118 9.8 Summary 119 10 Sequential Composition and Conditional Statements 121 10.1 Sequential Composition 121 10.2 The skip Statement 123 10.3 Conditional Statements 124 10.4 Reasoning about Conditional Statements 126 10.5 Constructing Conditional Statements 130 10.6 Combining the Rules 132 10.7 Summary 136 11 Quantifiers 137 11.1 DotDotDot and Sigmas 137 11.2 Introducing Quantifier Notation 141 11.2.1 Summation 141 11.2.2 Free and Bound Variables 143 11.2.3 Properties of Summation 146 11.2.4 The Gauss Legend 131 11.2.5 Warning 152 11.3 Universal and Existential Quantification 153 11.3.1 Universal Quantification 154 11.3.2 Existential Quantification 155 11.3.3 De Morgan’s Rules 156 11.4 Quantifier Rules 156 11.4.1 The Notation 157 11.4.2 Free and Bound Variables 158 11.4.3 Dummies 158 11.4.4 Range Part 158 11.4.5 Trading 159 11.4.6 Term Part 159 11.4.7 Distributivity Properties 159 11.5 Summary 163 12 Inductive Proofs and Constructions 165 12.1 Patterns and Invariants 166 12.2 Mathematical Induction 170 12.3 Strong Induction 175 12.4 Prom Verification to Construction 179 12.5 Summary 182 13 Iteration 183 13.1 The do-od Statement 183 13.2 Constructing Loops 184 13.3 Basic Arithmetic Operations 187 13.3.1 Summing the Elements of an Array 187 13.3.2 Evaluating a Polynomial 188 13.3.3 Evaluation of Powers 191 13.4 Summary 195 14 Sorting and Searching Algorithms 197 14.1 The Dutch National Flag 197 14.1.1 Problem Statement 197 14.1.2 The Solution 199 14.1.3 Verifying the Solution 201 14.2 Finding the K Smallest Values 205 14.2.1 The Specification 206 14.2.2 The Algorithm 268 14.3 Summary 212 15 Remainder Computation 215 15.1 Formal Specification 215 15.2 Elementary Algorithm 217 15.3 The mod and div Functions 219 15.3.1 Basic Properties 221 15.3.2 Separating mod from ÷ 223 15.3.3 Separating ÷ from mod 224 15.3.4 Modular Arithmetic 224 15.4 Long Division 228 15.4.1 Implementing Long Division 229 15.4.2 Discarding Auxiliary Variables 233 15.5 On-Line Remainder Computation 234 15.6 Casting Out Nines 238 15.7 Summary 239 16 Cyclic Codes 241 16.1 Codes and Codewords 241 16.2 Boolean Polynomials 243 16.3 Dara and Generator Polynomials 246 16.4 Long Division 247 16.5 Hardware Implementations 249 16.6 Summary 253 Appendix 255 Solutions to Exercises 263 References 331 Glossary of Symbols 333 Index 335

    £45.55

  • XSLT 2.0 and XPath 2.0 Programmers Reference

    John Wiley & Sons Inc XSLT 2.0 and XPath 2.0 Programmers Reference

    4 in stock

    Book SynopsisThis book is primarily a practical reference book for professional XSLT developers. It assumes no previous knowledge of the language, and many developers have used it as their first introduction to XSLT; however, it is not structured as a tutorial, and there are other books on XSLT that provide a gentler approach for beginners.Table of ContentsIntroduction xxix List of Examples xxxix Part I: Foundations Chapter 1: XSLT in Context 3 What Is XSLT? 3 How Does XSLT Transform XML? 7 The Place of XSLT in the XML Family 21 The History of XSL 26 XSLT 2.0 as a Language 33 Summary 40 Chapter 2: The XSLT Processing Model 41 XSLT: A System Overview 41 The XDM Tree Model 45 The Transformation Process 67 Error Handling 80 Variables and Expressions 80 Summary 88 Chapter 3: Stylesheet Structure 89 Changes in XSLT 2.0 90 The Modular Structure of a Stylesheet 90 The Element 98 The Processing Instruction 99 Embedded Stylesheets 102 Declarations 104 Instructions 108 Simplified Stylesheets 125 Writing Portable Stylesheets 127 Whitespace 141 Summary 148 Chapter 4: Stylesheets and Schemas 151 XML Schema: An Overview 151 Declaring Types in XSLT 161 Validating the Source Document 165 Validating the Result Document 170 Validating a Temporary Document 174 Validating Individual Elements 176 Validating Individual Attributes 179 The default-validation Attribute 180 Importing Schemas 180 Using xsi:type 181 Nillability 182 Summary 183 Chapter 5: Types 185 What Is a Type System? 185 Changes in 2.0 186 Sequences 187 Atomic Values 189 Atomic Types 191 Schema Types and XPath Types 217 The Type Matching Rules 219 Static and Dynamic Type Checking 221 Summary 224 Part II: XSLT and XPath Reference Chapter 6: XSLT Elements 227 xsl:analyze-string 230 xsl:apply-imports 237 xsl:apply-templates 240 xsl:attribute 254 xsl:attribute-set 266 xsl:call-template 271 xsl:character-map 280 xsl:choose 282 xsl:comment 285 xsl:copy 287 xsl:copy-of 292 xsl:decimal-format 298 xsl:document 303 xsl:element 306 xsl:fallback 316 xsl:for-each 322 xsl:for-each-group 326 xsl:function 344 xsl:if 353 xsl:import 357 xsl:import-schema 368 xsl:include 372 xsl:key 376 xsl:matching-substring 386 xsl:message 386 xsl:namespace 390 xsl:namespace-alias 394 xsl:next-match 399 xsl:non-matching-substring 402 xsl:number 403 xsl:otherwise 420 xsl:output 420 xsl:output-character 424 xsl:param 425 xsl:perform-sort 437 xsl:preserve-space 439 xsl:processing-instruction 442 xsl:result-document 445 xsl:sequence 452 xsl:sort 455 xsl:strip-space 465 xsl:stylesheet 465 xsl:template 483 xsl:text 492 xsl:transform 495 xsl:value-of 495 xsl:variable 500 xsl:when 515 xsl:with-param 517 Summary 519 Chapter 7: XPath Fundamentals 521 Notation 522 Where to Start 523 Expressions 524 Lexical Constructs 527 Primary Expressions 539 Variable References 540 Parenthesized Expressions 542 Context Item Expressions 543 Function Calls 544 Conditional Expressions 551 The XPath Evaluation Context 553 Summary 568 Chapter 8: XPath: Operators on Items 571 Arithmetic Operators 571 Value Comparisons 581 General Comparisons 588 Node Comparisons 593 Boolean Expressions 594 Summary 596 Chapter 9: XPath: Path Expressions 599 Examples of Path Expressions 600 Changes in XPath 2.0 601 Document Order and Duplicates 602 The Binary «⁄» Operator 602 Axis Steps 606 Rooted Path Expressions 625 The «⁄⁄» Abbreviation 626 Combining Sets of Nodes 628 Summary 632 Chapter 10: XPath: Sequence Expressions 633 The Comma Operator 634 Numeric Ranges: The «to» Operator 636 Filter Expressions 638 The «for» Expression 640 Simple Mapping Expressions 644 The «some» and «every» Expressions 646 Summary 651 Chapter 11: XPath: Type Expressions 653 Converting Atomic Values 654 Sequence Type Descriptors 668 The «instance of» Operator 677 The «treatas» Operator 678 Summary 680 Chapter 12: XSLT Patterns 681 Patterns and Expressions 681 Changes in XSLT 2.0 682 The Formal Definition 683 An Informal Definition 685 Conflict Resolution 686 Matching Parentless Nodes 688 The Syntax of Patterns 689 Summary 708 Chapter 13: The Function Library 709 A Word about Naming 710 Functions by Category 710 Notation 712 Code Samples 714 Function Definitions 714 Summary 913 Chapter 14: Regular Expressions 915 Branches and Pieces 916 Quantifiers 916 Atoms 917 Subexpressions 918 Back-References 918 Character Groups 919 Character Ranges 919 Character Class Escapes 920 Character Blocks 922 Character Categories 924 Flags 925 Disallowed Constructs 927 Summary 927 Chapter 15: Serialization 929 The XML Output Method 929 The HTML Output Method 936 The XHTML Output Method 939 The Text Output Method 940 Using the declaration 940 Character Maps 941 Disable Output Escaping 945 Summary 949 Part III: Exploitation Chapter 16: Extensibility 953 What Vendor Extensions Are Allowed? 954 Extension Functions 955 Keeping Extensions Portable 970 Summary 971 Chapter 17: Stylesheet Design Patterns 973 Fill-in-the-Blanks Stylesheets 973 Navigational Stylesheets 976 Rule-Based Stylesheets 980 Computational Stylesheets 985 Summary 1000 Chapter 18: Case Study: XMLSpec 1001 Formatting the XML Specification 1002 Preface 1004 Creating the HTML Outline 1008 Formatting the Document Header 1012 Creating the Table of Contents 1019 Creating Section Headers 1023 Formatting the Text 1024 Producing Lists 1028 Making Cross-References 1029 Setting Out the Production Rules 1033 Overlay Stylesheets 1041 Stylesheets for Other Specifications 1044 Summary 1047 Chapter 19: Case Study: A Family Tree 1049 Modeling a Family Tree 1050 Creating a Data File 1058 Displaying the Family Tree Data 1072 Summary 1098 Chapter 20: Case Study: Knight’s Tour 1099 The Problem 1099 The Algorithm 1100 Placing the Knight 1104 Displaying the Final Board 1105 Finding the Route 1106 Running the Stylesheet 1112 Observations 1112 Summary 1113 Part IV: Appendices Appendix A: XPath 2.0 Syntax Summary 1117 Whitespace and Comments 1118 Tokens 1118 Syntax Productions 1119 Operator Precedence 1122 Appendix B: Error Codes 1123 Functions and Operators (FO) 1124 XPath Errors (XP) 1126 XSLT Errors (XT) 1127 Appendix C: Backward Compatibility 1139 Stage 1: Backward-compatibility Mode 1140 Stage 2: Setting version=‘‘2.0’’ 1142 Stage 3: Adding a Schema 1145 Summary 1145 Appendix D: Microsoft XSLT Processors 1147 MSXML 1147 System.Xml 1158 Summary 1161 Appendix E: JAXP: The Java API for Transformation 1163 The JAXP Parser API 1164 The JAXP Transformation API 1169 Examples of JAXP Transformations 1187 Summary 1193 Appendix F: Saxon 1195 Using Saxon from the Command Line 1196 Using Saxon from a Java Application 1199 Using Saxon from a .NET Application 1203 Saxon Tree Models 1205 Extensibility 1205 Collations 1207 Extensions 1208 The evaluate() Extension 1210 Summary 1214 Appendix G: Altova 1215 Running from within XMLSpy 1215 Conformance 1216 Extensions and Extensibility 1217 The Command Line Interface 1217 Using the API 1218 Summary 1220 Appendix H: Glossary 1221 Index 1233

    4 in stock

    £54.62

  • Testing Python

    John Wiley & Sons Inc Testing Python

    Book SynopsisFundamental testing methodologies applied to the popular Python language Testing Python; Applying Unit Testing, TDD, BDD and Acceptance Testing is the most comprehensive book available on testing for one of the top software programming languages in the world. Python is a natural choice for new and experienced developers, and this hands-on resource is a much needed guide to enterprise-level testing development methodologies. The book will show you why Unit Testing and TDD can lead to cleaner, more flexible programs. Unit Testing and Test-Driven Development (TDD) are increasingly must-have skills for software developers, no matter what language they work in. In enterprise settings, it''s critical for developers to ensure they always have working code, and that''s what makes testing methodologies so attractive. This book will teach you the most widely used testing strategies and will introduce to you to still others, covering performance testing, continuous testinTable of ContentsIntroduction 1 CHAPTER 1 A History of Testing 5 You Do Test, Don’t You? 7 Fundamentals and Best Practices 7 Python Installation 8 Linux 8 Mac 8 Windows 8 Pip 9 Virtualenv 9 Source Control (SVN, Git) 10 Interactive Development Environment (IDE) 11 Summary 12 CHAPTER 2 Writing Unit Tests 15 What Is Unit Testing? 15 What Should You Test? 17 Writing Your First Unit Test 17 Checking Values with the assertEquals Method 18 Checking Exception Handling with assertRaises 20 Following the PEP-8 Standard 22 Unit Test Structure 23 Additional Unit Test Examples 24 Getting Clever with assertRaises 24 Making Your Life Easier with setUp 25 Useful Methods in Unit Testing 27 assertEqual(x, y, msg=None) 27 assertAlmostEqual(x, y, places=None, msg=None, delta=None) 27 assertRaises(exception, method, arguments, msg=None) 28 assertDictContainsSubset(expected, actual, msg=None) 28 assertDictEqual(d1, d2, msg=None) 28 assertTrue(expr, msg=None) 28 assertFalse(expr, msg=None) 29 assertGreater(a, b, msg=None) 29 assertGreaterEqual(a, b, msg=None) 29 assertIn(member, container, msg=None) 30 assertIs(expr1, expr2) 30 assertIsInstance(obj, class, msg=None) 30 assertNotIsInstance(obj, class, msg=None) 30 assertIsNone(obj, msg=None) 30 assertIsNot(expr1, expr2, msg=None) 31 assertIsNotNone(obj, msg=None) 31 assertLess(a, b, msg=None) 31 assertLessEqual(a, b, msg=None) 31 assertItemsEqual(a, b, msg=None) 31 assertRaises(excClass, callableObj, *args, **kwargs, msg=None) 32 Summary 32 CHAPTER 3 Utilizing Unit Test Tools 33 Using Python’s Nose 33 Installing Nose 34 Using Nose’s Best Features 35 Running Specifi c Test Files 35 Getting More Detail with Verbose 35 Debugging Support with PDB 36 Checking Your Coverage 38 Coloring your tests with Rednose 39 PyTest: An Alternative Test Runner 40 Installing PyTest 40 PyTest’s Best Features 41 Running Specifi c Tests 41 Viewing Detail with Verbose and Summary 42 Debugging with PDB 43 Checking Your Coverage with PyTest 45 Choosing Between Nose and PyTest 46 Mock and Patch Tricky Situations 46 Installing the Mock Library 47 Mocking a Class and Method Response 47 When Mock Won’t Do, Patch! 50 The Requests Library 50 Patch in Action 50 Advanced Mocking 52 Summary 53 CHAPTER 4 Writing Testable Documentation 55 Writing Your First Doctest 56 Th e Python Shell 56 Adding Doctests to a Method 57 Running Your Doctests 58 Handling Error Cases 59 Advanced Doctest Usage 61 Improving Doctests with Nose Integration 62 Summary 65 Resources 65 CHAPTER 5 Driving Your Development with Tests 67 Agile Development 67 Adopting the Agile Process Now 68 Ethos of Test Driven Development 70 Advantages of Test Driven Development 72 Ping-Pong Programming 72 Test Driving Your Problem 73 Writing Your Failing Test 74 Making Your Test Pass 75 Driving More Features with Tests 75 Wrapping Up the Task 77 Summary 82 Resources 83 CHAPTER 6 Writing Acceptance Tests 85 What Is Acceptance Testing? 85 Anatomy of an Acceptance Test 87 Using Gherkin Syntax 87 Th e Magic Is in the Step File 88 Goals of Acceptance Testing 89 Implementing Developer and QA Collaboration 90 Letting Behavior Drive Your Problem 90 Writing Your Failing Acceptance Test 90 Defining Your Steps 92 Implementing Your Code 94 Developing More of the Feature 95 bank_apppy 96 indexhtml 97 Delivering the Finished Article 98 Advanced Acceptance Test Techniques 102 Scenario Outline 102 Tables of Data in Scenarios 103 Summary 104 Resources 105 CHAPTER 7 Utilizing Acceptance Test Tools 107 Cucumber: The Acceptance Test Standard 107 Lettuce in Detail 108 Tagging 108 Fail Fast 112 Nosetest Integration 114 Robot: An Alternative Test Framework 115 Installing Robot 116 Writing a Test Case 116 Implementing Keywords 117 Running Robot Tests 119 Summary 123 Resources 123 CHAPTER 8 Maximizing Your Code’s Performance 125 Understanding the Importance of Performance Testing 126 JMeter and Python 126 Installation 127 Configuring Your Test Plans 128 Utilizing Your Test Plans Effectively 135 Code Profiling with cProfile 135 Run a cProfile Session 136 Analyzing the cProfile Output 142 Summary 144 Resources 144 CHAPTER 9 Looking After Your Lint 145 Coming to Grips with Pylint 146 Installing Pylint 146 Using Pylint 146 Understanding the Pylint Report 149 The Module Block 149 The Messages by Category Section 149 The Messages Section 150 The Code Evaluation Score 150 The Raw Metrics Section 150 The Statistics by Type Section 150 Customizing Pylint’s Output 150 Telling Pylint to Ignore Errors 153 Covering All Your Code with Unit Tests 154 Installing Coverage 155 Using Coverage 155 Advanced Coverage Options 157 Producing an HTML/XML Report 157 Setting a Minimum Coverage Threshold 159 Restricting Coverage to a Specific Package 159 Ignoring Coverage 160 Summary 161 Resources 162 CHAPTER 10 Automating Your Processes 163 Build Paver Tasks 164 Installing Paver 164 Creating a Paver Task 164 Executing Paver Tasks 165 Defi ning a Default Build 166 Setting Up Automated Builds 168 Installing Jenkins 169 Adding Coverage and PyLint Reports 175 Generating a PyLint Report 175 Generating a Coverage Report 176 Making Your Build Status Highly Visible 176 Summary 181 Resources 181 CHAPTER 11 Deploying Your Application 183 Deploying Your Application to Production 184 Creating a Deployable Artifact 185 Defining the Paver Tasks 185 Incorporating Packaging into the Build 187 Enabling Archiving on Jenkins 188 QA Environment 189 Implementing Stage and Production Environments 190 Implementing a Cloud Deployment 191 Creating a Heroku Account 192 Creating a Small Application 193 Setting up Git for Heroku 193 Deploying the Application to Heroku 194 Smoke Testing a Deployed Application 195 Example Application Stack 196 Smoke Test Scenarios 197 Implementing Smoke Tests 198 Summary 200 Resources 201 CHAPTER 12 The Future of Testing Python 203 Stub the Solution 203 Making Deployment Natural 205 Automating (Nearly) Everything 206 Working in Public 207 Collaborating on Step Definitions 208 Final Thoughts 209 Resources 210 Index 211

    £22.39

  • Art of Computer Programming The

    Pearson Education (US) Art of Computer Programming The

    Book SynopsisDonald E. Knuth is known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the Tex and Metafont systems for computer typesetting, and for his prolific and influential writing. Professor Emeritus of The Art of Computer Programming at Stanford University, he currently devotes full time to the completion of these fascicles and the seven volumes to which they belong. Table of Contents 1. Basic Concepts. Algorithms. Mathematical Preliminaries. Mathematical Induction. Numbers, Powers, and Logarithms. Sums and Products. Integer Functions and Elementary Number Theory. Permutations and Factorials. Binomial Coefficients. Harmonic Numbers. Fibonacci Numbers. Generating Functions. Analysis of an Algorithm. Asymptotic Representations. MIX. Description of MIX. The MIX Assembly Language. Applications to Permutations. Some Fundamental Programming Techniques. Subroutines. Coroutines. Interpretive Routines. Input and Output. History and Bibliography. 2. Information Structures. Introduction. Linear Lists. Stacks, Queues, and Deques. Sequential Allocation. Linked Allocation. Circular Lists. Doubly Linked Lists. Arrays and Orthogonal Lists. Trees. Traversing Binary Trees. Binary Tree Representation of Trees. Other Representations of Trees. Basic Mathematical Properties of Trees. Lists and Garbage Collection. Multilinked Structures. Dynamic Storage Allocation. History and Bibliography. Answers to Exercises. Appendix A. Tables of Numerical Quantities. 1. Fundamental Constants (decimal). 2. Fundamental Constants (octal). 3. Harmonic Numbers, Bernoulli Numbers, Fibonacci Numbers. Appendix B. Index to Notations. Index and Glossary. 0201896834T02272003

    £53.54

  • Visual Basic 6 For Dummies

    John Wiley & Sons Inc Visual Basic 6 For Dummies

    Book SynopsisExplaining the popular language in terms that non-programmers can understand. Highlights features and functions new to the latest version of Visual Basic and covers the integration of Visual Basic applications with other tools in the suite. Includes a CD with author-created sample Visual Basic programs and code.Table of ContentsIntroduction 1PART I: Creating a Visual Basic 6 Program 7Chapter 1: How Visual Basic Works 9Chapter 2: Using the Visual Basic User Interface 15Chapter 3: Designing Your First User Interface 23Chapter 4: Writing Basic Code 41PART II: Creating User Interfaces 53Chapter 5: User Interface Design 101 55Chapter 6: Forms and Buttons 81Chapter 7: Boxes and Buttons for Making Choices 103Chapter 8: Text Boxes for Typing and Showing Words 123Chapter 9: Scroll Bars and Labels 135Chapter 10: Pretty Pictures and Objects from Geometry 145PART III: Making Menus 161Chapter 11: Creating and Editing Pull-Down Menus 163Chapter 12: Submenus, Growing Menus, and Pop-Up Menus 181Chapter 13: Dialog Boxes 191PART IV: The Basics of Writing Code 207Chapter 14: Event Procedures 209Chapter 15: Using Variables 223Chapter 16: Responding to the User 247Chapter 17: Math 101: Arithmetic, Logical, and Comparison Operators 259Chapter 18: Strings and Things 275Chapter 19: Defining Constants and Using Comments 287Chapter 20: Killing Bugs 299PART V: Making Decisions (Something you Stop Doing When You Get Married) 309Chapter 21: The If-Then and If-Then-Else Statements 311Chapter 22: The Select Case Statement 321PART VI: Getting Loopy 327Chapter 23: The Do While and Do-Loop While Loops 329Chapter 24: The Do Until and Do-Loop Until Loops 335Chapter 25: For Next Loops That Can Count 341Chapter 26: Nested Loops and Quick Exits 349PART VII: Writing Subprograms (So You Don't Go Crazy All at Once) 353Chapter 27: General Procedures (Subprograms Tha Everyone Can Share) 355Chapter 28: Passing Arguments 363Chapter 29: Functions, a Unique Type of Subprogram 373Chapter 30: Getting Some Class with Object-Oriented Programming 385Chapter 31: Managing Files 403PART VIII: Database Files and Printing 409Chapter 32: Creating Database Files 411Chapter 33: Using Files from Database Programs You'd Rather Not Use 417Chapter 34: Making Your Program Print Stuff 433PART IX: The Part of Tens 441Chapter 35: The Ten Visual Basic Topics That Didn't Fit Anywhere Else 443Appendix A: About the CD 451Index 459IDG Books Worldwide End-User License Agreement 476Installation Instructions 478Book Registration Information ...... Back of Book

    £22.39

  • Programming Pearls

    Dorling Kindersley Pvt Ltd Programming Pearls

    3 in stock

    Book Synopsis

    3 in stock

    £19.99

  • Programming Game AI By Example

    Jones and Bartlett Publishers, Inc Programming Game AI By Example

    2 in stock

    Book SynopsisProgramming Game AI by Example provides a comprehensive and practical introduction to the “bread and butter” AI techniques used by the game development industry, leading the reader through the process of designing, programming, and implementing intelligent agents for action games using the C++ programming language. Techniques covered include state- and goal-based behavior, inter-agent communication, individual and group steering behaviors, team AI, graph theory, search, path planning and optimization, triggers, scripting, scripted finite state machines, perceptual modeling, goal evaluation, goal arbitration, and fuzzy logic.

    2 in stock

    £37.04

  • Python One-liners

    No Starch Press,US Python One-liners

    1 in stock

    Book SynopsisPython One-Liners will show readers how to perform useful tasks with one line of Python code. Following a brief Python refresher, the book covers essential advanced topics like slicing, regular expressions, list comprehension, broadcasting, lambda functions, algorithms, logistic regression and more. Each chapter introduces a problem to solve, walks the reader through the skills necessary to solve the problem, then provides a concise one-liner Python solution with a detailed explanation.Trade Review"A great resource for programmers who want to learn Python or get better with their Python skills." —JustJonTable of ContentsIntroduction Chapter 1: Python Refresher Chapter 2: Python Tricks Chapter 3: Data Science Chapter 4: Machine Learning Chapter 5: Regular Expressions Chapter 6: Algorithms Afterword

    1 in stock

    £34.19

  • Professional C and .NET

    John Wiley & Sons Inc Professional C and .NET

    Book SynopsisGet the latest coverage of the newest features in C#9 and .NET 5 In Professional C# and .NET: 2021 Edition, Microsoft MVP for Visual Studio and Development Technologies and veteran developer, Christian Nagel, delivers a comprehensive tour of the new features and capabilities of C#9 and .NET 5. Experienced programmers making the transition to C# will benefit from the author's in-depth explorations to create Web- and Windows applications using ASP.NET Core, Blazor, and WinUI using modern application patterns and new features offered by .NET including Microservices deployed to Docker images, GRPC, localization, asynchronous streaming, and much more. The book also offers: Discussions of the extension of .NET to non-Microsoft platforms like OSX and Linux Explanations of the newest features in C#9, including support for record types, and enhanced support for tuples, pattern matching, and nullable reference types IntegratingTable of ContentsIntroduction xxxix Part I: The C# Language Chapter 1: .NET Applications and Tools 3 From .NET Framework to .NET Core to .NET 3 .NET Terms 4 .NET Support Length 9 Application Types and Technologies 10 Microsoft Azure 12 Developer Tools 14 Using the .NET CLI 16 Summary 23 Chapter 2: Core C# 24 Fundamentals of C# 25 Nullable Types 30 Using Predefined Types 33 Controlling Program Flow 37 Organization with Namespaces 44 Working with Strings 45 Comments 49 C# Preprocessor Directives 51 C# Programming Guidelines 54 Summary 58 Chapter 3: Classes, Records, Structs, and Tuples 59 Creating and Using Types 60 Pass by Value or by Reference 60 Classes 62 Records 77 Structs 79 Enum Types 80 ref, in, and out 83 Tuples 86 ValueTuple 88 Deconstruction 88 Pattern Matching 89 Partial Types 92 Summary 94 Chapter 4: Object-Oriented Programming in C# 95 Object Orientation 96 Inheritance with Classes 96 Modifiers 104 Inheritance with Records 106 Using Interfaces 107 Generics 115 Summary 118 Chapter 5: Operators and Casts 119 Operators 120 Using Binary Operators 127 Type Safety 132 Operator Overloading 136 Comparing Objects for Equality 139 Implementing Custom Indexers 142 User-Defined Conversions 143 Summary 152 Chapter 6: Arrays 153 Multiple Objects of the Same Type 154 Simple Arrays 154 Multidimensional Arrays 157 Jagged Arrays 158 Array Class 159 Arrays as Parameters 163 Enumerators 163 Using Span with Arrays 167 Indices and Ranges 170 Array Pools 172 BitArray 174 Summary 176 Chapter 7: Delegates, Lambdas, and Events 177 Referencing Methods 178 Delegates 178 Lambda Expressions 187 Events 189 Summary 192 Chapter 8: Collections 193 Overview 194 Collection Interfaces and Types 194 Lists 195 Stacks 206 Linked Lists 208 Sorted List 209 Dictionaries 211 Sets 218 Performance 220 Immutable Collections 222 Summary 225 Chapter 9: Language Integrated Query 226 LINQ Overview 227 Standard Query Operators 233 Parallel LINQ 256 Expression Trees 258 LINQ Providers 261 Summary 262 Chapter 10: Errors and Exceptions 263 Handling Errors 264 Predefined Exception Classes 264 Catching Exceptions 265 User-Defined Exception Classes 278 Caller Information 285 Summary 287 Chapter 11: Tasks and Asynchronous Programming 288 Why Asynchronous Programming Is Important 289 Task-Based Async Pattern 290 Tasks 291 Error Handling 297 Cancellation of async Methods 299 Async Streams 300 Async with Windows Apps 302 Summary 306 Chapter 12: Reflection, Metadata, And Source Generators 307 Inspecting Code at Runtime and Dynamic Programming 308 Custom Attributes 308 Using Reflection 314 Using Dynamic Language Extensions for Reflection 322 ExpandoObject 325 Source Generators 327 Summary 334 Chapter 13: Managed and Unmanaged Memory 335 Memory 336 Memory Management Under the Hood 336 Strong and Weak References 342 Working with Unmanaged Resources 344 Unsafe Code 349 Span 365 Platform Invoke 368 Summary 373 Part II: Libraries Chapter 14: Libraries, Assemblies, Packages, and Nuget 377 The Hell of Libraries 378 Assemblies 379 Creating and Using Libraries 381 Creating NuGet Packages 386 Module Initializers 390 Summary 391 Chapter 15: Dependency Injection and Configuration 392 What Is Dependency Injection? 393 Using the .NET DI Container 393 Using the Host Class 395 Lifetime of Services 396 Initialization of Services Using Options 403 Using Configuration Files 405 Configuration with .NET Applications 406 Azure App Configuration 411 Summary 418 Chapter 16: Diagnostics and Metrics 419 Diagnostics Overview 420 Logging 421 Metrics 429 Analytics with Visual Studio App Center 434 Application Insights 437 Summary 439 Chapter 17: Parallel Programming 440 Overview 441 Parallel Class 442 Tasks 448 Cancellation Framework 455 Channels 458 Timers 461 Threading Issues 463 Interlocked 468 Monitor 468 SpinLock 469 WaitHandle 470 Mutex 470 Semaphore 471 Events 473 Barrier 476 ReaderWriterLockSlim 479 Locks with await 481 Summary 484 Chapter 18: Files and Streams 485 Overview 486 Managing the File System 486 Iterating Files 492 Working with Streams 493 Using Readers and Writers 503 Compressing Files 505 Watching File Changes 508 JSON Serialization 509 Using Files and Streams with the Windows Runtime 515 Summary 519 Chapter 19: Networking 520 Overview 521 Working with Utility Classes 521 Using Sockets 526 Using TCP Classes 533 Using UDP 537 Using Web Servers 542 The HttpClient Class 548 HttpClient Factory 554 Summary 557 Chapter 20: Security 558 Elements of Security 559 Verifying User Information 559 Encrypting Data 566 Ensuring Web Security 576 Summary 581 Chapter 21: Entity Framework Core 582 Introducing EF Core 583 Creating a Model 593 Scaffolding a Model from the Database 600 Migrations 601 Working with Queries 606 Loading Related Data 612 Working with Relationships 617 Saving Data 625 Conflict Handling 630 Using Transactions 635 Using Azure Cosmos DB 639 Summary 643 Chapter 22: Localization 644 Global Markets 645 Namespace System.Globalization 645 Resources 656 Localization with ASP.NET Core 658 Localization with WinUI 664 Summary 667 Chapter 23: Tests 668 Overview 668 Unit Testing 669 Using a Mocking Library 678 ASP.NET Core Integration Testing 682 Summary 684 Part III: Web Applications and Services Chapter 24: Asp.NET Core 687 Understanding Web Technologies 687 Creating an ASP.NET Core Web Project 689 Adding Client-Side Content 694 Creating Custom Middleware 696 Endpoint Routing 699 Request and Response 700 Session State 706 Health Checks 708 Deployment 711 Summary 713 Chapter 25: Services 714 Understanding Today’s Services 715 REST Services with ASP.NET Core 715 Creating a .NET Client 724 Using EF Core with Services 730 Authentication and Authorization with Azure AD B2C 732 Implementing and Using Services with GRPC 740 Using Azure Functions 748 More Azure Services 751 Summary 751 Chapter 26: Razor Pages and MVC 752 Setting Up Services for Razor Pages and MVC 753 Razor Pages 755 ASP.NET Core MVC 773 Summary 778 Chapter 27: Blazor 779 Blazor Server and Blazor WebAssembly 780 Creating a Blazor Server Web Application 782 Blazor WebAssembly 788 Razor Components 792 Summary 800 Chapter 28: Signalr 801 Overview 801 Creating a Simple Chat Using SignalR 802 Grouping Connections 810 Streaming with SignalR 814 Summary 816 Part IV: Apps Chapter 29: Windows Apps 819 Introducing Windows Apps 819 Introducing XAML 826 Working with Controls 837 Working with Data Binding 852 Implementing Navigation 861 Implementing Layout Panels 867 Summary 875 Chapter 30: Patterns with XAML Apps 876 Why MVVM? 876 Defining the MVVM Pattern 877 Sample Solution 879 Models 879 Services 882 View Models 883 Views 891 Messaging Using Events 897 Summary 898 Chapter 31: Styling Windows Apps 899 Styling 900 Shapes 900 Geometry 902 Transformation 903 Brushes 906 Styles and Resources 908 Templates 913 Animations 918 Visual State Manager 928 Summary 931 Index 933

    £40.00

  • 15 in stock

    £25.19

  • MakeAction

    O'Reilly Media MakeAction

    3 in stock

    Book SynopsisBeginning with the basics and moving gradually to greater challenges, this book takes you step-by-step through experiments and projects that show you how to make your Arduino or Raspberry Pi create and control movement, light, and sound. In other words: action!

    3 in stock

    £22.39

  • Art of Computer Programming The

    Pearson Education (US) Art of Computer Programming The

    Book SynopsisDonald E. Knuth is known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the TEX and METAFONT systems for computer typesetting, and for his prolific and influential writing (26 books, 161 papers). Professor Emeritus of The Art of Computer Programming at Stanford University, he currently devotes full time to the completion of his seminal multivolume series on classical computer science, begun in 1962 when he was a graduate student at California Institute of Technology. Professor Knuth is the recipient of numerous awards and honors, including the ACM Turing Award, the Medal of Science presented by President Carter, the AMS Steele Prize for expository writing, and, in November, 1996, the prestigious Kyoto Prize for advanced technology. He lives on the Stanford campus with his wife, Jill.Trade Review"Satisfiability solving is one of the most important computer technology advances in the last two decades. Now, with the help of it, we can find solutions for unbelievably large (say 2^1000000) combinations. Donald Knuth's new volume explains the theories, algorithms, and applications of satisfiability solving, together with his famous search algorithm, Dancing Links. "If you have a difficult combinatorial problem and want to solve it with a computer, read this book! Not only your needs but also your intellectual curiosity will be fully satisfied." —Naoyuki Tamura, Kobe University "Donald Knuth may very well be a great master of the analysis of algorithms, but more than that, he is an incredible and tireless storyteller who always strikes the perfect balance between theory, practice, and fun. "This new volume of TAOCP dives deep into the fascinating exploration of search spaces (which is quite like looking for a needle in a haystack or, even harder, to prove the absence of a needle in a haystack), where actions performed while moving forward must be meticulously undone when backtracking. It introduces us to the beauty of dancing links for removing and restoring the cells of a matrix in a dance which is both simple to implement and very efficient. And it studies the iconic and versatile satisfiability problem and carefully analyses various ingredients of SAT solvers." —Christine Solnon, Department of Computer Science, INSA Lyon "Donald Knuth's latest volume of The Art of Computer Programming continues his treatment of combinatorial searching. As in previous volumes, he presents his material clearly and precisely, in logical sequence, with plenty of helpful examples and instructive problems to help the reader understand. Any programmer whose work involves recursive searching, combinatorial satisfaction, or optimization is likely to gain much of value from this book. "To help illustrate the use of search techniques, Knuth covers, in great variety, problems involving polyominoes, polycubes (including Soma), and other polyforms. He also tackles tiling and dissection problems, matching problems, chessboard problems, sudoku puzzles, and various commercial puzzles like KenKen® and Hidato®. These problems are analyzed carefully and rigorously, with many detailed diagrams. "I was amazed and delighted by this material. I think that any fan of recreational mathematics and puzzles will be too." —George Sicherman, Red Bank, New Jersey "Knuth's latest volume (4B) contains, as the previous ones, a huge amount of material on the analysis of algorithms, of interest to both mathematicians and computer scientists; the new volume focusses on algorithms related to backtracking. An important feature in all volumes is the large number of exercises, most of them with detailed solutions, but some are unsolved research problems; I have based some of my own research on open problems from Knuth's books, and I look forward to trying to do so with problems in the new volume." —Professor Svante Janson, Department of Mathematics, Uppsala University "I taught an undergraduate combinatorics course and a graduate probability course out of earlier versions of Volume 4B. The students loved it and so did I. It's FULL of new stuff AND it's full of (illuminated) old stuff that nobody knows anymore. Just great." —Persi Diaconis, professor of mathematics and statistics, Stanford University "Many important applications in computer science from optimization to verification can be phrased as combinatorial search problems, and much of this book is focused on solving Boolean satisfiability (SAT) encodings of such problems. The volume is unique in the way it provides a consistent introduction and account of the technical history of practical SAT solving which led to the 'SAT Revolution' we are witnessing today where the encoding of a problem into SAT is considered a practical solution. Following the unique style of TAOCP the author continues to explore a vast number of fascinating forgotten paths and opens intriguing new ones, often formulated as exercises, which actually with some of their solutions should be considered the real treasures of this volume. Some of these exercises have already led to new results published in scientific paper and are also a great source for seminars and teaching SAT in general." —Armin Biere, University of Freiburg, Germany "On a casual browse, the exercises in TAOCP leave most of all an impression of playfulness. Once you begin to dig deeper, though, you are overcome with respect for Knuth's uncanny knack for asking the right questions—for uncovering surprising but fruitful directions of research. While the breadth and depth of his work have been praised extensively, this aspect of it has perhaps gone underappreciated. Nearly every exercise in TAOCP is a door; Knuth has pushed it ajar for you, and now you are invited to step through and explore." —Nikolai Beluhov, Bulgaria "Professor Donald E. Knuth has always loved to solve problems. In Volume 4B he now promotes two brand new and practical general problem solvers, namely (0) the Dancing Links Backtracking and (1) the SAT Solver. To use them, a problem is defined declaratively (0) as a set of options, or (1) in Boolean formulae. Today’s laptop computers, heavily armoured with very high speed processors and ultra large amounts of memory, are able to run either solver for problems having big input data. Each section of Volume 4B contains multitudinous number of tough exercises which help make understanding surer. Happy reading!" —Eiiti Wada, an elder computer scientist, UTokyo "Knuth explains with great clarity the essential SAT techniques to a broad audience and shows their effectiveness on fascinating problems. His thought-provoking questions drive deeper understanding and new research in the area." —Marijn Heule, Carnegie Mellon University "For a generation, The Art of Computer Programming has been a goldmine of learning opportunities for students, mathematicians, and algorithm scientists in pursuit of efficient means of solving practical computational problems as well as insights into the nature of computation. This volume gets to the heart of the matter: satisfiability. Whether or not one believes that P=NP, the pursuit of useful algorithms to address NP-complete problems that arise in scientific applications is worthwhile, and this book is the place to start." —Robert Sedgewick, William O. Baker *39 Professor of Computer Science, Emeritus, Princeton UniversityTable of ContentsPreface vNotes on the Exercises xi Mathematical Preliminaries Redux 1 Chapter 7: Combinatorial Searching 7.2.2 Backtrack Programming 307.2.2.1 Dancing links 657.2.2.2 Satisfiability 185 Answers to Exercises 370 Appendix A: Tables of Numerical Quantities 656Appendix B: Index to Notations 660Appendix C: Index to Algorithms and Theorems 666Appendix D: Index to Combinatorial Problems 667Appendix E: Answers to Puzzles in the Answers 671 Index and Glossary 674

    £53.99

  • Streaming Data

    Manning Publications Streaming Data

    1 in stock

    Book SynopsisDESCRIPTION Many of the technologies discussed in the book—Spark, Storm, Kafka, Impala, RabbitMQ, etc.—are covered individually in other books. Throughout this book, readers will get a clear picture of how these technologies work individually and together, gain insight on how to choose the correct technologies, and discover how to fuse them together to architect a robust system. Streaming Data introduces the concepts and requirements of streaming and real-time data systems. Readers will develop a foundation to understand the challenges and solutions of building in-the-moment data systems before committing to specific technologies. Using lots of diagrams, this book systematically builds up the blueprint for an inthe- moment system concept by concept. This book focuses on the big ideas of streaming and real time data systems rather than the implementation details. KEY FEATURES • Lots of diagrams to explain concepts • Collecting and analyzing data in real time • Uses running examples • Explains how to combine emerging technologies AUDIENCE No experience with streaming or real-time data systems required. Perfect for developers or architects, this book is also written to be accessible to technical managers and business decision makers. Competancy in the Java programming language is recomended. ABOUT THE TECHNOLOGY Applications built to deal with streaming data present fundamentally different challenges than those that work with stored data. For example, live location data paired with a social media profile might allow a vendor to recommend a product or service to a user at just the right instant, and the split-nanosecond reaction of a pacemaker or anti-lock brakes can save lives. Emerging techniques and technologies that enable you to take immediate action on streaming data make it possible to design and build in-the-moment decision systems, dynamic reporting dashboards, live recommendation systems, and other real-time applications.

    1 in stock

    £37.99

  • Management 3.0

    Pearson Education (US) Management 3.0

    2 in stock

    Book SynopsisJurgen Appelo is a writer, speaker, trainer, developer, entrepreneur, manager, blogger, reader, dreamer, leader, and freethinker. And he's Dutch, which explains his talent for being weird.   After studying software engineering at the Delft University of Technology, and earning his Master's degree in 1994, Jurgen busied himself either starting up or leading a variety of Dutch businesses, always in the position of team leader, manager, or executive.   Jurgen's most recent occupation was CIO at ISM eCompany, one of the largest e-business solution providers in The Netherlands. As a manager, Jurgen has experience in leading software developers, development managers, project managers, quality managers, service managers, and kangaroos, some of which he hired accidentally.   He is primarily interestedTrade Review“ I don’t care for cookbooks, as in ‘5 steps to success at whatever.’ I like books that urge you to think–that present new ideas and get mental juices flowing. Jurgen’s book is in this latter category; it asks us to think about leading and managing as a complex undertaking–especially in today’s turbulent world. Management 3.0 offers managers involved in agile/lean transformations a thought-provoking guide how they themselves can ‘become’ agile.” – Jim Highsmith, Executive Consultant, ThoughtWorks, Inc., www.jimhighsmith.com, Author of Agile Project Management “ An up-to-the-minute, relevant round-up of research and practice on complexity and management, cogently summarized and engagingly presented.” –David Harvey, Independent Consultant, Teams and Technology “ Management 3.0 is an excellent book introducing agile to management. I’ve not seen any book that comes near to what this book offers for managers of agile teams. It’s not only a must read, it’s a must share.” –Olav Maassen, Xebia “ If you want hard fast rules like ‘if x happens, do y to fix it’ forget this book. Actually forget about a management career. But if you want tons of ideas on how to make the work of your team more productive and thereby more fun and thereby more productive and thereby more fun and…read this book! You will get a head start on this vicious circle along with a strong reasoning on why the concepts work.” –Jens Schauder, Software Developer, LINEAS “ There are a number of books on managing Agile projects and transitioning from being a Project Manager to working in an Agile setting. However, there isn’t much on being a manager in an Agile setting. This book fills that gap, but actually addresses being an effective manager in any situation. The breadth of research done and presented as background to the actual concrete advice adds a whole other element to the book. And all this while writing in an entertaining style as well.” –Scott Duncan, Agile Coach/Trainer, Agile Software Qualities “ Don’t get tricked by the word ‘Agile’ used in the subtitle. The book isn’t really about Agile; it is about healthy, sensible and down-to-earth management. Something, which is still pretty uncommon.” –Pawel Brodzinski, Software Project Management “ When I first met Jurgen and learned he was writing a book based on complexity theory, I thought, ‘That sounds good, but I’ll never understand it.’ Books with words like entropy, chaos theory, and thermodynamics tend to scare me. In fact, not only did I find Management 3.0 accessible and easy to understand, I can [also] apply the information immediately, in a practical way. It makes sense that software teams are complex adaptive systems, and a relief to learn how to apply these ideas to help our teams do the best work possible. This book will help you whether you’re a manager or a member of a software team”. –Lisa Crispin, Agile Tester, ePlan Services, Inc., author of Agile Testing “ This book is an important read for managers who want to move bTable of Contents 1 Why Things Are Not That Simple 2 Agile Software Development 3 Complex Systems Theory 4 The Information-Innovation System 5 How to Energize People 6 The Basics of Self-Organization 7 How to Empower Teams 8 Leading and Ruling on Purpose 9 How to Align Constraints 10 The Craft of Rulemaking 11 How to Develop Competence 12 Communication on Structure 13 How to Grow Structure 14 The Landscape of Change 15 How to Improve Everything 16 All Is Wrong, but Some Is Useful Index

    2 in stock

    £36.44

  • Bartlett Publishing Programming from the Ground Up

    15 in stock

    15 in stock

    £18.95

  • A Students Guide to Python for Physical Modeling

    Princeton University Press A Students Guide to Python for Physical Modeling

    20 in stock

    Book Synopsis

    20 in stock

    £23.75

  • Taylor & Francis Ltd Cybersecurity

    15 in stock

    a huge range and FREE tracked UK delivery on ALL orders.

    15 in stock

    £63.64

  • Akka in Action

    Manning Publications Akka in Action

    3 in stock

    Book SynopsisUse Akka to solve the big problems of distributed systems—from multithreading and concurrency, to handling scalability and failure. In Akka in Action, Second Edition you will learn how to: Create basic programs with Akka Work with clusters to build robust, fault tolerant programs Create and maintain distributed state with strong consistency guarantees Build microservices with Akka Utilize concurrency and parallelism Test Akka software Akka in Action, Second Edition teaches you to use the latest version of Akka to solve common problems of distributed systems. Akka contributor Francisco López-Sancho demonstrates Akka's complex concepts through real-world use cases, including clustering, sharding, persistence, and deploying to Kubernetes. Discover the power of the Actor model, and how to leverage most of the Akka modules to create microservices that are reliable and fault tolerant. about the technology Akka is a toolkit of libraries that make it easy to implement distributed applications in Scala and Java. Akka's Actor model avoids many of the complexities of multithreading, while making systems elastic and resilient, and provides strong consistency. about the book Akka in Action, Second Edition is a practical guide to building message-oriented systems with Akka. Extensively revised by Akka contributor and consultant Francisco López-Sancho, this upgraded second edition comes with new coverage of Akka typed, microservices architecture, and more. You'll learn how to build with Akka actors and why they're the perfect solution for distributed systems. Driven by practical examples, this book is the perfect guide to creating elastic, resilient, and reactive software with Akka.Trade Review'A belter of a book—buckle up and get ready for the ride of your life. Take an expert guided tour through modern distributed systems built the Akka way!' Grahame Oakland 'This is the definitive book on Actors and Actor System design. Level up your design skills by understanding what Actors can do!' Todd Cook 'A great way to get started with Actors and Akka and doesn't require prior experience. It goes even beyond that and covers advanced topics like clustering and sharding.' Nenko Ivanov 'The book is fantastic if you're looking to cover the theoretical and practical aspects of Akka.' Gilberto Taccari 'An incredible way to have an overview of Akka and to understand all the power it has.' Andres SaccoTable of Contentstable of contents READ IN LIVEBOOK 1INTRODUCING AKKA READ IN LIVEBOOK 2UP AND RUNNING READ IN LIVEBOOK 3TEST DRIVEN DEVELOPMENT WITH ACTORS READ IN LIVEBOOK 4FAULT TOLERANCE READ IN LIVEBOOK 5DISCOVERY AND ROUTING 6 CLUSTERING 7 MICROSERVICES EXCERPT 8 AKKA MICROSERVICES MODULES 9 MICROSERVICES MODULES 10 AKKA PORTS 11 AKKA STREAMS 12 CLUSTERING II 13 ALPAKKA 14 MICROSERVICES -FINAL EXAMPLE 15 CONFIGURATION AND DEPLOYMENT

    3 in stock

    £43.69

  • Personality Development and Devices &

    BPB Publications Personality Development and Devices &

    2 in stock

    Book Synopsis

    2 in stock

    £7.12

  • Unlocking Business Agility with EvidenceBased

    Pearson Education (US) Unlocking Business Agility with EvidenceBased

    Book SynopsisPatricia Kong helps organizations thrive in a complex world by focusing on enterprise innovation, leadership, and teams. She is a people advocate and fascinated by organizational behavior and misbehaviors. She is co-author of The Nexus Framework for Scaling Scrum (Addison-Wesley, 2017). Todd Miller has practical experience as a Scrum Master, Product Owner, Software Developer, and Agile coach on a variety of technical and creative projects across a multitude of industries. He has been a professional Scrum trainer with Scrum.org since 2016. Kurt Bittner has been delivering working products in short, feedback-driven cycles for more than 40 years, and has helped many organizations do the same. He is particularly interested in helping people form strong, self-organizing, high-performance teams that deliver solutions that customers love, and helping organizations use empirical feedback to achieve customer Table of ContentsForeword by Ken Schwaber xi Foreword by Dave West xv Preface xix Introduction xxvii Chapter 1: Finding Purpose 1 Rediscovering Purpose 3 Goals 4 How Goals and Measures Influence Behaviors 7 How to Rediscover Purpose 10 Closing Satisfaction Gaps Creates Value 11 Customer-Focused Goals Enable Autonomy and Purpose 14 Improving Strategic Goals 17 Ask “Why?” to Uncover the Real Objective 17 Refocus “Internal” Goals on What Customers Need to Experience 19 Think About How You Will Measure Progress Toward Your Vision 20 What to Watch For 21 Moving Forward 22 Chapter 2: Using Empiricism to Progress Toward Goals 23 Understanding Value 25 Progressing Toward Goals in a Series of Small Steps 27 Taking Small Steps Toward Goals 29 Steering Toward Goals 32 Adapting Goals 34 Adapting Tactics 36 The Real Purpose of Goals Is to Foster Conversations 36 Losing the Plot and Finding It Again 37 What to Watch For 38 Moving Forward 39 Chapter 3: Becoming (More) Effective 41 Value Is Essential, but Frequency Matters Too 42 It Is Not Delivery Speed That Is Important; It Is Feedback Speed 44 While Focusing on Speed, Do Not Lose Sight of Value 45 Speed Is Not Enough; Teams Must Also Be Effective 46 Too Many Things at Once 48 Where Should Teams Start? 50 Beware the Efficiency Trap 51 Balancing Speed and Effectiveness 52 Cutting Corners: Sometimes Necessary, Sometimes Fatal 53 What to Watch For 55 Moving Forward 56 Chapter 4: Managing and Overcoming Expectations 59 People Who Largely Seek to Validate Expectations Are Often Disappointed 60 Transforming “Bad News” into Just “News” 61 Letting Go of Expectations 64 Expectations Can Be Stubbornly Held 65 Replacing “Meeting Expectations” with “Seeking Goals” 68 Stakeholders and Transparency 69 How to Define and Categorize Stakeholders 70 Escaping the “Echo Chamber” 73 Diverse Perspectives Counter “Groupthink” 76 What to Watch For 77 Moving Forward 78 Chapter 5: Separating the Signal from the Noise 81 Identifying Signals 82 Interpreting Evidence from Signals 84 Dampening the Noise 85 Bias Creates Noise 88 The Customer Is Not Always Right 90 Objectifying Narratives 92 Getting Unstuck 94 Making Decisions 96 What to Watch For 97 Moving Forward 98 Chapter 6: Applying EBM at the Product Level 99 Mind the (Satisfaction) Gap 100 When You Find Yourself in a Hole, Stop Digging 101 Not All Ideas Are Valuable 103 Replacing False Certainty with Experimentation 104 Using Strategic Goal Mapping to Form Experiments 106 Products Are Vehicles for Running Experiments About Value 108 Sometimes Teams Lose the Thread and Need a Reminder 110 Running Experiments and Measuring Results 111 Inspecting Results and Adapting Next Steps 114 Customer Experience Is Not Always About More Features 117 Sometimes You Must Say No 120 What to Watch For 121 Moving Forward 122 Chapter 7: Applying EBM at the Portfolio Level 123 Maximizing Output Does Not Maximize Value 124 The Problems Start with Misfocused Goals 126 Revenue and Profit Are Important, But They Are Poor Goals 127 Reconnecting Investments with Customer Outcomes 128 You Can't Have It All at Once 129 How to Measure Outcomes 130 You Do Not Know What You Do Not Know 131 How to Choose Between Bets 132 Make Small Bets 133 Kill Bad Ideas as Quickly as Possible 135 Propose Experiments 138 Evaluate Proposals 139 Make Sure All the Cards Are on the Table 140 Keep Teams Intact, and Bring Them Work 140 Separating Budgeting from Funding 141 Run Experiments 141 Evaluate Progress Toward Goals 141 What to Watch For 144 Moving Forward 145 Chapter 8: Applying EBM at the Organizational Level 147 Why Change Efforts Fail 148 To Initiate Change, Give People a “Why” 149 Assess Where the Organization Is Today 150 Empowerment Takes Trust, Transparency, and Time 152 Benefits of Empowering Teams 153 Measuring Empowerment 154 Growing Empowerment 155 Inverting the Organization to Support Empowerment 156 Reducing Context Switching 157 Growing Self-Sufficient Teams 158 Aligning Supporting Departments 160 Setting and Adapting Goals 163 Most Goals Can—and Should—Change 163 What to Watch For 164 Moving Forward 165 Index 167

    £25.19

  • Introducing .NET MAUI

    APress Introducing .NET MAUI

    1 in stock

    Book SynopsisInterested in giving Microsoft''s new Multi-platform App UI (MAUI) a try? This book provides developers with a comprehensive set of tools and hands-on coding to build their own cross-platform applications.The book is a comprehensive end-to-end guide on creating, building, and distributing .NET MAUI applications. As you walk through each new concept, .NET MAUI expert and Microsoft MVP Shaun Lawrence will show the concept''s value and uses, and then have you apply it in a build-along application. You will work with this build-along application right up until you are ready to ship it to the relevant stores (e.g., App Store, etc.).The underlying theme through the book is to explain a key concept, show how to implement it directly in order to reinforce your understanding, and then show potential simplifications (e.g., alternative libraries) that can help you reduce the complexities of an applications code base. What You Will LearnCreate a .Table of ContentsPart I – Getting to Know .NET MAUI Chapter 1: Introduction to .NET MAUI Chapter 2: Building Our First application Chapter 3: The Fundamentals of .NET MAUI Part II – User Interface Chapter 4: An Architecture to Suit You Chapter 5: User Interface Essentials Chapter 6: Creating Our Own Layout Chapter 7: Accessibility Chapter 8: Advanced UI Concepts Chapter 9: Local Data Part III – Behind the Scenes Chapter 10: Remote Data Chapter 11: Getting Specific Part IV – Platform Specifics Chapter 12: Testing Chapter 13: Lets Get Graphical Chapter 14: Releasing Our Application Chapter 15: Conclusion.

    1 in stock

    £52.24

  • Bit by Bit

    MK - Stanford University Press Bit by Bit

    Book SynopsisOriginally designed as an educational supplement for the renowned Stanford courses Computer Science 106A and 106B, Bit by Bit is a comic-style resource that uses fractal grids, custom-drawn characters, and fun graphics as a visually immersive introduction to the key concepts of beginner coding, learning pedagogy, education, and visual thinking. Bit by Bit takes readers on a journey that encompasses the full scope of both courses; beginning with the chief elements and fundamentals of programming such as functions, variables, and integers; carrying readers through the basics of Python and C++ into the conceptual world of efficiency and recursion; and walking them through collections of linked data structures. Throughout each section, course and Stanford alum Ecy Femi King is there to guide, cajole, and assist, simultaneously providing useful tips to encourage maximum knowledge absorption and engaging commentary for readers at every level. In short, this book is mo

    £18.04

  • Murach's PHP and MySQL (4th Edition)

    Mike Murach & Associates Inc. Murach's PHP and MySQL (4th Edition)

    2 in stock

    Book Synopsis

    2 in stock

    £51.84

© 2026 Book Curl

    • American Express
    • Apple Pay
    • Diners Club
    • Discover
    • Google Pay
    • Maestro
    • Mastercard
    • PayPal
    • Shop Pay
    • Union Pay
    • Visa

    Login

    Forgot your password?

    Don't have an account yet?
    Create account