Computer programming / software engineering Books

1120 products


  • Code

    Pearson Education (US) Code

    15 in stock

    Book SynopsisCharles Petzold is also the author of The Annotated Turing: A Guided Tour through Alan Turing's Historic Paper on Computability and the Turing Machine (Wiley, 2008). He wrote a bunch of other books too, but they're mostly about programming applications for Microsoft Windows, and they're all obsolete now. He lives in New York City with his wife, historian and novelist Deirdre Sinnott, and two cats named Honey and Heidi. His website is www.charlespetzold.com.Table of ContentsPreface to the Second Edition Chapter One: Best Friends Chapter Two: Codes and Combinations Chapter Three: Braille and Binary Codes Chapter Four: Anatomy of a Flashlight Chapter Five: Communicating Around Corners Chapter Six: Logic with Switches Chapter Seven: Telegraphs and Relays Chapter Eight: Relays and Gates Chapter Nine: Our Ten Digits Chapter Ten: Alternative 10s Chapter Eleven: Bit by Bit by Bit Chapter Twelve: Bytes and Hexadecimal Chapter Thirteen: From ASCII to Unicode Chapter Fourteen: Adding with Logic Gates Chapter Fifteen: Is This for Real? Chapter Sixteen: But What About Subtraction? Chapter Seventeen: Feedback and Flip-Flops Chapter Eighteen: Let's Build a Clock! Chapter Nineteen: An Assemblage of Memory Chapter Twenty: Automating Arithmetic Chapter Twenty-One: The Arithmetic Logic Unit Chapter Twenty-Two: Registers and Busses Chapter Twenty-Three: CPU Control Signals Chapter Twenty-Four: Loops, Jumps, and Calls Chapter Twenty-Five: Peripherals Chapter Twenty-Six: The Operating System Chapter Twenty-Seven: Coding Chapter Twenty-Eight: The World Brain

    15 in stock

    £23.19

  • The Professional Agile Leader

    Pearson Education (US) The Professional Agile Leader

    Out of stock

    Book SynopsisRon Eringa is a Leadership Developer. His mission is to create organizations where people love to work and where real customer value is created. In the last 20 years he has built expertise on how to lead IT organizations that use Agile and Scrum. After an initial education in electrical engineering and software engineering he ended up in different leadership roles. In these roles he discovered the leadership capabilities that are essential to create autonomous teams with a high level of maturity and creativity. He believes that autonomous teams are the fundament of a modern organization that thrives in this complex and ever-changing world. Kurt Bittner has been delivering working products in short, feedback-driven cycles for nearly 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 emTable of ContentsForeword xi Preface xv Introduction xvii Acknowledgments xxv About the Authors xxvii Chapter 1: An Organization at a Crossroads 1 Complex Challenges Create Urgency for Agility 2 Reducing Dependencies Makes Change Possible 4 Organizational Change Requires Protective, Progressive Dictatorship 10 Two Paths, One Goal 12 Reflections on the Journey 15 Chapter 2: Forming Teams and Discovering Purpose 17 Changing the Organization, One Team at a Time 18 Finding the Right People 22 Empowering Teams 26 Placing the Customer at the Center of the Change 29 Reflections on the Journey 35 Chapter 3: Shifting from Output to Impact 37 "What Gets Measured Gets Done" 38 Reflections on the Journey 53 Chapter 4: Learning to Let Go 55 Empowerment Doesn't Come for Free 56 Agile Leaders Help Teams to Grow Their Ability to Reach Audacious Goals 60 Letting Go in Small Steps 65 Slow Decision-Making Kills Team Self-Management 69 Reflections on the Journey 73 Chapter 5: The Predictable Existential Crisis 75 New Ways of Working Threaten the Old System 76 Reflections on the Journey 97 Chapter 6: Leaders, Everywhere 99 Nurturing and Growing an Agile Organization 100 Reward Building Teams and Leadership, Not Silos 114 Promotional Rewards Lock in Organizational Structures 117 Performance Reviews Don't Go Away, but They Do Change Dramatically 118 Reflections on the Journey 122 Chapter 7: Aligning the Organization 123 Evolving the Operating Model 124 Scale Agility by Removing Dependencies 131 Consolidating Support and Eliminating Opposition 132 Realign Compensation Plans 140 Realign Career Paths 141 Embrace Catalytic Leadership 142 Replace Status Meetings with Transparency 143 Be Realistic About How Long the Transition Will Take, and What It Means 146 Reflections on the Journey 147 Chapter 8: Aligning the Culture 149 What Makes Changing Culture Hard 150 Agile Leaders Must First Find Their Own Way 152 Build Bridges to the New Culture 153 Anticipate and Overcome Setbacks 159 Use "Self-Sustenance" as a Measure of Success 162 Agile Journeys Never Really End 165 Reflections on the Journey 168 Appendix A: Patterns and Anti-Patterns for Effective Leadership 169 Appendix B: Doreen's Sketchnotes 171 Index

    Out of stock

    £23.39

  • Clean Craftsmanship

    Pearson Education (US) Clean Craftsmanship

    15 in stock

    Book SynopsisRobert C. Martin (Uncle Bob) wrote his first line of code at the age of 12 in 1964 and has been employed as a programmer since 1970. He is cofounder of cleancoders.com, offering online video training for software developers, and is founder of Uncle Bob Consulting LLC, offering software consulting, training, and skill development services to major corporations worldwide. He served as the Master Craftsman at 8th Light, Inc., a Chicago-based software consulting firm. Mr. Martin has published dozens of articles in various trade journals, authored many books, and is a regular speaker at international conferences and trade shows.Trade Review"Bob's Clean Craftsmanship has done a great job explaining the purposes of agile technical practices, along with a deep historical basis for how they came into existence, as well as positioning for why they will always be important. His involvement in history and formation of agility, thorough understanding of practices, and their purposes reflect vividly throughout the manuscript." —Tim Ottinger, well-known Agile Coach and author "Bob's writing style is excellent. It is easy to read and the concepts are explained in perfect detail for even a new programmer to follow. Bob even has some funny moments, which pleasantly snap you out of focus. The true value of the book is really in the cry for change, for something better . . . the cry for programmers to be professional . . . the realization that software is everywhere. Additionally, I believe there is a lot of value in all the history Bob provides. I enjoy that he doesn't waste time laying blame for how we got to where we are now. Bob calls people to action, asking them to take responsibility by increasing their standards and level of professionalism, even if that means pushing back sometimes." —Heather Kanser "As software developers, we have to continually solve important problems for our employers, customers, colleagues, and future selves. Getting the app to work, though difficult, is not enough, it does not make you a craftsman. With an app working, you have passed the app-titude test. You may have the aptitude to be a craftsman, but there is more to master. In these pages, Bob expresses clearly the techniques and responsibilities to go beyond the app-titude test and shows the way of the serious software craftsman." —James Grenning, author of Test-Driven Development for Embedded C and Agile Manifesto co-author "Bob's one of the very few famous developers with whom I'd like to work on a tech project. It's not because he's a good developer, famous, or a good communicator; it's because Bob helps me be a better developer and a team member. He has spotted every major development trend, years ahead of others, and has been able to explain its importance, which encouraged me to learn. Back when I started--apart from being honest and a good person--the idea of craftsmanship and ethics was completely missing from this field. Now, it seems to be the most important thing professional developers can learn, even ahead of coding itself. I'm happy to see Bob leading the way again. I can't wait to hear his perspective and incorporate it into my own practice." —Daniel Markham, Principal, Bedford Technology Group, Inc. Table of ContentsForeword xviiPreface xxiAcknowledgments xxviiAbout the Author xxix Chapter 1: Craftsmanship 1Part I: The Disciplines 11 Extreme Programming 13 Test-Driven Development 15 Refactoring 16 Simple Design 17 Collaborative Programming 17 Acceptance Tests 18 Chapter 2: Test-Driven Development 19 Overview 20 The Basics 35 Conclusion 79 Chapter 3: Advanced TDD 81 Sort 1 82 Sort 2 87 Getting Stuck 95 Arrange, Act, Assert 103 Test Doubles 108 Architecture 143 Conclusion 145 Chapter 4: Test Design 147 Testing Databases 148 Testing GUIs 150 Test Patterns 154 Test Design 160 Transformation Priority Premise 184 Conclusion 196 Chapter 5: Refactoring 197 What Is Refactoring? 199 The Basic Toolkit 200 The Disciplines 217 Conclusion 221 Chapter 6: Simple Design 223 YAGNI 226 Covered by Tests 228 Maximize Expression 233 Minimize Duplication 237 Minimize Size 239 Chapter 7: Collaborative Programming 241Chapter 8: Acceptance Tests 245 The Discipline 248 The Continuous Build 249 Part II: The Standards 251 Your New CTO 252 Chapter 9: Productivity 253 We Will Never Ship S**T 254 Inexpensive Adaptability 256 We Will Always Be Ready 258 Stable Productivity 259 Chapter 10: Quality 261 Continuous Improvement 262 Fearless Competence 263 Extreme Quality 264 We Will Not Dump on QA 265 QA Will Find Nothing 266 Test Automation 267 Automated Testing and User Interfaces 268 Testing the User Interface 269 Chapter 11: Courage 271 We Cover for Each Other 272 Honest Estimates 274 You Must Say NO 276 Continuous Aggressive Learning 277 Mentoring 278 Part III: The Ethics 279 The First Programmer 280 Seventy-Five Years 281 Nerds and Saviors 286 Role Models and Villains 289 We Rule the World 290 Catastrophes 291 The Oath 293 Chapter 12: Harm 295 First, Do No Harm 296 Best Work 306 Repeatable Proof 316 Chapter 13: Integrity 327 Small Cycles 328 Relentless Improvement 342 Maintain High Productivity 346 Chapter 14: Teamwork 355 Work as a Team 356 Estimate Honestly and Fairly 358 Respect 372 Never Stop Learning 373 Index 375

    15 in stock

    £30.39

  • Clean Architecture

    Pearson Education (US) Clean Architecture

    15 in stock

    Book SynopsisRobert C. Martin (Uncle Bob) has been a programmer since 1970. He is founder of Uncle Bob Consulting, LLC, and cofounder with his son Micah Martin of The Clean Coders LLC. Martin has published dozens of articles in various trade journals and is a regular speaker at international conferences and trade shows. He has authored and edited many books, including: Designing Object Oriented C++ Applications Using the Booch Method, Patterns Languages of Program Design 3, More C++ Gems, Extreme Programming in Practice, Agile Software Development: Principles, Patterns, and Practices, UML for Java Programmers, Clean Code, and The Clean Coder. A leader in the industry of software development, Martin served for three years as editor-in-chief of the C++ Report, and he served as the first chairman of the Agile Alliance.Table of Contents Foreword xv Preface xix Acknowledgments xxiii About the Author xxv Part I: Introduction 1 Chapter 1: What Is Design and Architecture? 3 The Goal? 4 Case Study 5 Conclusion 12 Chapter 2: A Tale of Two Values 13 Behavior 14 Architecture 14 The Greater Value 15 Eisenhower’s Matrix 16 Fight for the Architecture 18 Part II: Starting with the Bricks: Programming Paradigms 19 Chapter 3: Paradigm Overview 21 Structured Programming 22 Object-Oriented Programming 22 Functional Programming 22 Food for Thought 23 Conclusion 24 Chapter 4: Structured Programming 25 Proof 27 A Harmful Proclamation 28 Functional Decomposition 29 No Formal Proofs 30 Science to the Rescue 30 Tests 31 Conclusion 31 Chapter 5: Object-Oriented Programming 33 Encapsulation? 34 Inheritance? 37 Polymorphism? 40 Conclusion 47 Chapter 6: Functional Programming 49 Squares of Integers 50 Immutability and Architecture 52 Segregation of Mutability 52 Event Sourcing 54 Conclusion 56 Part III: Design Principles 57 Chapter 7: SRP: The Single Responsibility Principle 61 Symptom 1: Accidental Duplication 63 Symptom 2: Merges 65 Solutions 66 Conclusion 67 Chapter 8: OCP: The Open-Closed Principle 69 A Thought Experiment 70 Directional Control 74 Information Hiding 74 Conclusion 75 Chapter 9: LSP: The Liskov Substitution Principle 77 Guiding the Use of Inheritance 78 The Square/Rectangle Problem 79 LSP and Architecture 80 Example LSP Violation 80 Conclusion 82 Chapter 10: ISP: The Interface Segregation Principle 83 ISP and Language 85 ISP and Architecture 86 Conclusion 86 Chapter 11: DIP: The Dependency Inversion Principle 87 Stable Abstractions 88 Factories 89 Concrete Components 91 Conclusion 91 Part IV: Component Principles 93 Chapter 12: Components 95 A Brief History of Components 96 Relocatability 99 Linkers 100 Conclusion 102 Chapter 13: Component Cohesion 103 The Reuse/Release Equivalence Principle 104 The Common Closure Principle 105 The Common Reuse Principle 107 The Tension Diagram for Component Cohesion 108 Conclusion 110 Chapter 14: Component Coupling 111 The Acyclic Dependencies Principle 112 Top-Down Design 118 The Stable Dependencies Principle 120 The Stable Abstractions Principle 126 Conclusion 132 Part V: Architecture 133 Chapter 15: What Is Architecture? 135 Development 137 Deployment 138 Operation 138 Maintenance 139 Keeping Options Open 140 Device Independence 142 Junk Mail 144 Physical Addressing 145 Conclusion 146 Chapter 16: Independence 147 Use Cases 148 Operation 149 Development 149 Deployment 150 Leaving Options Open 150 Decoupling Layers 151 Decoupling Use Cases 152 Decoupling Mode 153 Independent Develop-ability 153 Independent Deployability 154 Duplication 154 Decoupling Modes (Again) 155 Conclusion 158 Chapter 17: Boundaries: Drawing Lines 159 A Couple of Sad Stories 160 FitNesse 163 Which Lines Do You Draw, and When Do You Draw Them? 165 What About Input and Output? 169 Plugin Architecture 170 The Plugin Argument 172 Conclusion 173 Chapter 18: Boundary Anatomy 175 Boundary Crossing 176 The Dreaded Monolith 176 Deployment Components 178 Threads 179 Local Processes 179 Services 180 Conclusion 181 Chapter 19: Policy and Level 183 Level 184 Conclusion 187 Chapter 20: Business Rules 189 Entities 190 Use Cases 191 Request and Response Models 193 Conclusion 194 Chapter 21: Screaming Architecture 195 The Theme of an Architecture 196 The Purpose of an Architecture 197 But What About the Web? 197 Frameworks Are Tools, Not Ways of Life 198 Testable Architectures 198 Conclusion 199 Chapter 22: The Clean Architecture 201 The Dependency Rule 203 A Typical Scenario 207 Conclusion 209 Chapter 23: Presenters and Humble Objects 211 The Humble Object Pattern 212 Presenters and Views 212 Testing and Architecture 213 Database Gateways 214 Data Mappers 214 Service Listeners 215 Conclusion 215 Chapter 24: Partial Boundaries 217 Skip the Last Step 218 One-Dimensional Boundaries 219 Facades 220 Conclusion 220 Chapter 25: Layers and Boundaries 221 Hunt the Wumpus 222 Clean Architecture? 223 Crossing the Streams 226 Splitting the Streams 227 Conclusion 228 Chapter 26: The Main Component 231 The Ultimate Detail 232 Conclusion 237 Chapter 27: Services: Great and Small 239 Service Architecture? 240 Service Benefits? 240 The Kitty Problem 242 Objects to the Rescue 244 Component-Based Services 245 Cross-Cutting Concerns 246 Conclusion 247 Chapter 28: The Test Boundary 249 Tests as System Components 250 Design for Testability 251 The Testing API 252 Conclusion 253 Chapter 29: Clean Embedded Architecture 255 App-titude Test 258 The Target-Hardware Bottleneck 261 Conclusion 273 Part VI: Details 275 Chapter 30: The Database Is a Detail 277 Relational Databases 278 Why Are Database Systems So Prevalent? 279 What If There Were No Disk? 280 Details 281 But What about Performance? 281 Anecdote 281 Conclusion 283 Chapter 31: The Web Is a Detail 285 The Endless Pendulum 286 The Upshot 288 Conclusion 289 Chapter 32: Frameworks Are Details 291 Framework Authors 292 Asymmetric Marriage 292 The Risks 293 The Solution 294 I Now Pronounce You … 295 Conclusion 295 Chapter 33: Case Study: Video Sales 297 The Product 298 Use Case Analysis 298 Component Architecture 300 Dependency Management 302 Conclusion 302 Chapter 34: The Missing Chapter 303 Package by Layer 304 Package by Feature 306 Ports and Adapters 308 Package by Component 310 The Devil Is in the Implementation Details 315 Organization versus Encapsulation 316 Other Decoupling Modes 319 Conclusion: The Missing Advice 321 Part VII: Appendix 323 Appendix A Architecture Archaeology 325 Index 375

    15 in stock

    £28.49

  • Pragmatic Programmer The

    Pearson Education (US) Pragmatic Programmer The

    15 in stock

    Book SynopsisDave Thomas and Andy Hunt are internationally recognized as leading voices in the software development community. They consult and speak around the world. Together, they founded the Pragmatic Bookshelf, publishing award-winning, leading-edge books for software developers. They were two of the authors of the Agile Manifesto. Dave currently teaches college, turns wood, and plays with new technology and paradigms. Andy writes science fiction, is an active musician, and loves to tinker with technology. But, most of all, they're both driven to keep learning.Trade Review"To participate in the next generation of professional product delivery you have to be pragmatic but disciplined. Otherwise, you are fated to be ungrounded dreamers whose products endanger people and whose ideas never become successfully integrated into the world. Andy and Dave described a pragmatic but disciplined approach which is a key step towards professionalism."–Ken Schwaber, co-creator of Scrum and founder of Scrum.org, agile manifesto signatory, and author of Software in 30 Days. "Picking adjectives is hard work. In The Pragmatic Programmer, Dave and Andy set the tone for their work–thoughtful, expert, aspirational, and full of care for themselves and those they touch through their programs. From its publication, this was the book to read if you wanted to work to improve."–Kent Beck, Gusto, author of Extreme Programming Explained: Embrace Change, Test-Driven Development: By Example, and The Smalltalk Best Practice Patterns "Some say that with The Pragmatic Programmer, Andy and Dave captured lightning in a bottle; that it’s unlikely anyone will soon write a book that can move an entire industry as it did. Sometimes, though, lightning does strike twice, and this book is proof. The updated content ensures that it will stay at the top of “best books in software development” lists for another 20 years, right where it belongs." —VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks "If you want your software to be easy to modernize and maintain, keep a copy of The Pragmatic Programmer close. It’s filled with practical advice, both technical and professional, that will serve you and your projects well for years to come." —Andrea Goulet, CEO, Corgibytes; Founder, LegacyCode.Rocks " The Pragmatic Programmer is the one book I can point to that completely dislodged the existing trajectory of my career in software and pointed me in the direction of success. Reading it opened my mind to the possibilities of being a craftsman, not just a cog in a big machine. One of the most significant books in my life." —Obie Fernandez, Author, The Rails Way "First-time readers can look forward to an enthralling induction into the modern world of software practice, a world that the first edition played a major role in shaping. Readers of the first edition will rediscover here the insights and practical wisdom that made the book so significant in the first place, expertly curated and updated, along with much that’s new." —David A. Black, Author, The Well-Grounded Rubyist "I have an old paper copy of the original Pragmatic Programmer on my bookshelf. It has been read and re-read and a long time ago it changed everything about how I approached my job as a programmer. In the new edition everything and nothing has changed: I now read it on my iPad and the code examples use modern programming languages—but the underlying concepts, ideas, and attitudes are timeless and universally applicable. Twenty years later, the book is as relevant as ever. It makes me happy to know that current and future developers will have the same opportunity to learn from Andy and Dave’s profound insights as I did back in the day." —Sandy Mamoli, Agile coach; Author of How Self-Selection Lets People Excel Table of ContentsForeword xiPreface to the Second Edition xvFrom the Preface to the First Edition xix Chapter 1: A Pragmatic Philosophy 1 Topic 1. It's Your Life 2 Topic 2. The Cat Ate My Source Code 3 Topic 3. Software Entropy 6 Topic 4. Stone Soup and Boiled Frogs 8 Topic 5. Good-Enough Software 11 Topic 6. Your Knowledge Portfolio 14 Topic 7. Communicate! 20 Chapter 2: A Pragmatic Approach 27 Topic 8. The Essence of Good Design 28 Topic 9. DRY–The Evils of Duplication 30 Topic 10. Orthogonality 39 Topic 11. Reversibility 47 Topic 12. Tracer Bullets 51 Topic 13. Prototypes and Post-it Notes 56 Topic 14. Domain Languages 60 Topic 15. Estimating 66 Chapter 3: The Basic Tools 73 Topic 16. The Power of Plain Text 74 Topic 17. Shell Games 78 Topic 18. Power Editing 81 Topic 19. Version Control 84 Topic 20. Debugging 88 Topic 21. Text Manipulation 97 Topic 22. Engineering Daybooks 100 Chapter 4: Pragmatic Paranoia 103 Topic 23. Design by Contract 104 Topic 24. Dead Programs Tell No Lies 112 Topic 25. Assertive Programming 115 Topic 26. How to Balance Resources 118 Topic 27. Don’t Outrun Your Headlights 125 Chapter 5: Bend, or Break 129 Topic 28. Decoupling 130 Topic 29. Juggling the Real World 137 Topic 30. Transforming Programming 147 Topic 31. Inheritance Tax 159 Topic 32. Configuration 167 Chapter 6: Concurrency 171 Topic 33. Breaking Temporal Coupling 172 Topic 34. Shared State Is Incorrect State 176 Topic 35. Actors and Processes 183 Topic 36. Blackboards 189 Chapter 7: While You Are Coding 195 Topic 37. Listen to Your Lizard Brain 196 Topic 38. Programming by Coincidence 201 Topic 39. Algorithm Speed 207 Topic 40. Refactoring 213 Topic 41. Test to Code 218 Topic 42. Property-Based Testing 228 Topic 43. Stay Safe Out There 235 Topic 44. Naming Things 242 Chapter 8: Before the Project 249 Topic 45. The Requirements Pit 250 Topic 46. Solving Impossible Puzzles 258 Topic 47. Working Together 262 Topic 48. The Essence of Agility 265 Chapter 9: Pragmatic Projects 269 Topic 49. Pragmatic Teams 270 Topic 50. Coconuts Don’t Cut It 276 Topic 51. Pragmatic Starter Kit 280 Topic 52. Delight Your Users 287 Topic 53. Pride and Prejudice 288 Postface 291 Bibliography 295Possible Answers to the Exercises 299Index 313

    15 in stock

    £33.99

  • Strategic Monoliths and Microservices

    Pearson Education (US) Strategic Monoliths and Microservices

    Out of stock

    Book SynopsisVaughn Vernon is a champion of simplifying software architecture and development, with an emphasis on reactive methods. He has a unique ability to teach and lead with Domain-Driven Design using lightweight tools to unveil unimagined value. He helps organizations achieve competitive advantages using enduring tools such as architectures, patterns, and approaches, and through partnerships between business stakeholders and software developers. Tomasz Jaskula has 20 years of professional experience as a developer, software architect, team leader, trainer, and technical conference speaker. An IDDD Workshop trainer in both French and Polish, he founded Paris Domain-Driven Design and F# user groups. Jaskula's company, Luteceo (luteceo.fr), spreads good software and architecture practices based on Domain-Driven Design and software craftsmanship. He previously worked for many companies in e-commerce, industry, insurance, and finance, gaining deep experTrade Review"Most books address either the business of software or the technical details of building software. Strategic Monoliths and Microservices provides a comprehensive approach to blending the needs of business and technology in an approachable way. It also dispels many of today's myths while offering practical guidance that any team or organization can apply immediately and with confidence." --James Higginbotham, Executive API Consultant, Founder of LaunchAny, and author of Principles of Web API Design "Digital Transformation cannot succeed as a 'grass roots' effort. Vaughn and Tomasz offer C-level execs a roadmap to software excellence that includes establishing the culture necessary to foster and sustain software innovation. Written with real-world understanding, Vaughn and Tomasz help the reader to appreciate that moving software development from a cost center to a profit center involves tradeoffs that need not sacrifice innovation. A must-read for decision makers." --Tom Stockton, Principal Architect, MAXIMUS "In this book, Vaughn Vernon and Tomasz Jaskuła use their extensive experience with DDD to present a comprehensive guide to using the many different aspects of DDD for modern systems development and modernization. It will be a valuable guide for many technical leaders who need to understand how to use DDD to its full potential." --Eoin Woods, software architect and author "There are common misconceptions and roots of failure around software engineering. One notable example is neglecting the rugged trek towards digital transformation. Such an endeavor comprises breakthrough innovations, failure culture, emphasis on the role of software architecture, as well as on the importance of efficient and effective inter-human communication. Fortunately, the authors offer the necessary help for mastering all hurdles and challenges. What I like most about this book is the holistic view it provides to all stakeholders involved in digital transformation and innovation. Vaughn Vernon and Tomasz Jaskuła introduce a clear path to successful innovation projects. They provide insights, tools, proven best practices, and architecture styles both from the business and engineering viewpoint. Their book sheds light on the implications of digital transformation and how to deal with them successfully. This book deserves to become a must-read for practicing software engineers, executives, as well as senior managers. It will always serve me as a precious source of guidance and as a navigator whenever I am entering uncharted territories." --Michael Stal, Certified Senior Software Architect, Siemens Technology "Digital transformation is a much used but little understood concept. This book provides valuable insight into this topic and how to leverage your existing assets on the journey. Modern technical and social techniques are combined in the context of a single case study. Compelling reading for both business and technology practitioners." --Murat Erder, co-author of Continuous Architecture in Practice (2021) and Continuous Architecture (2015) "Packed with insightful recommendations for every executive leader seeking clarity on the distinction between when to strategically apply a monolith vs. microservice architectural approach for success. Highly encourage every CEO, CIO, CTO, and (S)VP of Software Development to start here with immersing themselves in Vaughn and Tomasz's succinct distillation of the advantages, disadvantages, and allowance for a hybrid combination, and then go become a visionary thought leader in their respective business domain." --Scott P. Murphy, Principal Architect, Maximus, Inc. "A 'must-read' for Enterprise leaders and architects who are planning for or executing a digital transformation! The book is a true guide for ensuring your enterprise software innovation program is successful." --Chris Verlaine, DHL Express Global Aviation IT DevOps Director, Head of DHL Express Global Aviation IT Software Modernization Program " Strategic Monoliths and Microservices is a great resource to connect business value to an evolvable enterprise architecture. I am impressed with how the authors use their deep understanding and experience to guide informed decisions on the modularization journey. Along the way every valuable tool and concept is explained and properly brought into context. Definitely a must-read for IT decision makers and architects. For me this book will be an inspiring reference and a constant reminder to seek the purpose in architecture. The Microservices discussion has reached a completely new maturity level." --Christian Deger, Head of Architecture and Platform at RIO | The Logistics Flow, organizer of over 60 Microservices Meetups "The choice of microservices or monoliths architecture goes far beyond technology. The culture, organization, and communication that exist within a company are all important factors that a CTO must consider carefully in order to successfully build digital systems. The authors explain this extremely well from various perspectives and based on very interesting examples." --Olivier Ulmer, CTO, Groupe La Française "Building a technology engine to move quickly, experiment, and learn is a competitive advantage in today's digital world. Will ' de-jour architecture' help with this endeavor? This amazing book by Vaughn and Tomasz fills a void in the market and re-focuses on the core objectives of software architecture: move fast, experiment, focus on the outcomes that bring value. A reader will come away better suited to decide whether microservices architecture and all the complexity with it is right for them." --Christian Posta, Global Field CTO, Solo.io Table of ContentsForeword xiiiPreface xviiAcknowledgments xxvAbout the Authors xxxi Part I: Transformational Strategic Learning through Experimentation 1 Executive Summary 3 Chapter 1: Business Goals and Digital Transformation 7 Digital Transformation: What Is the Goal? 8 Why Software Goes Wrong 11 Your Enterprise and Conway's Law 18 (Re)Thinking Software Strategy 24 Are Monoliths Bad? 30 Are Microservices Good? 31 Don't Blame Agile 34 Getting Unstuck 36 Summary 37 References 38 Chapter 2: Essential Strategic Learning Tools 39 Making Decisions Early and Late, Right and Wrong 40 Culture and Teams 43 Modules First 51 Deployment Last 55 Everything in Between 57 Where Is Your Spaghetti and How Fast Does It Cook? 70 Strategic Architecture 70 Applying the Tools 72 Summary 75 References 75 Chapter 3: Events-First Experimentation and Discovery 77 Commands and Events 78 Rapid Learning with EventStorming 81 Applying the Tools 92 Summary 99 References 100 Part II: Driving Business Innovation 101 Executive Summary 103 Chapter 4: Reaching Domain-Driven Results 109 Domains and Subdomains 111 Summary 115 References 116 Chapter 5: Contextual Expertise 117 Bounded Context and Ubiquitous Language 117 Core Domain 121 Supporting Subdomains, Generic Subdomains, and Technical Mechanisms 123 Business Capabilities and Contexts 125 Not Too Big, Not Too Small 128 Summary 129 References 130 Chapter 6: Mapping, Failing, and Succeeding--Choose Two 131 Context Mapping 131 Topography Modeling 151 Ways to Fail and Succeed 154 Applying the Tools 158 Summary 163 References 164 Chapter 7: Modeling Domain Concepts 165 Entities 166 Value Objects 167 Aggregates 168 Domain Services 169 Functional Behavior 170 Applying the Tools 173 Summary 173 References 174 Part III: Events-First Architecture 175 Executive Summary 177 Chapter 8: Foundation Architecture 181 Architectural Styles, Patterns, and Decision Drivers 183 Quality Attributes 196 Applying the Tools 206 Summary 207 References 208 Chapter 9: Message- and Event-Driven Architectures 211 Message- and Event-Based REST 216 Event-Driven and Process Management 220 Event Sourcing 223 CQRS 227 Serverless and Function as a Service 229 Applying the Tools 231 Summary 231 References 232 Part IV: The Two Paths for Purposeful Architecture 233 Executive Summary 235 Chapter 10: Building Monoliths Like You Mean It 239 Historical Perspective 241 Right from the Start 244 Right from Wrong 253 Keeping It Right 264 Summary 265 References 266 Chapter 11: Monolith to Microservices Like a Boss 267 Mental Preparation with Resolve 267 Modular Monolith to Microservices 271 Big Ball of Mud Monolith to Microservices 275 Unplugging the Legacy Monolith 286 Summary 287 References 288 Chapter 12: Require Balance, Demand Strategy 289 Balance and Quality Attributes 289 Strategy and Purpose 291 Conclusion 297 References 298 Index 299

    Out of stock

    £26.99

  • Learn PowerShell in a Month of Lunches: Covers

    Manning Publications Learn PowerShell in a Month of Lunches: Covers

    15 in stock

    Book Synopsis"Not only for MacOS and Linux users, but also a great resource for Windows PS users." - Bruce Bergman Learn PowerShell in a Month of Lunches: Covers Windows, Linux, and macOS is a task-focused tutorial for administering Linux and macOS systems using Microsoft PowerShell. Adapted by PowerShell team members Travis Plunk and Tyler Leonhardt from the bestselling Learn Windows PowerShell in a Month of Lunches by community legends Don Jones and Jeffrey Hicks, it features Linux-based examples covering core language features and admin tasks. Designed for busy IT professionals, this innovative guide will take you from the basics to PowerShell proficiency through 25 tutorials you can do in your lunch break. about the technologyThe PowerShell scripting language and administrative shell was initially created for Windows, providing a high-quality command-line interface and awesome automation features. As part of Microsoft's ongoing strategy to support non-Windows platforms with its Azure cloud service and .NET Core framework, PowerShell now runs on Linux and macOS. Like Bash, PowerShell can execute and script nearly any aspect of Linux, so you can easily manage repetitive daily tasks, servers, Cloud resources, Continuous Integration pipelines, and more. Because PowerShell is a full-featured programming language, however, it provides capability well beyond traditional shell scripting languages, such as the ability to treat OS components as objects. about the bookLearn PowerShell in a Month of Lunches: Covers Windows, Linux, and macOS is a user-friendly tutorial to managing Linux and macOS systems with PowerShell. It's based on the bestselling Learn Windows PowerShell in a Month of Lunches, which has introduced PowerShell to nearly 100,000 readers. You'll learn how PowerShell shapes up to Bash or Python scripting as you write and run simple scripts that automate boring daily tasks. As you progress through the book, you'll use PowerShell to write Continuous Integration Pipelines and manage cloud-based servers. Just set aside one hour a day for a month, and you'll be automating tasks faster than you ever thought possible! what's inside- Why you should use PowerShell on Linux and macOS- Background jobs and automation techniques- Simple scripting to automate repetitive daily tasks- Common syntax and commands cheat sheet- Each lesson takes you an hour or less about the readerFor IT professionals comfortable administering Windows or Linux. No previous experience with PowerShell or Bash required. about the authorTravis Plunk has been a Software Engineer on various PowerShell teams since 2013, and at Microsoft since 1999. He was involved in open sourcing PowerShell and has worked on the project full time since shortly after the project was announced. James Petty is a Microsoft MVP, and the CEO and Executive Director for the DevOps Collective and PowerShell.org. Tyler Leonhardt has been a Software Engineer on the PowerShell team since 2017, and at Microsoft since 2016. He is a core maintainer of the PowerShell extension for Visual Studio Code. Learn Windows PowerShell in a Month of Lunches was written by PowerShell community legends Don Jones and Jeffrey Hicks, who have years of experience as successful PowerShell trainers.Trade Review“Notonly for MacOS and Linux users, but also a great resource for Windows PS users.” Bruce Bergman “Gives developers a lot of insight on how PowerShell works and how to accomplish everyday tasks.” Marcel van den Brink “This book enabled me to quickly get using PowerShell for real-lifetasks.” Rick Michaels “The book is great, especially if you have no previous experience with PowerShell, tasks automation, or DevOps.” Max Almonte “Approaches PowerShell from a building block like perspective.” FosterHaines “Unlike other PowerShell type books, this book expands beyond just Windows environments to accommodate those on Mac or Linux platforms who may want to explore this area as well.” James Matlock

    15 in stock

    £28.79

  • Programming

    Pearson Education Programming

    Out of stock

    Book SynopsisBjarne Stroustrup is the designer and original implementer of C++, as well as the author of The C++ Programming Language (4th Edition), A Tour of C++ (3rd edition), Programming: Principles and Practice Using C++ (3rd Edition), and many popular and academic publications. He is a professor of Computer Science at Columbia University in New York City. Dr. Stroustrup is a member of the US National Academy of Engineering, and an IEEE, ACM, and CHM fellow. He received the 2018 Charles Stark Draper Prize, the IEEE Computer Society's 2018 Computer Pioneer Award, and the 2017 IET Faraday Medal.

    Out of stock

    £73.01

  • Become an Effective Software Engineering Manager:

    The Pragmatic Programmers Become an Effective Software Engineering Manager:

    3 in stock

    Book SynopsisSoftware startups make global headlines every day. As technology companies succeed and grow, so do their engineering departments. In your career, you'll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you're doing it right? What does "it" even mean? And isn't management a dirty word? This book will share the secrets you need to know to manage engineers successfully. Going from engineer to manager doesn't have to be intimidating. Engineers can be managers, and fantastic ones at that. Cast aside the rhetoric and focus on practical, hands-on techniques and tools. You'll become an effective and supportive team leader that your staff will look up to. Start with your transition to being a manager and see how that compares to being an engineer. Learn how to better organize information, feel productive, and delegate, but not micromanage. Discover how to manage your own boss, hire and fire, do performance and salary reviews, and build a great team. You'll also learn the psychology: how to ship while keeping staff happy, coach and mentor, deal with deadline pressure, handle sensitive information, and navigate workplace politics. Consider your whole department. How can you work with other teams to ensure best practice? How do you help form guilds and committees and communicate effectively? How can you create career tracks for individual contributors and managers? How can you support flexible and remote working? How can you improve diversity in the industry through your own actions? This book will show you how. Great managers can make the world a better place. Join us.

    3 in stock

    £35.14

  • An Elementary Introduction to the Wolfram

    Wolfram Media Inc An Elementary Introduction to the Wolfram

    15 in stock

    Book Synopsis

    15 in stock

    £21.21

  • Kill It With Fire: Managing Aging Computer

    No Starch Press,US Kill It With Fire: Managing Aging Computer

    15 in stock

    Book SynopsisThe Legacy Apocalypse is upon us and business, community, and political leaders at all levels need this timely and thoughtful book from a superstar in the field. Aging computer systems present complex technical challenges for organisations both large and small, and Kill It with Fire provides sound strategies for spearheading modernisation efforts. Kill It with Fire examines ageing computer systems, the evolution of technology over time, and how organisations can modernise, maintain, and future-proof their current systems.Trade Review"A valuable addition to the literature on the topic, particularly for managers and senior contributors . . . Kill it With Fire is a useful and highly readable guide to solving these problems by leveraging the organization—the system around the system."—Laura Nolan, USENIX"Modernizing legacy systems is an increasingly common task for software developers. Kill It with Fire guides you through the ins and outs of these endeavors in an engaging way, diving into both the technical and social aspects that are crucial to making you successful when undertaking modernization projects." –Damian Schenkelman, Principal Engineer, Auth0"Kill It With Fire is incredibly well timed. For those alarmed by the provocative title, rest assured the only thing Bellotti advocates torching is the notion of torching itself. And while the book is written for technical leadership, her wisdom is something many nontechnical government leaders need to hear right now, lest they fall prey to the gaggle of advisers saying things like 'we just need to get them off the mainframe.' . . . Bellotti’s book could not have come at a better time, and while there are other factors in this equation, she outlines some of the most important." —Jennifer Pahlka, OneZero"When it comes to the right processes and thought patterns for successfully dealing with legacy systems, Bellotti's remarks are worth their weight in gold."—Peter Schmitz, Heise Media"A most excellent book for both engineers and managers alike."—Michael Simons, @rotnroll666"I am RIDICULOUSLY EXCITED to read this book!"—Katie Sylor-Miller, @ksylorTable of ContentsIntroductionChapter 1: Time Is a Flat CircleChapter 2: Cannibal CodeChapter 3: Evaluating Your ArchitectureChapter 4: Why Is It Hard?Chapter 5: Building and Protecting MomentumChapter 6: Coming in MidstreamChapter 7: Design and DestinyChapter 8: Breaking ChangesChapter 9: How to FinishChapter 10: Future-ProofingConclusion

    15 in stock

    £16.14

  • Enterprise Integration Patterns

    Pearson Education (US) Enterprise Integration Patterns

    3 in stock

    Book SynopsisGregor Hohpe leads the enterprise integration practice at ThoughtWorks, Inc., a specialized provider of application development and integration services. Drawing from his extensive experience designing and implementing integration solutions for enterprise clients, Gregor has published a number of papers and articles presenting a no-hype view on enterprise integration, Web services, and Service-Oriented Architectures. He is a frequent speaker at technical conferences around the world. Bobby Woolf is coauthor of The Design Patterns Smalltalk Companion (Addison-Wesley, 1998), and author of articles in IBM DeveloperWorks, Java Developer's Journal, and elsewhere. He has been a tutorial presenter at OOPSLA, JavaEdge, and Smalltalk Solutions, among other conferences. 0321200683AB09122003Table of Contents 1. Solving Integration Problems Using Patterns 2. Integration Styles 3. Messaging Systems 4. Messaging Channels 5. Message Construction 6. Interlude: Simple Messaging 7. Message Routing 8. Message Transformation 9. Interlude: Composed Messaging 10. Messaging Endpoints 11. System Management 12. Interlude: System Management Example 13. Integration Patterns in Practice 14. Concluding Remarks

    3 in stock

    £46.79

  • Practical Product Management for Product Owners

    Pearson Education (US) Practical Product Management for Product Owners

    15 in stock

    Book SynopsisChris Lukassen has been active in product management for 20+ years, and co-created Scrum.org's Professional Scrum Product Owner - Advanced course. He currently trains product managers in Scrum, leadership, user experience, and metrics. Robbin Schuurman is a product leader, consultant, Professional Scrum Trainer, and leader of Xebia's Product Management Academy. He supports organizations in digital, agile, and product transformations; and helps product owners grow customer impact, improve agility, and shorten time-to-learn. Lukassen and Schuurman co-founded The Value Maximizers.Table of ContentsForeword by Dave West xvii Introduction xxi Part I. The Stances of the Product Owner 1 Chapter 1. Agile Product Management 3 Is It Product Owner or Product Manager? 3 What Is Product Management? 4 Working in a Product-Led, Sales-Led, or Marketing-Led Organization 6 What Is a Product Owner? 7 Different Types of Product Owners 9 Chapter 2. Introducing the Product Owner Stances 3 The Misunderstood Stances of a Product Owner 17 The Preferred Stances of a Product Owner 27 Part I Summary 35 Part II. The Customer Representative 37 Chapter 3. How to Identify and Define Product 39 Introducing the Customer Representative 39 What Is a Product? 43 Chapter 4. Building Customer Empathy 49 Talking to Customers 49 Observing Customers 49 Effectively Dealing with Biases When Collaborating with Customers 51 Chapter 5. Capture Your Customer Insights Via Personas 55 User Personas 55 Creating Personas 56 Chapter 6. Identifying and Expressing Customer Value 61 The Functional Elements of Value 63 Emotional Elements of Value 64 Life-Changing Elements of Value 64 Social-Impact Element of Value 65 Chapter 7. Connecting Product Features to Outcomes and Impacts 67 Connecting Goals, Impacts, Outcomes, and Features 68 Part II Summary 73 Part III. The Visionary 77 Chapter 8. Creating and Communicating Product Vision 79 Introducing: The Visionary 79 Connecting the Product Vision to the Company Mission, Vision, and Values 83 A Product Vision Aligned with the Company Mission and Vision 87 Elements of an Inspiring Product Vision 90 Chapter 9. Communicating the Product Vision Effectively 93 The 3x3 Storytelling Framework 95 The Power of Reasoning 99 Make It SEXI 100 Chapter 10. Crafting Product Goals That Align Stakeholders and Teams 103 What Is a Product Goal? 104 Characteristics of Great Product Goals 106 How to Create Product Goals 108 Inspect and Adapt Product Goals 109 Having Multiple Product Goals: Is That an Option? 110 Chapter 11. Creating the Right Product Roadmap for Your Audience 113 Introduction to Product Roadmaps 113 Types of Product Roadmaps 117 Roadmap 1: The Goal-Oriented Roadmap 118 Roadmap 2: The Now-Next-Later Roadmap 120 Roadmap 3: The User Story Map 122 Roadmap 4: The Visual Roadmap 124 Roadmap 5: The Gantt Chart Roadmap 126 Eleven Tips for Roadmap Creation 128 Chapter 12. Identification of Company Value and Impact 131 Understanding Company Value and Impact 131 Expressing Company Impact 137 Key Value Area 1: Current Value 139 Key Value Area 2: Unrealized Value 141 Key Value Area 3: Time to Market 145 Key Value Area 4: Ability to Innovate 147 Chapter 13. Maximizing Value through Effective Pricing Strategies and Tactics 151 Introduction to Product Pricing 151 The Product Pricing Process 153 Part III Summary 165 Part IV. The Experimenter 169 Chapter 14. Driving Inside-Out Product Innovation 171 Introducing: The Experimenter 171 Inside-Out Innovation Sources 175 Chapter 15. Driving Outside-In Product Innovation 183 Outside-In Innovation Sources 183 Market Segmentation 184 Chapter 16. Thinking Differently: Driving Business Model Innovation 189 Market Analysis and Trends 189 Getting Inspiration from Other Companies 191 The Impact on Your Business 196 The Return of the Business Model Canvas 197 Chapter 17. Selecting Product Experiments to Run 199 The Truth Curve: Select the Right Experiments and Tests 199 Experimentation Techniques Explained 203 Chapter 18. How to Design and Evaluate Experiments and Tests 215 Defining Hypothesis 216 Capture Learnings 218 Chapter 19. Approaches for Scaling Successful Products and Teams 221 Scaling Approaches for People and Teams 221 Typical Antipattern for Scaling People and Teams 224 A Better Approach for Scaling People and Teams 227 Approaches to Scaling the Product or Service 229 Focus on the Product First, Then on People and Teams 230 Eight Effective Strategies for Scaling a Product 232 How Product Owners Contribute to Product Scaling 235 Part IV Summary 237 Part V. The Decision Maker 241 Chapter 20. Improving Accountability, Maturity, and Authority 243 Introducing: The Decision Maker 243 Chapter 21. Evaluating Your Product Decisions 255 Product Management: A Game of Poker or Chess? 255 Evaluating Decisions in an Honest and Transparent Way 258 Chapter 22. Make Better Decisions: Thinking in Bets 259 The Buddy System or Decision Pod 260 Accepting Uncertainty in Decision Making 261 Chapter 23. Navigating Product, Process, and Team Dilemmas and Decisions 263 Making Choices 263 Navigating Dilemmas 265 Chapter 24. Improving the Speed and Quality of Decisions 269 The Cost of Delaying Decisions 269 Fast Decisions Are More Successful than Slow Decisions 270 Special Snowflake Syndrome 273 Why You Should Probably Make Decisions Fast(er) 274 How to Speed Up Your Decision Making 274 Empowered Product Owners 275 Part V Summary 277 Part VI. The Collaborator 281 Chapter 25. How Agile Governance Affects Product Owners 283 Introduction to the Collaborator 283 Introducing Agile Governance 287 Organizational Governance Entails Many Elements 291 Effectively Dealing with Governance 295 Chapter 26. Product Budgeting Done in an Agile Way 297 Three Horizons 298 Budgeting Is Like Product Backlog Management 300 A Strategy and Market Perspective on Budgeting 304 Chapter 27. Creating Contracts That Enable Great Product Ownership and Teamwork 309 What Is a Contract? 310 Who Takes the Risk? 313 Two-Stage Contracts 314 Joe's Bucket 316 Money for Nothing 317 Change for Free 318 Elements of an Agile Contract 319 Part VI Summary 323 Part VII. The Influencer 327 Chapter 28. Stakeholder Management in Complex Environments 329 Introducing: The Influencer 329 Definition of Stakeholder 333 Stakeholder Classification/Categorization 335 Information and Insights to Gather on Stakeholders 338 The Influence of the Stakeholder 340 Chapter 29. Tools for Stakeholder Classification and Grouping 343 The Stakeholder Map 344 The Stakeholder Radar 351 Alternative Stakeholder Identification and Grouping Techniques 357 Chapter 30. Applying Stakeholder Management Strategies and Tactics in Practice 359 Creating a Communication Strategy 359 Tips for Improving Your Stakeholder Management in Practice 362 Chapter 31. How to Influence Stakeholders on All Levels 369 Being a Lyrebird 369 The Process of Communication 371 Four Layers of Communication 374 Building Relationships with Stakeholders 375 Adapting Your Tune to Your Audience 382 Chapter 32. Mastering the Art of No to Optimize Value Creation for the Product 387 What Makes Saying No So Hard? 388 Five Steps toward Saying No Effectively 389 The Jedi Mind Trick 392 Chapter 33. Negotiating With Stakeholders, Customers, and Users 393 Be a Mirror 394 Label Emotions 395 Getting to Yes! 396 How to Tell If a Yes Is Real 398 Bend Their Reality 398 Create the Illusion of Control 400 Guarantee Execution 400 Bargain Hard 401 Find the Black Swan 402 Part VII Summary 405 Closing Summary 409 Index 413

    15 in stock

    £26.99

  • The Big Book Of Small Python Projects: 81 Easy

    No Starch Press,US The Big Book Of Small Python Projects: 81 Easy

    3 in stock

    Book SynopsisThe 100+ short, complete Python programmes in this book are designed to help beginning-to-intermediate Python programmers broaden their skills by providing a diverse set of coding examples they can study, emulate, and draw inspiration from. The programmes range from classic card and board games and mazes, to maths and probability demos, and mad libs. The author includes the complete code for each programme, as well as commentary and suggestions for how to modify and experiment with code.Trade Review"I've always been impressed by the variety of simple, but interesting and fun, projects Al can come up with and this collection takes that to the next level. . . . Even experienced coders are likely to be pulled into browsing through the wide variety that Al has put into this book." —Naomi Ceder, Fellow of the Python Software Foundation"Al Sweigart presents fun programs, inspiring learners to tweak them. That's how I learned to program: tinkering with examples from books and magazines. It works!" –Luciano Ramalho, Technical Principal at ThoughtWorks and author of Fluent Python"Whether you're new to Python or want to exercise your coding brain, I recommend The Big Book of Small Python Projects to spark your thinking. Both the 'big' and the 'small' in the title are accurate. There are a lot of projects in this book, but most code takes up only a page or two. That makes it a fun reference book to get you into the flow or kick off a session in your terminal."—Adam DuVander, Founder, EveryDeveloper"This book is excellent for beginners to Python and a great reference book for programmers who are well versed in programming. I'm happy to give this book 5 out of 5 stars!"—Greg Walters, Full Circle Magazine"This book is packed with fun and easy programs, I can confirm." —BC Gain, @bcamerongain

    3 in stock

    £30.39

  • Black Hat Python, 2nd Edition: Python Programming

    No Starch Press,US Black Hat Python, 2nd Edition: Python Programming

    3 in stock

    Book SynopsisWhen it comes to creating powerful and effective hacking tools, Python is the language of choice for most security analysts. But just how does the magic happen? In Black Hat Python, the latest from Justin Seitz (author of the best-selling Gray Hat Python), you ll explore the darker side of Python s capabilities writing network sniffers, manipulating packets, infecting virtual machines, creating stealthy trojans, and more. You ll learn how to: Create a trojan command-and-control using GitHub Detect sandboxing and automate comèmon malware tasks, like keylogging and screenshotting Escalate Windows privileges with creative process control Use offensive memory forensics tricks to retrieve password hashes and inject shellcode into a virtual machine Extend the popular Burp Suite web-hacking tool Abuse Windows COM automation to perform a man-in-the-browser attack Exfiltrate data from a network most sneakily Insider techniques and creative challenges throughout show you how to extend thTrade Review“Black Hat Python is a fun read written by experts with years of experience who are willing to share the secrets they have learned along the way. While It might not immediately turn you into a super stunt hacker like me, it will certainly get you started down the correct path.” (from the foreword)—Charlie Miller, Security Researcher"This book breaks down how to create powerful tools using Python like network sniffers or keyloggers. This book even goes over how to escalate privileges in Windows."—Davin Jackson, Alpha Cyber Security, Books to Start Your Penetration Testing Journey"An essential resource for anyone involved in offensive security or looking to improve their Python programming skills. Its comprehensive coverage, practical examples, and step-by-step instructions make it an invaluable tool for anyone looking to become a skilled hacker or penetration tester." —InfoSecNoobs.comPraise for the first edition of Black Hat Python"Another incredible Python book. With a minor tweak or two many of these programs will have at least a ten year shelf life, and that is rare for a security book."—Stephen Northcutt, founding president of the SANS Technology Institute"A great book using Python for offensive security purposes."—Andrew Case, Volatility core developer and coauthor of The Art of Memory Forensics"If you truly have a hacker’s mindset, a spark is all you need to make it your own and do something even more amazing. Justin Seitz offers plenty of sparks."—Ethical Hacker "Whether you're interested in becoming a serious hacker/penetration tester or just want to know how they work, this book is one you need to read. Intense, technically sound, and eye-opening."—Sandra Henry-Stocker, IT World "Definitely a recommended read for the technical security professional with some basic previous exposure to Python."—Richard Austin, IEEE Cipher"A well-written book that will put you on track to being able to write powerful and potentially scary tools. It’s up to you to use them for good."—Steve Mansfield-Devine, editor of Elsevier's Network Security Newsletter"A well implemented read with lots of good ideas for fun offensive Python projects. So enjoy, and don't forget it's all about the code!"—Dan Borges, LockBoxx"A useful eye-opener."—MagPi Magazine"If you work as a computer security professional and want to code in Python, this is definitely a book that belongs on your bookshelf."—Craig Mullins, Data and Technology TodayTable of ContentsPrefaceChapter 1: Setting up Your Python EnvironmentChapter 2: Basic Networking ToolsChapter 3: Writing a SnifferChapter 4: Owning the Network with ScapyChapter 5: Web HackeryChapter 6: Extending Burp ProxyChapter 7: GitHub Command and ControlChapter 8: Common Trojaning Tasks on WindowsChapter 9: Fun with Internet ExplorerChapter 10: Windows Privilege EscalationChapter 11: Automating Offensive ForensicsIndex

    3 in stock

    £32.24

  • Arduino Projects For Dummies

    John Wiley & Sons Inc Arduino Projects For Dummies

    15 in stock

    Book SynopsisDiscover all the amazing things you can do with Arduino Arduino is a programmable circuit board that is being used by everyone from scientists, programmers, and hardware hackers to artists, designers, hobbyists, and engineers in order to add interactivity to objects and projects and experiment with programming and electronics.Table of ContentsIntroduction 1 Part I: Getting Started with Arduino Projects 7 Chapter 1: Exploring the World of Arduino 9 Chapter 2: Setting Up Your Workspace and Tools 19 Chapter 3: Understanding the Basics 41 Part II: Basic Arduino Projects 63 Chapter 4: The All-Seeing Eye 65 Chapter 5: Making a Light Pet 85 Chapter 6: Making a Scrolling Sign 107 Chapter 7: Building an Arduino Clock 127 Part III: The Interactive Home and Garden 153 Chapter 8: Building a Keypad Entry System 155 Chapter 9: Building an RFID Tag Reader 181 Chapter 10: Building an Automated Garden 201 Chapter 11: Building a Tweeting Pet Door 221 Chapter 12: Building a Home Sensing Station 243 Part IV: Advanced Arduino Projects 273 Chapter 13: Building a GPS Data Logger 275 Chapter 14: Building a Remote-Controlled Car 299 Chapter 15: Building an LED Cube 323 Part V: The Part of Tens 349 Chapter 16: Ten Great Arduino Resources 351 Chapter 17: Ten Troubleshooting Tips 359 Index 369

    15 in stock

    £17.85

  • Implementing DomainDriven Design

    Pearson Education (US) Implementing DomainDriven Design

    15 in stock

    Book SynopsisVaughn Vernon is a champion of simplifying software architecture and development, with an emphasis on reactive methods. He has a unique ability to teach and lead with Domain-Driven Design using lightweight tools to unveil unimagined value. He helps organizations achieve competitive advantages using enduring tools such as architectures, patterns, and approaches, and through partnerships between business stakeholders and software developers.Trade Review"With Implementing Domain-Driven Design, Vaughn has made an important contribution not only to the literature of the Domain-Driven Design community, but also to the literature of the broader enterprise application architecture field. In key chapters on Architecture and Repositories, for example, Vaughn shows how DDD fits with the expanding array of architecture styles and persistence technologies for enterprise applications-including SOA and REST, NoSQL and data grids-that has emerged in the decade since Eric Evans' seminal book was first published. And, fittingly, Vaughn illuminates the blocking and tackling of DDD-the implementation of entities, value objects, aggregates, services, events, factories, and repositories-with plentiful examples and valuable insights drawn from decades of practical experience. In a word, I would describe this book as thorough. For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades." -Randy Stafford, Architect At-Large, Oracle Coherence Product Development "Domain-Driven Design is a powerful set of thinking tools that can have a profound impact on how effective a team can be at building software-intensive systems. The thing is that many developers got lost at times when applying these thinking tools and really needed more concrete guidance. In this book, Vaughn provides the missing links between theory and practice. In addition to shedding light on many of the misunderstood elements of DDD, Vaughn also connects new concepts like Command/Query Responsibility Segregation and Event Sourcing that many advanced DDD practitioners have used with great success. This book is a must-read for anybody looking to put DDD into practice." -Udi Dahan, Founder of NServiceBus "For years, developers struggling to practice Domain-Driven Design have been wishing for more practical help in actually implementing DDD. Vaughn did an excellent job in closing the gap between theory and practice with a complete implementation reference. He paints a vivid picture of what it is like to do DDD in a contemporary project, and provides plenty of practical advice on how to approach and solve typical challenges occurring in a project life cycle." - Alberto Brandolini, DDD Instructor, Certified by Eric Evans and Domain Language, Inc. "Implementing Domain-Driven Design does a remarkable thing: it takes a sophisticated and substantial topic area in DDD and presents it clearly, with nuance, fun and finesse. This book is written in an engaging and friendly style, like a trusted advisor giving you expert counsel on how to accomplish what is most important. By the time you finish the book you will be able to begin applying all the important concepts of DDD, and then some. As I read, I found myself highlighting many sections ... I will be referring back to it, and recommending it, often." - Paul Rayner, Principal Consultant & Owner, Virtual Genius, LLC., DDD Instructor, Certified by Eric Evans and Domain Language, Inc., DDD Denver Founder and Co-leader "One important part of the DDD classes I teach is discussing how to put all the ideas and pieces together into a full blown working implementation. With this book, the DDD community now has a comprehensive reference that addresses this in detail. Implementing Domain-Driven Design deals with all aspects of building a system using DDD, from getting the small details right to keeping track of the big picture. This is a great reference and an excellent companion to Eric Evans seminal DDD book." - Patrik Fredriksson, DDD Instructor, Certified by Eric Evans and Domain Language, Inc. "If you care about software craftsmanship-and you should-then Domain-Driven Design is a crucial skill set to master and Implementing Domain-Driven Design is the fast path to success. IDDD offers a highly readable yet rigorous discussion of DDD's strategic and tactical patterns that enables developers to move immediately from understanding to action. Tomorrow's business software will benefit from the clear guidance provided by this book." -Dave Muirhead, Principal Consultant, Blue River Systems Group "There's theory and practice around DDD that every developer needs to know, and this is the missing piece of the puzzle that puts it all together. Highly recommended!" -Rickard Oberg, Java Champion and Developer at Neo Technology "In IDDD, Vaughn takes a top-down approach to DDD, bringing strategic patterns such as bounded context and context maps to the fore, with the building block patterns of entities, values and services tackled later. His book uses a case study throughout, and to get the most out of it you'll need to spend time grokking that case study. But if you do you'll be able to see the value of applying DDD to a complex domain; the frequent sidenotes, diagrams, tables, and code all help illustrate the main points. So if you want to build a solid DDD system employing the architectural styles most commonly in use today, Vaughn's book comes recommended." -Dan Haywood, author of Domain-Driven Design with Naked Objects "This book employs a top-down approach to understanding DDD in a way that fluently connects strategic patterns to lower level tactical constraints. Theory is coupled with guided approaches to implementation within modern architectural styles. Throughout the book, Vaughn highlights the importance and value of focusing on the business domain all while balancing technical considerations. As a result, the role of DDD, as well as what it does and perhaps more importantly doesn't imply, become ostensibly clear. Many a time, my team and I would be at odds with the friction encountered in applying DDD. With Implementing Domain-Driven Design as our luminous guide we were able to overcome those challenges and translate our efforts into immediate business value." -Lev Gorodinski, Principal Architect, DrillSpot.comTable of Contents Chapter 1: Getting Started with DDD Chapter 2: Domains, Subdomains, and Bounded Contexts Chapter 3: Context Maps Chapter 4: Architecture Chapter 5: Entities Chapter 6: Value Objects Chapter 7: Services Chapter 8: Domain Events Chapter 9: Modules Chapter 10: Aggregates Chapter 11: Factories Chapter 12: Repositories Chapter 13: Integrating Bounded Contexts Chapter 14: Application Appendix A: Aggregates and Event Sourcing: A+ES

    15 in stock

    £43.19

  • Python Crash Course, 3rd Edition: A Hands-On,

    No Starch Press,US Python Crash Course, 3rd Edition: A Hands-On,

    15 in stock

    Book SynopsisSince its initial debut in 2015, this critically acclaimed quick-start guide to programming has taught millions of people all over the world to write clean code, solve problems, and build custom applications in the popular language of Python. The highly anticipated third edition of Python Crash Course has been completely revised with updated code, practices, and projects-making it the ultimate launchpad for beginners to start their engines and code in Python 3!Trade Review"Learning python is a smart investment of your time because the language is efficient and powerful. This book will get you where you need to be to program like a pro." —Sandra Henry-Stocker, NetworkWorld"Eric Matthes's Python Crash Course, 3rd Edition takes a well-regarded text for getting started with Python and brings it up to date for 2023. The book not only covers Python's basics but lets you put them to use in a series of projects involving data analysis, web development, and gaming. Many books offer either Python basics or projects to learn from. This one delivers both." —Serdar Yegulalp, InfoWorld"Just looking at the fact that this is the 3rd Edition of Eric's book, you likely realize that there is something special about this . . . It's amazing that he gets all of [this] into 500+ pages and at the same time it's all understandable. . . . ★★★★★"—Greg Walters, Full Circle MagazineReviews for the 2nd Edition:"With a patient and experienced pedagogical style, and a combination of thorough language instruction and plenty of illustrative sample code, Python Crash Course is a terrific way to begin learning computer programming in general and the Python language in particular."—Michael J. Ross, web developer and former Slashdot contributor“It has been interesting to see, over the last few years, No Starch Press, which produces this book, growing and producing future classics that should be alongside the more traditional O’Reilly Press programming books. Python Crash Course is one of those books.”—Greg Laden, ScienceBlogs“All of these projects are well thought out and presented in such a way that learning the subject matter and implementing it is much more an enjoyable pastime rather than an onerous task that must be completed. Eric took the time to deal with some rather complex projects and lay them out in a consistent, logical and pleasant manner that draws the reader into the subject willingly, which unfortunately, many authors fail to do.”—Full Circle Magazine“The book is well presented with good explanations of the code snippets. It works with you, one small step at a time, building more complex code, explaining what's going on all the way.”—FlickThrough Reviews“Learning Python with Python Crash Course was an extremely positive experience! A great choice if you’re new to Python.”—Mikke Goes Coding"While Python Crash Course uses Python to teach you to code, it also teaches clean programming skills that apply to most other languages."—Great Lakes Geek"It does what it says on the tin, and it does it really well. If you want a crash course in Python, fear not!!! The Python Crash Course is an excellent book that provides a thorough introduction to Python that will have you writing programs and solving problems in no time!"—Technical YA, Best Books to Learn Python Language in 2021Table of ContentsPreface to the Third EditionAcknowledgmentsIntroductionPart I: BASICSChapter 1: Getting StartedChapter 2: Variables and Simple Data TypesChapter 3: Introducing ListsChapter 4: Working with ListsChapter 5: if StatementsChapter 6: DictionariesChapter 7: User Input and while LoopsChapter 8: FunctionsChapter 9: ClassesChapter 10: Files and ExceptionsChapter 11: Testing Your CodePart II: PROJECTSChapter 12: A Ship That Fires BulletsChapter 13: Aliens!Chapter 14: ScoringChapter 15: Generating DataChapter 16: Downloading DataChapter 17: Working with APIsChapter 18: Getting Started with DjangoChapter 19: User AccountsChapter 20: Styling and Deploying an AppAfterwordAppendix A: Installation and TroubleshootingAppendix B: Text Editors and IDEsAppendix C: Getting HelpAppendix D: Using Git for Version ControlAppendix E: Troubleshooting DeploymentsIndex

    15 in stock

    £35.99

  • The Nature of Code

    No Starch Press,US The Nature of Code

    7 in stock

    Book Synopsis

    7 in stock

    £28.49

  • Kubernetes for Developers

    Manning Publications Kubernetes for Developers

    15 in stock

    Book SynopsisKubernetes Quickly is a clear and practical beginner's guide that shows you just how easy, flexible, and cost-effective it can be to make the switch to Kubernetes deployment even for small to medium-sized applications. Kubernetes Quickly is a hands-on guide to taking your first steps into Kubernetes using the powerful Google Kubernetes Engine service. It lays out a map for taking an application, containerizing it, and then deploying it onto Kubernetes. You'll learn best practice techniques for a stable and long-term Kubernetes deployment, including scaling and capacity planning, saving money by optimizing resource consumption, and tricks to make your day-to-day monitoring easier such as debugging code in the cloud. You don't need to incur huge costs or have the manpower of an enterprise organization to get a productivity boost from Kubernetes. By organizing your application component into containerized components and automating tasks like scaling and replication, Kubernetes keeps your apps running smoothly. Cloud-based Kubernetes services like Google Kubernetes Engine(GKE) reduce OS issues, simplify operations, and give you the freedom to use whatever software stack you want. If you've heard that switching to Kubernetesis complex, good news—Kubernetes for Developers will show you how it can be done without a time-consuming rebuild. Using examples from the Google Kubernetes Engine created by the team who invented Kubernetes itself, you'll learn to set up future-proof application deployments that scale to handle ever-growing and complex workloads.Trade Review“Whether you are using kubernetes now or thinking of using kubernetes in the future, there is no better way to expand your knowledge than this book. “ Becky Huett “Excellent introductory text for Kubernetes that augments the Kubernetes documentation with best practice tips and great tool recommendations.” Robert Kielty “This is an excellent introduction to Kubernetes in particular and Cloud deployments in general.” Juan Jimenez “Get ready to be taken from the old world to the new. It won't hurt to give this book another read-over before you deploy your service into production!” Chase Sillevis “An excellent read for a newbie who wants to get closer to Kubernetes.” Giuliano Latini

    15 in stock

    £36.09

  • Effective Project Management

    John Wiley & Sons Inc Effective Project Management

    15 in stock

    Book SynopsisThe popular guide to the project management body of knowledge, now fully updated Now in its eighth edition, this comprehensive guide to project management has long been considered the standard for both professionals and academics, with nearly 40,000 copies sold in the last three editions! Well-known expert Robert Wysocki has added four chapters of new content based on instructor feedback, enhancing the coverage of best-of-breed methods and tools for ensuring project management success. With enriched case studies, accompanying exercises and solutions on the companion website, and PowerPoint slides for all figures and tables, the book is ideal for instructors and students as well as active project managers. Serves as a comprehensive guide to project management for both educators and project management professionalsUpdated to cover the new PMBOK Sixth Edition Examines traditional, agile, and extreme project management techniques; the Enterprise Project Management Model; and Kanban and Scrumban methodologiesIncludes a companion website with exercises and solutions and well as PowerPoint slides for all the figures and tables usedWritten by well-known project management expert Robert Wysocki Effective Project Management, Eighth Editionremains the comprehensive resource for project management practitioners, instructors, and students. (PMBOK is a registered mark of the Project Management Institute, Inc.)Table of ContentsPreface xxxiii Introduction xxxvii Part I Understanding the Project Management Landscape 1 Chapter 1 What Is a Project? 3 Chapter 2 What Is Project Management? 23 Chapter 3 What Is Strategic Project Management? 63 Chapter 4 What Is a Collaborative Project Team? 91 Chapter 5 What Are Project Management Process Groups? 115 Part II Traditional Project Management 151 Chapter 6 How to Scope a TPM Project 153 Chapter 7 How to Plan a TPM Project 191 Chapter 8 How to Launch a TPM Project 263 Chapter 9 How to Execute a TPM Project 313 Chapter 10 How to Close a TPM Project 343 Part III Complex Project Management 353 Chapter 11 Complexity and Uncertainty in the Project Landscape 355 Chapter 12 Agile Complex Project Management Models 381 Chapter 13 Extreme Complex Project Management Models 393 Chapter 14 Hybrid Project Management Framework 405 Chapter 15 Comparing TPM and CPM Models 453 Appendix A Terms and Acronyms 537 Appendix B Case Study: Workforce and Business Development Center 543 Appendix C Case Study: Pizza Delivered Quickly ( PDQ ) 557 Appendix D Cited References 561 Appendix E What’s on the eiipbs.com Website? 565

    15 in stock

    £39.00

  • Pearson Education We Programmers

    Out of stock

    Book SynopsisRobert C. Martin (Uncle Bob) has been a programmer and software development expert since 1970. He is founder of Uncle Bob Consulting, LLC, and cofounder with his son Micah Martin of The Clean Coders LLC. Martin has published dozens of articles in various trade journals and is a regular speaker at international conferences and trade shows. He is the author of many books, including Agile Software Development: Principles, Patterns, and Practices; UML for Java Programmers; Clean Code; The Clean Coder; Clean Architecture; Clean Agile; Clean Craftsmanship; and Functional Design. Martin served for three years as editor-in-chief of the C++ Report and as the first chairman of the Agile Alliance.

    Out of stock

    £28.79

  • Linux Basics for Hackers 2nd Edition

    No Starch Press,US Linux Basics for Hackers 2nd Edition

    15 in stock

    Book SynopsisIf you're getting started along the exciting path of hacking, cybersecurity, and pentesting, this book is an excellent first step. Using Kali Linux - an advanced penetration testing distribution of Linux - you'll quickly pick up the basics of using the Linux operating system, and acquire the tools and techniques you'll need to take control of a Linux environment. Later chapters focus on foundational hacking concepts like security, anonymity and scripting, along with practical tutorials and exercises that test your skills. This fully revised second edition covers the latest version of Kali, includes new options for setting up a Linux virtual machine, and discusses some differences between the bash and Z shells used on the newest versions of the distribution. It also addresses contemporary examples of real-world hacking, such as the cyberwar between Russia and Ukraine. You'll learn how to: Install Kali on a virtual machine and build your own hacking tools; Perform common tasks like manipulating text and controlling file and directory permissions; Cover your tracks by leveraging the rsyslog logging utility; Hide your internet activity using Tor, proxy servers, VPNs, and encrypted email; Write bash and Python scripts to scan open ports for potential targets. If you're ready to dive into hacking, cybersecurity, or pentesting, Linux Basics for Hackers, 2nd Edition is exactly what you need to get going.

    15 in stock

    £26.99

  • Structure and Interpretation of Computer Programs

    10 in stock

    £70.13

  • Think Like A Programmer

    No Starch Press,US Think Like A Programmer

    3 in stock

    Book SynopsisThe real challenge of programming isn't learning a language's syntax it's learning to creatively solve problems so you can build something great. In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge. You'll also learn how to: Split problems into discrete components to make them easier to solve Make the most of code reuse with functions, classes, and libraries Pick the perfect data structure for a particular job Master more advanced programming tools like recursion and dynamic memory Organize your thoughts and develop strategies to tackle particular types of problems Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond aTable of ContentsIntroductionChapter 1: Strategies for Problem SolvingChapter 2: Pure PuzzlesChapter 3: Solving Problems with ArraysChapter 4: Solving Problems with Pointers and Dynamic MemoryChapter 5: Solving Problems with ClassesChapter 6: Solving Problems with RecursionChapter 7: Solving Problems with Code ReuseChapter 8: Thinking Like a ProgrammerIndex

    3 in stock

    £26.39

  • Make: Drones

    O'Reilly Media Make: Drones

    3 in stock

    Book SynopsisMake: Drones will help the widest possible audience understand how drones work by providing several DIY drone projects based on the world's most popular robot controller--the Arduino. The information imparted in this book will show Makers how to build better drones and be better drone pilots, and incidentally it will have applications in almost any robotics project. Why Arduino? Makers know Arduinos and their accessories, they are widely available and inexpensive, and there is strong community support. Open source flight-control code is available for Arduino, and flying is the hook that makes it exciting, even magical, for so many people. Arduino is not only a powerful board in its own right, but it's used as the controller of most inexpensive 3d printers, many desktop CNCs, and the majority of open source drone platforms.

    3 in stock

    £19.19

  • Programming in C

    Pearson Education (US) Programming in C

    Out of stock

    Book SynopsisTable of Contents Introduction 1 1 Some Fundamentals 5 Programming 5 Higher-Level Languages 5 Operating Systems 6 Compiling Programs 7 Integrated Development Environments 10 Language Interpreters 10 2 Compiling and Running Your First Program 11 Compiling Your Program 12 Running Your Program 12 Understanding Your First Program 13 Displaying the Values of Variables 15 Comments 17 Exercises 19 3 Variables, Data Types, and Arithmetic Expressions 21 Understanding Data Types and Constants 21 The Integer Type int 22 The Floating Number Type float 23 The Extended Precision Type double 23 The Single Character Type char 24 The Boolean Data Type _Bool 24 Type Specifiers: long, long long, short, unsigned, and signed 26 Working with Variables 29 Working with Arithmetic Expressions 30 Integer Arithmetic and the Unary Minus Operator 33 Combining Operations with Assignment: The Assignment Operators 39 Types _Complex and _Imaginary 40 Exercises 40 4 Program Looping 43 Triangular Numbers 43 The for Statement 44 Relational Operators 46 Aligning Output 50 Program Input 51 Nested for Loops 53 for Loop Variants 55 The while Statement 56 The do Statement 60 The break Statement 62 The continue Statement 62 Exercises 63 5 Making Decisions 65 The if Statement 65 The if-else Construct 69 Compound Relational Tests 72 Nested if Statements 74 The else if Construct 76 The switch Statement 83 Boolean Variables 86 The Conditional Operator 90 Exercises 92 6 Working with Arrays 95 Defining an Array 96 Using Array Elements as Counters 100 Generating Fibonacci Numbers 103 Using an Array to Generate Prime Numbers 104 Initializing Arrays 106 Character Arrays 108 Base Conversion Using Arrays 109 The const Qualifier 111 Multidimensional Arrays 113 Variable Length Arrays 115 Exercises 117 7 Working with Functions 119 Defining a Function 119 Arguments and Local Variables 123 Function Prototype Declaration 124 Automatic Local Variables 124 Returning Function Results 126 Functions Calling Functions Calling... 130 Declaring Return Types and Argument Types 133 Checking Function Arguments 135 Top-Down Programming 137 Functions and Arrays 137 Assignment Operators 141 Sorting Arrays 143 Multidimensional Arrays 146 Global Variables 151 Automatic and Static Variables 155 Recursive Functions 158 Exercises 161 8 Working with Structures 163 The Basics of Structures 163 A Structure for Storing the Date 164 Using Structures in Expressions 166 Functions and Structures 169 A Structure for Storing the Time 175 Initializing Structures 178 Compound Literals 178 Arrays of Structures 180 Structures Containing Structures 183 Structures Containing Arrays 185 Structure Variants 189 Exercises 190 9 Character Strings 193 Revisiting the Basics of Strings 193 Arrays of Characters 194 Variable-Length Character Strings 197 Initializing and Displaying Character Strings 199 Testing Two Character Strings for Equality 202 Inputting Character Strings 204 Single-Character Input 206 The Null String 211 Escape Characters 215 More on Constant Strings 217 Character Strings, Structures, and Arrays 218 A Better Search Method 221 Character Operations 226 Exercises 229 10 Pointers 233 Pointers and Indirection 233 Defining a Pointer Variable 234 Using Pointers in Expressions 237 Working with Pointers and Structures 239 Structures Containing Pointers 241 Linked Lists 243 The Keyword const and Pointers 251 Pointers and Functions 252 Pointers and Arrays 258 A Slight Digression About Program Optimization 262 Is It an Array or Is It a Pointer? 262 Pointers to Character Strings 264 Constant Character Strings and Pointers 266 The Increment and Decrement Operators Revisited 267 Operations on Pointers 271 Pointers to Functions 272 Pointers and Memory Addresses 273 Exercises 275 11 Operations on Bits 277 The Basics of Bits 277 Bit Operators 278 The Bitwise AND Operator 279 The Bitwise Inclusive-OR Operator 281 The Bitwise Exclusive-OR Operator 282 The Ones Complement Operator 283 The Left Shift Operator 285 The Right Shift Operator 286 A Shift Function 286 Rotating Bits 288 Bit Fields 291 Exercises 295 12 The Preprocessor 297 The #define Statement 297 Program Extendability 301 Program Portability 302 More Advanced Types of Definitions 304 The # Operator 309 The ## Operator 310 The #include Statement 311 System Include Files 313 Conditional Compilation 314 The #ifdef, #endif, #else, and #ifndef Statements 314 The #if and #elif Preprocessor Statements 316 The #undef Statement 317 Exercises 318 13 Extending Data Types with the Enumerated Data Type, Type Definitions, and Data Type Conversions 319 Enumerated Data Types 319 The typedef Statement 323 Data Type Conversions 325 Sign Extension 327 Argument Conversion 328 Exercises 329 14 Working with Larger Programs 331 Dividing Your Program into Multiple Files 331 Compiling Multiple Source Files from the Command Line 332 Communication Between Modules 334 External Variables 334 Static Versus Extern Variables and Functions 337 Using Header Files Effectively 339 Other Utilities for Working with Larger Programs 341 The make Utility 341 The cvs Utility 343 Unix Utilities: ar, grep, sed, and so on 343 15 Input and Output Operations in C 345 Character I/O: getchar() and putchar() 346 Formatted I/O: printf() and scanf() 346 The printf() Function 346 The scanf() Function 353 Input and Output Operations with Files 358 Redirecting I/O to a File 358 End of File 361 Special Functions for Working with Files 362 The fopen Function 362 The getc() and putc() Functions 364 The fclose() Function 365 The feof Function 367 The fprintf() and fscanf() Functions 367 The fgets() and fputs() Functions 367 stdin, stdout, and stderr 368 The exit() Function 369 Renaming and Removing Files 370 Exercises 371 16 Miscellaneous and Advanced Features 373 Miscellaneous Language Statements 373 The goto Statement 373 The null Statement 374 Working with Unions 375 The Comma Operator 378 Type Qualifiers 379 The register Qualifier 379 The volatile Qualifier 379 The restrict Qualifier 379 Command-line Arguments 380 Dynamic Memory Allocation 384 The calloc() and malloc() Functions 385 The sizeof Operator 385 The free Function 387 Exercises 389 17 Debugging Programs 391 Debugging with the Preprocessor 391 Debugging Programs with gdb 397 Working with Variables 400 Source File Display 401 Controlling Program Execution 402 Getting a Stack Trace 406 Calling Functions and Setting Arrays and Structures 407 Getting Help with gdb Commands 408 Odds and Ends 410 18 Object-Oriented Programming 413 What Is an Object Anyway? 413 Instances and Methods 414 Writing a C Program to Work with Fractions 416 Defining an Objective-C Class to Work with Fractions 417 Defining a C++ Class to Work with Fractions 421 Defining a C# Class to Work with Fractions 424 A C Language Summary 427 B The Standard C Library 471 C Compiling Programs with gcc 495 D Common Programming Mistakes 499 E Resources 505 TOC, 9780321776419, 7/28/2014

    Out of stock

    £35.14

  • Clean Code

    Pearson Education (US) Clean Code

    Out of stock

    Book SynopsisRobert C. Uncle Bob Martin has been a software professional since 1970 and an international software consultant since 1990. He is founder and president of Object Mentor, Inc., a team of experienced consultants who mentor their clients worldwide in the fields of C++, Java, C#, Ruby, OO, Design Patterns, UML, Agile Methodologies, and eXtreme programming.Table of ContentsForeword xixIntroduction xxvOn the Cover xxix Chapter 1: Clean Code 1 There Will Be Code 2 Bad Code 3 The Total Cost of Owning a Mess 4 Schools of Thought 12 We Are Authors 13 The Boy Scout Rule 14 Prequel and Principles 15 Conclusion 15 Bibliography 15 Chapter 2: Meaningful Names 17 Introduction 17 Use Intention-Revealing Names 18 Avoid Disinformation 19 Make Meaningful Distinctions 20 Use Pronounceable Names 21 Use Searchable Names 22 Avoid Encodings 23 Avoid Mental Mapping 25 Class Names 25 Method Names 25 Don’t Be Cute 26 Pick One Word per Concept 26 Don’t Pun 26 Use Solution Domain Names 27 Use Problem Domain Names 27 Add Meaningful Context 27 Don’t Add Gratuitous Context 29 Final Words 30 Chapter 3: Functions 31 Small! 34 Do One Thing 35 One Level of Abstraction per Function 36 Switch Statements 37 Use Descriptive Names 39 Function Arguments 40 Have No Side Effects 44 Command Query Separation 45 Prefer Exceptions to Returning Error Codes 46 Don’t Repeat Yourself 48 Structured Programming 48 How Do You Write Functions Like This? 49 Conclusion 49 SetupTeardownIncluder 50 Bibliography 52 Chapter 4: Comments 53 Comments Do Not Make Up for Bad Code 55 Explain Yourself in Code 55 Good Comments 55 Bad Comments 59 Bibliography 74 Chapter 5: Formatting 75 The Purpose of Formatting 76 Vertical Formatting 76 Horizontal Formatting 85 Team Rules 90 Uncle Bob’s Formatting Rules 90 Chapter 6: Objects and Data Structures 93 Data Abstraction 93 Data/Object Anti-Symmetry 95 The Law of Demeter 97 Data Transfer Objects 100 Conclusion 101 Bibliography 101 Chapter 7: Error Handling 103 Use Exceptions Rather Than Return Codes 104 Write Your Try-Catch-Finally Statement First 105 Use Unchecked Exceptions 106 Provide Context with Exceptions 107 Define Exception Classes in Terms of a Caller’s Needs 107 Define the Normal Flow 109 Don’t Return Null 110 Don’t Pass Null 111 Conclusion 112 Bibliography 112 Chapter 8: Boundaries 113 Using Third-Party Code 114 Exploring and Learning Boundaries 116 Learning log4j 116 Learning Tests Are Better Than Free 118 Using Code That Does Not Yet Exist 118 Clean Boundaries 120 Bibliography 120 Chapter 9: Unit Tests 121 The Three Laws of TDD 122 Keeping Tests Clean 123 Clean Tests 124 One Assert per Test 130 F.I.R.S.T. 132 Conclusion 133 Bibliography 133 Chapter 10: Classes 135 Class Organization 136 Classes Should Be Small! 136 Organizing for Change 147 Bibliography 151 Chapter 11: Systems 153 How Would You Build a City? 154 Separate Constructing a System from Using It 154 Scaling Up 157 Java Proxies 161 Pure Java AOP Frameworks 163 AspectJ Aspects 166 Test Drive the System Architecture 166 Optimize Decision Making 167 Use Standards Wisely, When They Add Demonstrable Value 168 Systems Need Domain-Specific Languages 168 Conclusion 169 Bibliography 169 Chapter 12: Emergence 171 Getting Clean via Emergent Design 171 Simple Design Rule 1: Runs All the Tests 172 Simple Design Rules 2–4: Refactoring 172 No Duplication 173 Expressive 175 Minimal Classes and Methods 176 Conclusion 176 Bibliography 176 Chapter 13: Concurrency 177 Why Concurrency? 178 Challenges 180 Concurrency Defense Principles 180 Know Your Library 182 Know Your Execution Models 183 Beware Dependencies Between Synchronized Methods 185 Keep Synchronized Sections Small 185 Writing Correct Shut-Down Code Is Hard 186 Testing Threaded Code 186 Conclusion 190 Bibliography 191 Chapter 14: Successive Refinement 193 Args Implementation 194 Args: The Rough Draft 201 String Arguments 214 Conclusion 250 Chapter 15: JUnit Internals 251 The JUnit Framework 252 Conclusion 265 Chapter 16: Refactoring SerialDate 267 First, Make It Work 268 Then Make It Right 270 Conclusion 284 Bibliography 284 Chapter 17: Smells and Heuristics 285 Comments 286 Environment 287 Functions 288 General 288 Java 307 Names 309 Tests 313 Conclusion 314 Bibliography 315 Appendix A: Concurrency II 317 Client/Server Example 317 Possible Paths of Execution 321 Knowing Your Library 326 Dependencies Between Methods Can Break Concurrent Code 329 Increasing Throughput 333 Deadlock 335 Testing Multithreaded Code 339 Tool Support for Testing Thread-Based Code 342 Conclusion 342 Tutorial: Full Code Examples 343 Appendix B: org.jfree.date.SerialDate 349 Appendix C: Cross References of Heuristics 409 Epilogue 411Index 413

    Out of stock

    £38.69

  • ISE Software Engineering A Practitioners Approach

    McGraw-Hill Education ISE Software Engineering A Practitioners Approach

    15 in stock

    Book SynopsisFor almost four decades, Software Engineering: A Practitioner''s Approach (SEPA) has been the world''s leading textbook in software engineering. The ninth edition represents a major restructuring and update of previous editions, solidifying the book''s position as the most comprehensive guide to this important subject.Table of Contents1) Software and Software EngineeringPart One - The Software Process2) Process Models3) Agility and Process4) Recommended Process Model5) Human Aspects of Software EngineeringPart Two - Modeling6) Principles That Guide Practice7) Understanding Requirements8) Requirements Modeling - A Recommended Approach9) Design Concepts10) Architectural Design - A Recommended Approach11) Component-Level Design12) User Experience Design13) Design for Mobility14) Pattern-Based DesignPart Three - Quality and Security15) Quality Concepts16) Reviews - A Recommended Approach17) Software Quality Assurance18) Software Security Engineering19) Software Testing - Component Level20) Software Testing - Integration Level21) Software Testing - Specialized Testing for Mobility22) Software Configuration Management23) Software Metrics and AnalyticsPart Four - Managing Software Projects24) Project Management Concepts25) Creating a Viable Software Plan26) Risk Management27) A Strategy for Software SupportPart Five - Advanced Topics 28) Software Process Improvement29) Emerging Trends in Software Engineering30) Concluding CommentsAppendix I - An Introduction to UML Appendix II - Data Science for Software Engineers

    15 in stock

    £53.99

  • Facilitating Professional Scrum Teams

    Pearson Education (US) Facilitating Professional Scrum Teams

    15 in stock

    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 behaviors and misbehaviors. She is co-author of both The Nexus Framework for Scaling Scrum (Addison-Wesley, 2017) and Facilitating Professional Scrum Teams (Addison-Wesley, 2024). Glaudia Califano is an agile and lean practitioner and mentor, working with and within teams. She loves to be hands-on, coming up with new ideas, and learning from those around her. Glaudia divides her time between the UK and Spain with her partner and her two dachshunds. David Spinks is an experienced software developer, Scrum Master, and accredited trainer of Scrum and The Kanban Method. He believes in creating environments where empowerment, autonomy and flexibility enable teams to do the best work possible. David is based in Buckinghamshire, UK.Table of ContentsForeword by Sam Kaner xix Foreword by Dave West xxvii Preface xxxi Introduction 1 Purpose of This Book 2 Facilitation as a Complementary Practice to Scrum 2 Who Should Read This Book 3 How This Book Is Organized 4 How to Read This Book 5 Chapter 1: Facilitating Alignment 7 The Scrum Team Figuring Out How They Want to Work Together 8 The Scrum Team That Aligns with Its Stakeholders to Deliver Value 16 The Scrum Team Aligning on a Vision 25 Keys to Facilitating Alignment 34 Conclusion 36 Chapter 2: Facilitating Sprint Planning 37 The Scrum Team Struggling to Agree to a Single Sprint Goal 38 The Team Member Who Pushes the Team to Overcommit 46 The Team Members Who Don’t Know Where to Start 52 Keys to Facilitating an Effective Sprint Planning 54 Conclusion 58 Chapter 3: Facilitating the Daily Scrum 61 The Daily Scrum Where Everyone Provides a Status Update 62 The Daily Scrum Where Developers Dive into Problem-Solving Mode 67 The Scrum Team Acting as a Group of Individuals 70 Absentees or Late Comers to the Daily Scrum 73 Keys to Facilitating an Effective Daily Scrum 77 Conclusion 81 Chapter 4: Facilitating Team Dynamics 83 The Scrum Team Members Stuck on Their Own Ideas 84 The Scrum Team with Growing Conflict Between Two Team Members 94 The Scrum Team with Weak Decision-Making 107 Keys to Facilitating Team Dynamics 116 Conclusion 118 Chapter 5: Facilitating Product Backlog Refinement 119 The Scrum Team Experimenting with Daily Product Backlog Refinement 120 The Stakeholders Who Want It All 125 When the User Experience Is Forgotten 132 The Scrum Team That Is Obsessed with Estimating 138 Keys to Facilitating Effective Product Backlog Refinement 142 Conclusion 145 Chapter 6: Facilitating the Sprint Review 147 The Sprint Review with Little Stakeholder Participation 148 The Sprint Review Where Nothing Is Done 159 Keys to Facilitating an Effective Sprint Review 164 Conclusion 168 Chapter 7: Facilitating the Sprint Retrospective 171 The Scrum Team Playing the Blame Game 172 The Team Members Who Believe Nothing Will Change 178 The Scrum Team That Thinks There’s Nothing Left for Them to Improve 185 The Scrum Team Dealing with a Major Change 192 The Scrum Master Focusing the Retrospective on Fun 201 Keys to Facilitating an Effective Sprint Retrospective 205 Conclusion 209 Chapter 8: Facilitating Beyond a Single Scrum Team 211 The Scrum Teams Whose Members Could Be Sharing Knowledge 212 The Scrum Teams Without a Say on Their Team Membership 215 The Chaotic Customer Review 221 Keys to Facilitating beyond a Single Scrum Team 228 Conclusion 232 Conclusion: Moving Forward 233 Getting Started 234 Watching for Common Facilitation Mistakes 235 Navigating Group Dynamics 237 Improving as a Facilitator 238 Appendix A: Facilitation Principles 239 Participative 239 Purposeful 240 Process 240 Transparency 241 Healthy 242 Appendix B: Adapting for Virtual 243 Communication and Collaboration Tools 244 Consider Having a Cohost 245 Virtual Meeting Etiquette 245 Be Inclusive and Respectful of Individuals’ Needs 246 Minimizing Virtual Meeting Fatigue Caused by Cameras Being On 246 Keep Sessions Short 248 Break Down Content and Activities 249 Take Regular Breaks 249 Respect People’s Time 249 Create Space for Connection 250 Sharing with the Whole Group 250 Making Decisions Virtually 250 The Power of Silence 251 Take It to the Team! 252 Hybrid Facilitation 252 Appendix C: Facilitation Checklist 253 Preparation 253 Follow-Up 258 Index 259

    15 in stock

    £23.39

  • Python Programming: An Introduction to Computer

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

    4 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.

    4 in stock

    £46.50

  • The Tcp/ip Guide

    No Starch Press,US The Tcp/ip Guide

    Out of stock

    Book SynopsisFrom Charles M. Kozierok, the creator of the highly regarded www.pcguide.com, comes The TCP/IP Guide. This completely up-to-date, encyclopedic reference on the TCP/IP protocol suite will appeal to newcomers and the seasoned professional alike. Kozierok details the core protocols that make TCP/IP internetworks function and the most important classic TCP/IP applications, integrating IPv6 coverage throughout. Over 350 illustrations and hundreds of tables help to explain the finer points of this complex topic. The book s personal, user-friendly writing style lets readers of all levels understand the dozens of protocols and technologies that run the Internet, with full coverage of PPP, ARP, IP, IPv6, IP NAT, IPSec, Mobile IP, ICMP, RIP, BGP, TCP, UDP, DNS, DHCP, SNMP, FTP, SMTP, NNTP, HTTP, Telnet, and much more. The TCP/IP Guide is a must-have addition to the libraries of internetworking students, educators, networking professionals, and those working toward certification.Table of ContentsDEDICATIONABOUT THE AUTHORACKNOWLEDGMENTSINTRODUCTIONPart I-1: NETWORKING FUNDAMENTALS* Chapter 1: NETWORKING INTRODUCTION, CHARACTERISTICS, AND TYPES* Chapter 2: NETWORK PERFORMANCE ISSUES AND CONCEPTS* Chapter 3: NETWORK STANDARDS AND STANDARDS ORGANIZATIONS* Chapter 4: A REVIEW OF DATA REPRESENTATION AND THE MATHEMATICS OF COMPUTINGPart I-2: THE OPEN SYSTEMS INTERCONNECTION (OSI) REFERENCE MODEL* Chapter 5: GENERAL OSI REFERENCE MODEL ISSUES AND CONCEPTS* Chapter 6: OSI REFERENCE MODEL LAYERS* Chapter 7: OSI REFERENCE MODEL SUMMARYPart I-3: TCP/IP PROTOCOL SUITE AND ARCHITECTURE* Chapter 8: TCP/IP PROTOCOL SUITE AND ARCHITECTUREPart II-1: TCP/IP NETWORK INTERFACE LAYER PROTOCOLS* Chapter 9: TCP/IP SERIAL LINE INTERNET PROTOCOL (SLIP) AND POINT-TO-POINT PROTOCOL (PPP) OVERVIEW AND FUNDAMENTALS* Chapter 10: PPP CORE PROTOCOLS: LINK CONTROL, NETWORK CONTROL, AND AUTHENTICATION* Chapter 11: PPP FEATURE PROTOCOLS* Chapter 12: PPP PROTOCOL FRAME FORMATSPart II-2: TCP/IP NETWORK INTERFACE/INTERNET LAYER CONNECTION PROTOCOLS* Chapter 13: ADDRESS RESOLUTION AND THE TCP/IP ADDRESS RESOLUTION PROTOCOL (ARP)* Chapter 14: REVERSE ADDRESS RESOLUTION AND THE TCP/IP REVERSE ADDRESS RESOLUTION PROTOCOL (RARP)Part II-3: INTERNET PROTOCOL VERSION 4 (IP/IPV4)* Chapter 15: INTERNET PROTOCOL VERSIONS, CONCEPTS, AND OVERVIEW* Chapter 16: IPV4 ADDRESSING CONCEPTS AND ISSUES* Chapter 17: CLASSFUL (CONVENTIONAL) ADDRESSING* Chapter 18: IP SUBNET ADDRESSING (SUBNETTING) CONCEPTS* Chapter 19: IP SUBNETTING PRACTICAL SUBNET DESIGN AND ADDRESS DETERMINATION EXAMPLE* Chapter 20: IP CLASSLESS ADDRESSING--CLASSLESS INTER-DOMAIN ROUTING (CIDR)/SUPERNETTING* Chapter 21: INTERNET PROTOCOL DATAGRAM ENCAPSULATION AND FORMATTING* Chapter 22: IP DATAGRAM SIZE, FRAGMENTATION, AND REASSEMBLY* Chapter 23: IP ROUTING AND MULTICASTINGPart II-4: INTERNET PROTOCOL VERSION 6 (IPV6)* Chapter 24: IPV6 OVERVIEW, CHANGES, AND TRANSITION* Chapter 25: IPV6 ADDRESSING* Chapter 26: IPV6 DATAGRAM ENCAPSULATION AND FORMATTING* Chapter 27: IPV6 DATAGRAM SIZE, FRAGMENTATION, REASSEMBLY, AND ROUTINGPart II-5: IP-RELATED FEATURE PROTOCOLS* Chapter 28: IP NETWORK ADDRESS TRANSLATION (NAT) PROTOCOL* Chapter 29: IP SECURITY (IPSEC) PROTOCOLS* Chapter 30: INTERNET PROTOCOL MOBILITY SUPPORT (MOBILE IP)Part II-6: IP SUPPORT PROTOCOLS* Chapter 31: ICMP CONCEPTS AND GENERAL OPERATION* Chapter 32: ICMPV4 ERROR MESSAGE TYPES AND FORMATS* Chapter 33: ICMPV4 INFORMATIONAL MESSAGE TYPES AND FORMATS* Chapter 34: ICMPV6 ERROR MESSAGE TYPES AND FORMATS* Chapter 35: ICMPV6 INFORMATIONAL MESSAGE TYPES AND FORMATS* Chapter 36: IPV6 NEIGHBOR DISCOVERY (ND) PROTOCOLPart II-7: TCP/IP ROUTING PROTOCOLS (GATEWAY PROTOCOLS)* Chapter 37: OVERVIEW OF KEY ROUTING PROTOCOL CONCEPTS* Chapter 38: ROUTING INFORMATION PROTOCOL (RIP, RIP-2, AND RIPNG)* Chapter 39: OPEN SHORTEST PATH FIRST (OSPF)* Chapter 40: BORDER GATEWAY PROTOCOL (BGP/BGP-4)* Chapter 41: OTHER ROUTING PROTOCOLSPart II-8: TCP/IP TRANSPORT LAYER PROTOCOLS* Chapter 42: OVERVIEW AND COMPARISON OF TCP AND UDP* Chapter 43: TCP AND UDP ADDRESSING: PORTS AND SOCKETS* Chapter 44: TCP/IP USER DATAGRAM PROTOCOL (UDP)* Chapter 45: TCP OVERVIEW, FUNCTIONS, AND CHARACTERISTICS* Chapter 46: TRANSMISSION CONTROL PROTOCOL (TCP) FUNDAMENTALS AND GENERAL OPERATION* Chapter 47: TCP BASIC OPERATION: CONNECTION ESTABLISHMENT, MANAGEMENT, AND TERMINATION* Chapter 48: TCP MESSAGE FORMATTING AND DATA TRANSFER* Chapter 49: TCP RELIABILITY AND FLOW CONTROL FEATURESPart III-1: NAME SYSTEMS AND TCP/IP NAME REGISTRATION AND NAME RESOLUTION* Chapter 50: NAME SYSTEM ISSUES, CONCEPTS, AND TECHNIQUES* Chapter 51: TCP/IP NAME SYSTEMS OVERVIEW AND THE HOST TABLE NAME SYSTEM* Chapter 52: DOMAIN NAME SYSTEM (DNS) OVERVIEW, FUNCTIONS, AND CHARACTERISTICS* Chapter 53: DNS NAME SPACE, ARCHITECTURE, AND TERMINOLOGY* Chapter 54: DNS NAME REGISTRATION, PUBLIC ADMINISTRATION, ZONES, AND AUTHORITIES* Chapter 55: DNS NAME SERVER CONCEPTS AND OPERATION* Chapter 56: DNS RESOLUTION CONCEPTS AND RESOLVER OPERATIONS* Chapter 57: DNS MESSAGING AND MESSAGE, RESOURCE RECORD, AND MASTER FILE FORMATSPart III-2: NETWORK FILE AND RESOURCE SHARING PROTOCOLS* Chapter 58: NETWORK FILE AND RESOURCE SHARING AND THE TCP/IP NETWORK FILE SYSTEM (NFS)Part III-3: HOST CONFIGURATION AND TCP/IP HOST CONFIGURATION PROTOCOLS* Chapter 59: HOST CONFIGURATION CONCEPTS, ISSUES, AND MOTIVATION* Chapter 60: TCP/IP BOOTSTRAP PROTOCOL (BOOTP)* Chapter 61: DHCP OVERVIEW AND ADDRESS ALLOCATION CONCEPTS* Chapter 62: DHCP CONFIGURATION AND OPERATION* Chapter 63: DHCP MESSAGING, MESSAGE TYPES, AND FORMATS* Chapter 64: DHCP CLIENT/SERVER IMPLEMENTATION, FEATURES, AND IPV6 SUPPORTPart III-4: TCP/IP NETWORK MANAGEMENT FRAMEWORK AND PROTOCOLS* Chapter 65: TCP/IP INTERNET STANDARD MANAGEMENT FRAMEWORK OVERVIEW* Chapter 66: TCP/IP STRUCTURE OF MANAGEMENT INFORMATION (SMI) AND MANAGEMENT INFORMATION BASES (MIBS)* Chapter 67: TCP/IP SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP) CONCEPTS AND OPERATION* Chapter 68: SNMP PROTOCOL MESSAGING AND MESSAGE FORMATS* Chapter 69: TCP/IP REMOTE NETWORK MONITORING (RMON)Part III-5: TCP/IP APPLICATION LAYER ADDRESSING AND APPLICATION CATEGORIES* Chapter 70: TCP/IP APPLICATION LAYER ADDRESSING: UNIFORM RESOURCE IDENTIFIERS, LOCATORS, AND NAMES (URIS, URLS, AND URNS)* Chapter 71: FILE AND MESSAGE TRANSFER OVERVIEW AND APPLICATION CATEGORIESPart III-6: TCP/IP GENERAL FILE TRANSFER PROTOCOLS* Chapter 72: FILE TRANSFER PROTOCOL (FTP)* Chapter 73: TRIVIAL FILE TRANSFER PROTOCOL (TFTP)Part III-7: TCP/IP ELECTRONIC MAIL SYSTEM: CONCEPTS AND PROTOCOLS* Chapter 74: TCP/IP ELECTRONIC MAIL SYSTEM OVERVIEW AND CONCEPTS* Chapter 75: TCP/IP ELECTRONIC MAIL ADDRESSES AND ADDRESSING* Chapter 76: TCP/IP ELECTRONIC MAIL MESSAGE FORMATS AND MESSAGE PROCESSING: RFC 822 AND MIME* Chapter 77: TCP/IP ELECTRONIC MAIL DELIVERY PROTOCOL: THE SIMPLE MAIL TRANSFER PROTOCOL (SMTP)* Chapter 78: TCP/IP ELECTRONIC MAIL ACCESS AND RETRIEVAL PROTOCOLS AND METHODSPart III-8: TCP/IP WORLD WIDE WEB AND THE HYPERTEXT TRANSFER PROTOCOL (HTTP)* Chapter 79: WORLD WIDE WEB AND HYPERTEXT OVERVIEW AND CONCEPTS* Chapter 80: HTTP GENERAL OPERATION AND CONNECTIONS* Chapter 81: HTTP MESSAGES, METHODS, AND STATUS CODES* Chapter 82: HTTP MESSAGE HEADERS* Chapter 83: HTTP Entities, Transfers, Coding Methods, and Content Management* Chapter 84: HTTP FEATURES, CAPABILITIES, AND ISSUESPart III-9: OTHER FILE AND MESSAGE TRANSFER APPLICATIONS* Chapter 85: USENET (NETWORK NEWS) AND THE TCP/IP NETWORK NEWS TRANSFER PROTOCOL (NNTP)* Chapter 86: GOPHER PROTOCOL (GOPHER)Part III-10: INTERACTIVE AND ADMINISTRATIVE UTILITIES AND PROTOCOLS* Chapter 87: TCP/IP INTERACTIVE AND REMOTE APPLICATION PROTOCOLS* Chapter 88: TCP/IP ADMINISTRATION AND TROUBLESHOOTING UTILITIES AND PROTOCOLSCOLOPHON

    Out of stock

    £71.24

  • Android Programming Pushing the Limits

    John Wiley & Sons Inc Android Programming Pushing the Limits

    15 in stock

    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

    15 in stock

    £23.99

  • Java The Complete Reference Thirteenth Edition

    McGraw-Hill Education Java The Complete Reference Thirteenth Edition

    15 in stock

    Book SynopsisThe definitive guide to Java programmingâthoroughly revised for Java SE 21Fully updated for Java SE 21, Javaâ: The Complete Reference, Thirteenth Edition explains how to develop, compile, debug, and run Java programs. Best-selling programming author Herb Schildt and Dr. Danny Coward cover the entire Java language, including its syntax, keywords, and fundamental programming principles. Youâll also find information on key portions of the Java API library, such as I/O, the Collections Framework, the stream library, and the concurrency utilities. Swing, JavaBeans, and servlets are examined, and numerous examples demonstrate Java in action. Recent additions to the Java platform, such as pattern matching in switch statements, record patterns, sequenced collections and virtual threads are also discussed in detail. Best of all, the book is written in the clear, crisp, uncompromising style that has made Schildt and Coward the choice of millions worldwide.&nbs

    15 in stock

    £40.49

  • The Complete Developer

    No Starch Press,US The Complete Developer

    3 in stock

    Book Synopsis

    3 in stock

    £35.99

  • Practical Sql, 2nd Edition

    No Starch Press,US Practical Sql, 2nd Edition

    7 in stock

    Book SynopsisSecond edition of the best-selling Practical SQL. An approachable guide to programming in SQL (Structured Query Language) that will teach even beginning programmers how to build powerful databases and analyze data to find meaningful information.Trade Review"Even better than the previous edition!"—Jakub Romanowski, LearnSQL.com"This book is comprehensive, well organized, and contains almost everything a new developer needs to learn SQL using Postgres. Besides, the arrangement of the sections is logical, and the writing style is not complicated where information is supported by the required examples and images, in addition to evidence from the writer's practical experiences."—Hadi Fadlallah, SQLShack"[W]ell-written and informative . . . an extremely enjoyable book that will keep the reader engaged with interesting, thought-provoking exercises . . . I highly recommend Practical SQL, 2nd Edition to anyone wanting to learn PostgreSQL and how to tell stories with data."—Joshua Allen Holm, Opensource.comREVIEWS FOR THE FIRST EDITION:"This book is comprehensive, well organized, and contains almost everything a new developer needs to learn SQL using Postgres. Besides, the arrangement of the sections is logical, and the writing style is not complicated where information is supported by the required examples and images, in addition to evidence from the writer's practical experiences."—Hadi Fadlallah, SQLShack“One of the best-organized travelogues we've seen into the SQL realm.”—Newstips Bulletin"More fun and more engaging [than Learning SQL from O'Reilly]."—Giles McMullen-Klein, Python Programmer, YouTuber“Practical SQL will take you from an absolute databases beginner towards becoming a database and SQL master. This book is one of those books that you feel like [you're] reading a novel, not a technical book. It uses an easy to follow and [understandable] approach that makes it easy to read for people from all backgrounds.”—Sara A. Metwalli, Towards Data Science"I recommend reading Practical SQL by Anthony DeBarros for a more in-depth look on how to implement regression analysis and other analytical tools using SQL."—Michael Grogan, Towards Data Science"One of the most interesting books about SQL I've ever read. At first glance, it looks like a guide for complete rookies. But the author raises topics that will interest advanced users."—Jakub Romanowski, LearnSQL.comTable of ContentsIntroduction1. Setting up pgAdmin2. Creating Your First Database and Table3. Beginning Data Exploration with SELECT4. Understanding Data Types5. Importing and Exporting Data6. Basic Math and Stats7. Joining Tables in a Relational Database8. Table Design that Works for You9. Extracting Information by Grouping and Summarizing10. Inspecting and Modifying Data11. Statistical Functions in SQL12. Working with Dates and Times13. Advanced Query Techniques14. Mining Text to Find Meaningful Data15. Analyzing Spatial Data with PostGIS16. Working with JSON Data17. Saving Time with Views, Functions, and Triggers18. Using PostgreSQL from the Command Line19. Maintaining Your Database20. Identifying and Telling the Story Behind Your DataAppendix A. Additional Resources

    7 in stock

    £28.49

  • Algorithmic Thinking: A Problem-Based

    No Starch Press,US Algorithmic Thinking: A Problem-Based

    Out of stock

    Book SynopsisReaders tackle challenging topics like recursion, dynamic programming, graphs, greedy algorithms, heaps, hash tables, segment trees, and other data structures for efficiently handling data. The book contains no pseudocode: all code is written in C and is thoroughly explained in the text (C is a de facto programming language for programming competitions). Zingaro also shows how several problems can be reduced to algorithms on graphs.Trade Review“A good choice for anyone who needs to understand and implement algorithms.”—RedGreenCode“With Zingaro as a tutor by your side, you'll learn, through practice on challenging competition problems, a repeatable process for figuring out and deftly applying the most appropriate algorithmic tools for the job. You'll learn it all from a book that exudes clarity, humor, and just the right dose of Canadian pride. Happy problem-solving!”—Dr. Tim Roughgarden, Professor of Computer Science at Columbia University"A clear and engaging text . . . By presenting problems first and their algorithm/data structure solutions later, it shows us exactly why those solutions are useful and how they fit into the big picture. . . . Far too many textbooks present solutions fully-formed with no mention of the dead ends and too-complicated solutions you’d hit along the way. But Algorithmic Thinking takes you from the initial idea to the final breakthrough, setbacks and all. Problem solving is a raw, real journey, and this book captures its spirit perfectly. I highly recommend it." —Ava Pun, medal winner in the International Olympiad in Informatics Programming Competition"The strength of the book is that the process of discovering and improving algorithms is described in detail and various different approaches are analyzed. Compared to traditional textbooks, there are also interesting topics that are not usually covered . . . Overall, the book is clearly written, the topics are well-chosen, and the book is a good introduction to some important competitive programming techniques."—Antti Laaksonen, Olympiads in InformaticsTable of ContentsForewordIntroductionChapter 1: Hash TablesChapter 2: Trees and RecursionChapter 3: Memoization and Dynamic ProgrammingChapter 4: Graphs and Breadth-First SearchChapter 5: Shortest Paths in Weighted GraphsChapter 6: Binary SearchChapter 7: Heaps and Segment TreesChapter 8: Union-FindChapter 9: AfterwordAppendix A: Algorithm RuntimeAppendix B: Because I Can’t ResistAppendix C: Problem CreditsIndex

    Out of stock

    £38.39

  • Well-Grounded Java Developer, The

    Manning Publications Well-Grounded Java Developer, The

    1 in stock

    Book SynopsisUnderstanding Java from the JVM up gives you a solid foundation to grow your expertise and take on advanced techniques for performance, concurrency, containerization, and more. In The Well-Grounded Java Developer, Second Edition you will learn: The new Java module system and why you should use it Bytecode for the JVM, including operations and classloading Performance tuning the JVM Working with Java's built-in concurrency and expanded options Programming in Kotlin and Clojure on the JVM Maximizing the benefits from your build/CI tooling with Maven and Gradle Running the JVM in containers Planning for future JVM releases The Well-Grounded Java Developer, Second Edition introduces both the modern innovations and timeless fundamentals you need to know to become a Java master. Authors Ben Evans, Martijn Verburg, and Jason Clark distil their decades of experience as Java Champions, veteran developers, and key contributors to the Java ecosystem into this clear and practical guide. about the technology Java's history of innovation, its huge collection of libraries and frameworks, and the flexibility of the JVM have cemented its place as one of the world's most popular programming languages. Although it's easy to get started with Java, understanding how the language intersects with the JVM is the key to unlocking the power of this awesome language and its deep ecosystem of frameworks, tools, and alternative JVM-based languages. about the book The Well-Grounded Java Developer, Second Edition is a complete revision of the classic original with the latest innovations of the Java platform. It upgrades your existing Java skills with both JVM fundamentals like bytecode, and powerful new features such as modules and concurrency models. You'll broaden your understanding of what's possible by exploring Kotlin and other JVM languages, and learn how functional programming can offer a powerful new perspective. Each concept is illustrated with hands-on examples, including a fully modularized application/library, build setups for Maven and Gradle, and creating your own multithreaded application.Trade Review'A required read to understand new technologies.' Michael Haller 'Provides a lot of great material and helps Java developers discover the "known unknowns" to build their breadth of knowledge that can be leveraged for exploring specific topics in more depth.' Andy Keffalas 'A really good foundation for leveling up your Java development skills. This is a great resource for anybody wanting to dig deeper into the Java ecosystem and learn more about how Java works.' Jared Duncan 'This is a fantastic book to reach beyond the typical Java developer environment.' Matt D.Table of Contentstable of contents PART 1: FROM 8 TO 11 TO 17 READ IN LIVEBOOK 1INTRODUCING MODERN JAVA READ IN LIVEBOOK 2JAVA MODULES READ IN LIVEBOOK 3JAVA 17 PART 2: UNDER THE HOOD READ IN LIVEBOOK 4CLASS FILES AND BYTECODE READ IN LIVEBOOK 5JAVA CONCURRENCY FUNDAMENTALS READ IN LIVEBOOK 6JDK CONCURRENCY LIBRARIES 7 UNDERSTANDING JAVA PERFORMANCE PART 3: NON-JAVA LANGUAGES ON THE JVM READ IN LIVEBOOK 8ALTERNATIVE JVM LANGUAGES READ IN LIVEBOOK 9KOTLIN READ IN LIVEBOOK 10CLOJURE: A DIFFERENT VIEW OF PROGRAMMING PART 4: BUILD AND DEPLOYMENT READ IN LIVEBOOK 11BUILDING WITH GRADLE & MAVEN 12 RUNNING JAVA IN CONTAINERS READ IN LIVEBOOK 13TESTING FUNDAMENTALS 14 TESTING BEYOND JUNIT PART 5: NEW FRONTIERS READ IN LIVEBOOK 15ADVANCED FUNCTIONAL PROGRAMMING 16 ADVANCED CONCURRENT PROGRAMMING 17 MODERN INTERNALS 18 JAVA BEYOND 11 APPENDIXES APPENDIX A: INSTALLING JAVA 11 & BUILDS AND LICENSES APPENDIX B: REVIEW OF STREAMS AND FUNCTIONAL PROGRAMMING IN JAVA

    1 in stock

    £41.39

  • JavaScript Crash Course

    No Starch Press,US JavaScript Crash Course

    3 in stock

    Book Synopsis

    3 in stock

    £35.99

  • Bug Bounty Bootcamp: The Guide to Finding and

    No Starch Press,US Bug Bounty Bootcamp: The Guide to Finding and

    2 in stock

    Book SynopsisBug bounty programmes are company-sponsored programmes that invite researchers to search for vulnerabilities on their applications and reward them for their findings. This book is designed to help beginners with little to no security experience learn web hacking, find bugs, and stay competitive in this booming and lucrative industry. You'll learn how to hack mobile apps, find vulnerabilities in APIs, and automate your hacking process. By the end of the book, you'll have learned the tools and techniques necessary to be a competent web hacker and find bugs on a bug bounty programme.Trade Review"A really good book for getting started in Bug Bounty, out at a time when something like this was really needed. You can take as many ethical hacking courses as you want, but when it comes to bug bounty, there is so much information and tools it can be imitating to start . . . This really should be the first book read by ANYONE looking to start in the bug bounty game."—Alex/Muldwych, The Security Noob"Bug Bounty Bootcamp should be on every hacker's shelf. Vickie Li answers an important question: 'So you found your first flaw, what's next?' By explaining how to write a bug report and interact with clients, she presents a wonderful guide on starting your security career."—Andrew Orr, Associate Editor, The Mac Observer"I have enjoyed Bug Bounty Bootcamp over the past few weeks and this is great for bug bounty beginners like myself. Anyone who is interested in learning more about different web vulnerabilities, bug bounty platforms, how the internet works, and how to make money making the web safer this is the book for you. Thanks to Vickie for writing such a great book!"—The Digital Empress, YouTuber and Blogger"Bug Bounty Bootcamp by Vickie Li is a thorough and masterful explanation for how to find bugs and responsibly report them. It is written so clearly, and provides such useful step-by-step instructions that as I was reading it, I was tempted to start hunting for bugs myself."—Cynthia Brumfield, President, DCT-Associates"Bug Bounty Bootcamp is a great resource for those who want to participate in Bug Bounties because it not only teaches you about the technical aspects, but helps you develop a methodology and sustain your testing. Some technology knowledge is assumed, but it does a solid job of describing the relevant vulnerability types from first principles, so it can be a strong resource for those new to the security space. The writing style is clear and to the point."—David Tomaschik, Security Engineer at Google, Blogger at System Overlord"I highly suggest reading Bug Bounty Bootcamp."—@HolyBugx"Pure GEM. Learned a lot of things from her book."—Aakash Choudhary, @LearnerHunter"Loved the book. Well written, clear, concise, and easy to follow. Everyone from the beginner bug hunter to the seasoned pro will find a nugget, some nuggets or just pure nuggets of amazing information, tips and advice."—Douglas Campbell, Advanced Reviewer"The only book you need to get started in bug bounty is @vickieli7's book coming out from @nostarch, Bug Bounty Bootcamp. It's a detailed how-to with lots of technical how-to steps."—Metacurity, Top Infosec News Destination, @Metacurity"The new go-to resource for a beginner in web app hacking . . . I recommend this book before anything else for a beginner trying to learn web security. Vickie provides an excellent delivery of breaking down complex concepts that makes it easy to comprehend. Also, the step by step guidance of exploiting a vulnerability is fantastic to refer back to . . . If you are a complete beginner and feel confused or lost in all of the information out there then stop, grab this book, read through it once, then use it as your guide."—AntiRuse, @AntiRuse, Blogger"Definitely recommend it!"—Michael, @DoAbarrel_Troll"Bug Bounty Bootcamp is *the* book for everyone in Information Technology, not just those interested in bug bounties . . . This easy-to-read guide breaks down complicated topics into a simple progression through technical concepts. From a foundational overview of the industry and how to get started, the reader progresses from Cross Site Scripting all the way through to API hacking and use of Fuzzers. Vickie Li has done a tremendous service to information security by sharing her expert understanding of bug hunting in a highly accessible way. Recommended reading for all IT professionals, new or veteran."—Jess Vachon, Advanced Reviewer"Vicki Li’s book took me from knowing nothing about bug bounties, to finding my first bug. Li goes over the process of bug bounties, writing reports, and how to make relationships with companies. Li also has expert techniques that will help your automate your hacking experience and even hacking android apps."—Anthony Ware, Advanced Reviewer"For anyone interested in bug detection of web services, this book is for you. It takes an approach that is enjoyable for all levels. It covers the essentials for understanding web servers and why the assortment of vulnerabilities exists with steps in what to look for in approaching those security risks. It’s not going to make you an expert overnight, but it will set you on the path towards success, bypassing the common mistakes where others have fallen."—Riley A., Advanced Reviewer"Step-by-step instructions to achieve your first bug bounty and a great book to reference as a security professional. This book will give insight to how bug bounty programs operate and provide resources to learn programming, security tools, and breakdown OWASP top 10 vulnerabilities."—Jessica W., Advanced Reviewer"Since reading The Web Application Hacker's Handbook a few years ago, I haven't seen that much web security knowledge organized in one place as in Bug Bounty Bootcamp. Vickie did a fantastic job of covering many different vulnerability classes that are important for offensively testing web applications. Explanations are made so that beginners would understand them but I was also able to find some inspirations each time I looked at the book when testing a specific vulnerability class. I highly recommend Bug Bounty Bootcamp for everyone who wants to learn about web security."—Bug Bounty Reports Explained, YouTuber and Advanced Reviewer"A great companion to @yaworsk's earlier book, Real-World Bounty Hunting (also by@nostarch), and deserves a place on your bookshelf."—@jub0bs"An informative and well-written guide that should be of interest to anyone considering a career in API hacking through bug bounty hunting." —Dana Epp, Security BoulevardTable of ContentsIntroductionIntroductionPart I: The IndustryChapter 1: Picking a Bug Bounty ProgramChapter 2: Sustaining Your SuccessPart II: Getting StartedChapter 3: How the Internet WorksChapter 4: Environmental Setup and Traffic InterceptionChapter 5: Web Hacking ReconnaissancePart III: Web VulnerabilitiesChapter 6: Cross-Site ScriptingChapter 7: Open RedirectsChapter 8: ClickjackingChapter 9: Cross-Site Request ForgeryChapter 10: Insecure Direct Object ReferenceChapter 11: SQL InjectionChapter 12: Race ConditionsChapter 13: Server-Side Request ForgeryChapter 14: Insecure DeserializationChapter 15: XML External Entity VulnerabilitiesChapter 16: Template InjectionChapter 17: Application Logic Errors and Broken Access ControlChapter 18: Remote Code ExecutionChapter 19: Same Origin Policy IssuesChapter 20: Single Sign-on IssuesChapter 21: Information DisclosurePart IV: Expert TechniquesChapter 22: Conducting Code ReviewsChapter 23: Hacking Android AppsChapter 24: API HackingChapter 25: Automatic Vulnerability Discovery Using FuzzersIndex

    2 in stock

    £35.99

  • Driving Value with Sprint Goals

    Pearson Education (US) Driving Value with Sprint Goals

    1 in stock

    Book SynopsisMaarten Dalmijn is a consultant, speaker and trainer at Dalmijn Consulting. Maarten helps teams to beat the feature factory all over the world. Millions of practitioners have read his best-practice articles on Agile, Scrum, and Product Management. He specializes in helping companies to build empowered teams that can discover better ways of delivering value. Maarten is a frequent speaker at Fortune 500 companies, government organizations and international industry conferences. He has worked with many award-winning start-ups and scale-ups. Maarten is an ambassador and editor at Serious Scrum, the largest Scrum publication on Medium.Trade Review"Maarten masterfully bridges the gap between Scrum and product management. If you want to create products that truly make a difference, you need to read this book."--Pawel Huryn, Author, Product Coach "It is not just a book on Sprint Goals. It's an essential read for all those who work in a complex environment and try to make sense of things. "Maarten not only writes about Sprint Goals, but he also explains the hardest part of agile--what agile mindset means. This book will lead you to experience many breakthroughs. From what Scrum really is about, through why copy-pasting a scaling framework is not a recipe for success, to the biggest of them all--a breakthrough from a project-driven mentality to an agile one."--Maria Chec, Head of Agile Practice and Creator at Agile State of Mind "Maarten's relentless focus on value delivery instead of mechanically churning out new features is a breath of fresh air. This book will help you to up your game, align around value, and use the power of sprint goals to build great products."--Chris Stone, The Virtual Agile Coach "This book is a must-read if you want to understand Scrum's essence and empower your team. Instead of covering how to do Scrum right, Maarten shows you how to leverage the framework to deliver value. Intertwined with personal stories and history lessons, you'll find concrete examples, models, and practical advice to help you build empowered teams that deliver the desired outcomes."--Jenny Herald, VP of Evangelism at Quantive and host of the Dreams with Deadlines podcast "Starting with some schoolchildren dropped in the dark on an island who manage to find their way back, the author explains in a down-to-earth way how breaking projects down into sprints helps us to overcome the universal problem of friction. The book brings insights to daily practice in a clear, simple, and engaging way."--Stephen Bungay, author of The Art of Action "I don't think there is anything like it in the area of Scrum. It reads like a novel and is stuffed full of brilliant ideas and insights. Maarten has a knack for illustrating complex concepts with inspiring examples completely unrelated to Scrum and Agile. This book will change the way you think about Scrum and Agile. I would recommend it to anyone remotely interested in a new way of working!"--Erik de Bos, writer of the Agile Thoughts newsletter "'Sprint Goals are the beating heart of Scrum,' writes Maarten Dalmijn, and this couldn't be truer. Without them, Scrum falls apart. Unfortunately, we know from scientific research that many Scrum teams don't use Sprint Goals or struggle greatly with them. This book makes a powerful argument for why Scrum teams need Sprint Goals and offers invaluable anecdotes, practical tips, and guidelines to help you get started right away."--Christiaan Verwijs, author of the Zombie Scrum Survival Guide, co-founder of The Liberators, and Professional Scrum Trainer at Scrum.org "If you're looking for a Sprint Goal-writing recipe book to blindly follow, this is not the book for you. If you are looking for an engaging tour of ideas, which helps you discover the ecosystem to create meaningful goals, you'd be wise to read this book."--Jem Jelly, Certified Scrum Trainer & ConsultantTable of ContentsForeword by Jurgen Appelo xviiForeword by Janna Bastow xixIntroduction xxiAcknowledgments xxvAbout the Author xxvii Part I: Why Goals Matter 1 Chapter 1: Imperfect Plans, Flawed Execution, and Unpredictable Results 3Dealing with the "Fog of Beforehand" One Step at a Time 4Facing the Unknown in Software Development 6How the Agile Manifesto Covers Common Anti-Patterns for Dealing with Friction 15Key Takeaways 16 Chapter 2: More Friction, More Surprises 19The Cynefin Model: Being Aware of Your Situation 20Key Takeaways 32 Chapter 3: Countering Friction by Leading with Intent 33The Tragedy of Following the Plan and the Resulting Transformation of the Prussian and German Army 34Auftragstaktik: Obeying Intent Rather Than Blindly Following Orders 35Closing the Three Gaps by Leading with Intent 36Turn the Ship Around: Intent-Based Leadership on a Submarine 38Key Takeaways 41 Chapter 4: Tales of Opposing Goals 43Why Do Common Goals Matter? 43Working Together with Opposing Goals 44Surviving in Roadmap Hell 46How Do Common Goals Enable Teamwork? 48Key Takeaways 49Part I Overall Takeaways 49 Part II: Sprint Goals Are the Beating Heart of Scrum 51 Chapter 5: A Featherlight Introduction to Scrum 53Scrum: Sprinting One Step at a Time53The Sprint Contains All Scrum Events 55Scrum Deals with Friction Through Feedback Loops 61Key Takeaways 64 Chapter 6: The Fundamental Role of Sprint Goals in Scrum 67The Essence of Scrum: Sprint with a Goal 67What Are the Scrum Artifacts Together with Their Commitments? 71How Do Product Goals Fit In? 72How Does Scrum Help with Countering Friction and Dealing with Surprises? 74Key Takeaways 76 Chapter 7: What Happens When You Don't Use Sprint Goals? 77Sprint Loses Its Purpose and the Sprint Backlog Becomes the Goal 77Following the Plan Becomes More Important Than Meeting the Objective 78Everything in the Sprint Becomes Equally Important 79Working Without Sprint Goals Leads to Technical Debt 79No Control Over What Gets Finished 80Key Takeaways 81 Chapter 8: Two Very Different Versions of Scrum 83Why Do Many People Believe Scrum Isn't Agile? 84Anaconda-Style Scrum and Hummingbird-Style Scrum in Practice 86Key Takeaways 92Part II Overall Takeaways 92 Part III: Driving Value with Sprint Goals 95 Chapter 9: Creating Sprint Goals 97What Is a Sprint Goal? 97Crafting Sprint Goals with the FOCUS Mnemonic 98Key Takeaways 102 Chapter 10: Sprint Goals in Practice at the Scrum Events 103Why Should You Start Discussing the Sprint Goal at the Sprint Review? 103Crafting a Sprint Goal During Sprint Planning 106Why You Shouldn't Plan Your Sprint at Full Capacity 107Creating a Sprint Goal Without a Refined Product Backlog 111The Sprint Goal at the Daily Scrum 112The Sprint Goal at the Sprint Review113The Sprint Goal at the Sprint Retrospective 114Key Takeaways 115 Chapter 11: More Features, More Value? 117How Does Our Product Deliver Value? 117Selling Rocks as Pets 119The Cookie Store That Was Guaranteed to Fail 119Value Is Multifaceted and a Matter of Perspective 120Value Is a Tricky Subject 121Building a Product Starts with Listening 122The Three Types of Uncertainty 123The Cobra Effect: When Exterminating Cobras Causes a Cobra Population Boom 124Having Outputs Drive the Right Outcomes 125Meeting Aggressive Timelines Is Often the Biggest Enemy of Delivering Value 126Focusing on Meeting Specifications Limits You to Beforehand Knowledge 127Why You Should Stop Obsessing Over Your Velocity 128All Features Are Innocent of Delivering Value Until Proven Guilty 128Output Focus: People Don't Want a Quarter-Inch Drill 129Key Takeaways 130 Chapter 12: Driving Outcomes with Outputs 131Having Only Features on Your Product Backlog Is Not Good Enough 131A Single Metric to Rule Them All? 132Why Should Your Product Backlog Be Short? 136Don't Waste Too Much Time on "A Priori" Prioritization 137Key Takeaways 139 Chapter 13: Product Vision: A Purposeful Direction for Your Product 141Dispelling the Mystery of a Product Vision 141The Lab Mouse Meant for Bigger Things 143The Swiss Aerodynamics Engineer Who Married an Italian Woman 144Key Takeaways 146 Chapter 14: Product Strategy 147Strategy Means Striking at Weakness 148Strategy Is Designing a Way to Deal with a Challenge 149Key Takeaways 151Part III Overall Takeaways 152 Part IV: Overcoming Common Sprint Goal Obstacles 155 Chapter 15: Scrum Anti-Patterns That Amplify Friction and Surprises 157Spikes for Everything: Knowledge Gap 158Christmas Wish List Backlog: Knowledge Gap 160Groundhog Day Refinement: Knowledge Gap 161Eternal Sprint Planning: Knowledge and Alignment Gaps 162Interruption Planning: Alignment Gap 163Definition of Ready: Knowledge and Effects Gaps 163Fixating on Pretty Burn-Down Charts: Knowledge, Alignment, and Effects Gaps 164Embrace Not Knowing and Act in the Moment 165Key Takeaways 166 Chapter 16: Dealing with Common Sprint Goal Obstacles 167Too Many Competing Priorities 167Impossible to Set a Single Sprint Goal 169The Sprint Backlog Is the Goal 169The Sprint Goal as an Afterthought 170Sprint Goals Tied to the Solution Direction 171The Product Owner Decides the Sprint Goal 171Too Many Dependencies on Other Teams 172The Team Is Scared to Commit to a Sprint Goal 174Too Much WIP (Work in Progress) 175Opposing Goals Between Teams 176Management Love for the Feature Factory 177OKR-Induced Friction 178Key Takeaways 180 Chapter 17: From Stakeholder Management to Stakeholder Inclusion 181Working in a State of Perpetual Displeasure 182Why Should You Include Your Stakeholders? 185How Do You Include Your Stakeholders? 186Dealing with Stakeholders Means Controlling Your Emotions 187Key Takeaways 188 Chapter 18: Scaling Scrum Without Frameworks 191Why Your Development Team Structure Might Be Slowing You Down 191Fix Your Problems: Do Not Expect That from a Scaling Framework 193Why Do Scaling Issues Happen? 195What to Do Instead of Defaulting to a Scaling Framework 197Key Takeaways 201 Chapter 19: Empowering Teams to Discover Better Ways of Delivering Value 203Making Music Without Making a Sound 203It All Starts with Addressing Beliefs 206Trying Things Out Requires Psychological Safety 207What Does an Empowered Scrum Team Look Like? 208How Do You Provide Sufficient Direction and Context? 209Create a Model for How Your Product Delivers Value 210Discovery, Delivery, and Validation 210Scrum Is About Discovering Better Ways of Delivering Value 212 Index 217

    1 in stock

    £23.99

  • Fundamentals of Software Architecture

    O'Reilly Media Fundamentals of Software Architecture

    Out of stock

    Book SynopsisSalary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This book provides the first comprehensive overview of software architecture’s many aspects.

    Out of stock

    £63.99

  • Cloud Native - Designing change-tolerant software

    Manning Publications Cloud Native - Designing change-tolerant software

    Out of stock

    Book SynopsisWith cloud platforms like AWS, Azure, and Google Cloud, even small teams can take full advantage of web-scale distributed application patterns and practice. Cloud Native: Designing Change-tolerant Software is the best guide to developing strong applications that thrive in the dynamic, distributed, virtual world of the cloud. Key Features · The application lifecycle of Cloud Native apps · Automated configuration management · Multi-tenant services, versioned services, and parallel deploys · Understanding Cloud Native Routing · Managing dependencies between apps and services Requires intermediate programming skill with Java or a similar language. Some experience with server-side development is helpful. About the technology Cloud-native software promises near-zero downtime, shortened feedback cycles, multi-device support, and improved cost control. All this means developers need to learn new skills and techniques, along with a new way of thinking about application design. Cornelia Davis is the Sr. Director of Technology at Pivotal Software. A teacher at heart, Cornelia has spent the last 25 making better software and better software developers.

    Out of stock

    £35.99

  • The Algorithm Design Manual

    Springer Nature Switzerland AG The Algorithm Design Manual

    2 in stock

    Book Synopsis"My absolute favorite for this kind of interview preparation is Steven Skiena’s The Algorithm Design Manual. More than any other book it helped me understand just how astonishingly commonplace … graph problems are -- they should be part of every working programmer’s toolkit. The book also covers basic data structures and sorting algorithms, which is a nice bonus. … every 1 – pager has a simple picture, making it easy to remember. This is a great way to learn how to identify hundreds of problem types." (Steve Yegge, Get that Job at Google)"Steven Skiena’s Algorithm Design Manual retains its title as the best and most comprehensive practical algorithm guide to help identify and solve problems. … Every programmer should read this book, and anyone working in the field should keep it close to hand. … This is the best investment … a programmer or aspiring programmer can make." (Harold Thimbleby, Times Higher Education)"It is wonderful to open to a random spot and discover an interesting algorithm. This is the only textbook I felt compelled to bring with me out of my student days.... The color really adds a lot of energy to the new edition of the book!" (Cory Bart, University of Delaware)"The is the most approachable book on algorithms I have." (Megan Squire, Elon University)---This newly expanded and updated third edition of the best-selling classic continues to take the "mystery" out of designing algorithms, and analyzing their efficiency. It serves as the primary textbook of choice for algorithm design courses and interview self-study, while maintaining its status as the premier practical reference guide to algorithms for programmers, researchers, and students. The reader-friendly Algorithm Design Manual provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Practical Algorithm Design, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, the Hitchhiker's Guide to Algorithms, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations, and an extensive bibliography. NEW to the third edition: -- New and expanded coverage of randomized algorithms, hashing, divide and conquer, approximation algorithms, and quantum computing -- Provides full online support for lecturers, including an improved website component with lecture slides and videos -- Full color illustrations and code instantly clarify difficult concepts -- Includes several new "war stories" relating experiences from real-world applications -- Over 100 new problems, including programming-challenge problems from LeetCode and Hackerrank. -- Provides up-to-date links leading to the best implementations available in C, C++, and Java Additional Learning Tools: -- Contains a unique catalog identifying the 75 algorithmic problems that arise most often in practice, leading the reader down the right path to solve them -- Exercises include "job interview problems" from major software companies -- Highlighted "take home lessons" emphasize essential concepts -- The "no theorem-proof" style provides a uniquely accessible and intuitive approach to a challenging subject -- Many algorithms are presented with actual code (written in C) -- Provides comprehensive references to both survey articles and the primary literature Written by a well-known algorithms researcher who received the IEEE Computer Science and Engineering Teaching Award, this substantially enhanced third edition of The Algorithm Design Manual is an essential learning tool for students and professionals needed a solid grounding in algorithms. Professor Skiena is also the author of the popular Springer texts, The Data Science Design Manual and Programming Challenges: The Programming Contest Training Manual.Table of ContentsIntroduction to Algorithm DesignAlgorithm AnalysisData StructuresSorting and SearchingDivide and ConquerRandomized Algorithms and HashingGraph TraversalWeighted Graph AlgorithmsCombinatorial Search and Heuristic MethodsDynamic ProgrammingNP-CompletenessDealing with Hard Problems How to Design Algorithms14 A Catalog of Algorithmic Problems 43715 Data Structures 43915.1 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44015.2 Priority Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44515.3 Sux Trees and Arrays . . . . . . . . . . . . . . . . . . . . . . . 44815.4 Graph Data Structures . . . . . . . . . . . . . . . . . . . . . . . . 45215.5 Set Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . 45615.6 Kd-Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46016 Numerical Problems 46516.1 Solving Linear Equations . . . . . . . . . . . . . . . . . . . . . . 46716.2 Bandwidth Reduction . . . . . . . . . . . . . . . . . . . . . . . . 47016.3 Matrix Multiplication . . . . . . . . . . . . . . . . . . . . . . . . 47216.4 Determinants and Permanents . . . . . . . . . . . . . . . . . . . 47516.5 Constrained/Unconstrained Optimization . . . . . . . . . . . . . 47816.6 Linear Programming . . . . . . . . . . . . . . . . . . . . . . . . . 48216.7 Random Number Generation . . . . . . . . . . . . . . . . . . . . 48616.8 Factoring and Primality Testing . . . . . . . . . . . . . . . . . . . 49016.9 Arbitrary-Precision Arithmetic . . . . . . . . . . . . . . . . . . . 49316.10Knapsack Problem . . . . . . . . . . . . . . . . . . . . . . . . . . 49716.11Discrete Fourier Transform . . . . . . . . . . . . . . . . . . . . . 50117 Combinatorial Problems 50517.1 Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50617.2 Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51017.3 Median and Selection . . . . . . . . . . . . . . . . . . . . . . . . . 51417.4 Generating Permutations . . . . . . . . . . . . . . . . . . . . . . 51717.5 Generating Subsets . . . . . . . . . . . . . . . . . . . . . . . . . . 52117.6 Generating Partitions . . . . . . . . . . . . . . . . . . . . . . . . 52417.7 Generating Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . 52817.8 Calendrical Calculations . . . . . . . . . . . . . . . . . . . . . . . 53217.9 Job Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53417.10Satisability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53718 Graph Problems: Polynomial-Time 54118.1 Connected Components . . . . . . . . . . . . . . . . . . . . . . . 54218.2 Topological Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . 54618.3 Minimum Spanning Tree . . . . . . . . . . . . . . . . . . . . . . . 54918.4 Shortest Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55418.5 Transitive Closure and Reduction . . . . . . . . . . . . . . . . . . 55918.6 Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56218.7 Eulerian Cycle/Chinese Postman . . . . . . . . . . . . . . . . . . 56518.8 Edge and Vertex Connectivity . . . . . . . . . . . . . . . . . . . . 56816 CONTENTS18.9 Network Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57118.10Drawing Graphs Nicely . . . . . . . . . . . . . . . . . . . . . . . 57418.11Drawing Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57818.12Planarity Detection and Embedding . . . . . . . . . . . . . . . . 58119 Graph Problems: NP-Hard 58519.1 Clique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58619.2 Independent Set . . . . . . . . . . . . . . . . . . . . . . . . . . . 58919.3 Vertex Cover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59119.4 Traveling Salesman Problem . . . . . . . . . . . . . . . . . . . . . 59419.5 Hamiltonian Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . 59819.6 Graph Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60119.7 Vertex Coloring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60419.8 Edge Coloring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60819.9 Graph Isomorphism . . . . . . . . . . . . . . . . . . . . . . . . . 61019.10Steiner Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61419.11Feedback Edge/Vertex Set . . . . . . . . . . . . . . . . . . . . . . 61820 Computational Geometry 62120.1 Robust Geometric Primitives . . . . . . . . . . . . . . . . . . . . 62220.2 Convex Hull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62620.3 Triangulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63020.4 Voronoi Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . 63420.5 Nearest Neighbor Search . . . . . . . . . . . . . . . . . . . . . . . 63720.6 Range Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64120.7 Point Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64420.8 Intersection Detection . . . . . . . . . . . . . . . . . . . . . . . . 64820.9 Bin Packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65220.10Medial-Axis Transform . . . . . . . . . . . . . . . . . . . . . . . . 65520.11Polygon Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . 65820.12Simplifying Polygons . . . . . . . . . . . . . . . . . . . . . . . . . 66120.13Shape Similarity . . . . . . . . . . . . . . . . . . . . . . . . . . . 66420.14Motion Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . 66720.15Maintaining Line Arrangements . . . . . . . . . . . . . . . . . . . 67120.16Minkowski Sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67421 Set and String Problems 67721.1 Set Cover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67821.2 Set Packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68221.3 String Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . 68521.4 Approximate String Matching . . . . . . . . . . . . . . . . . . . . 68821.5 Text Compression . . . . . . . . . . . . . . . . . . . . . . . . . . 69321.6 Cryptography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69721.7 Finite State Machine Minimization . . . . . . . . . . . . . . . . . 70221.8 Longest Common Substring/Subsequence . . . . . . . . . . . . . 70621.9 Shortest Common Superstring . . . . . . . . . . . . . . . . . . . . 709CONTENTS 1722 Algorithmic Resources 71322.1 Algorithm Libraries . . . . . . . . . . . . . . . . . . . . . . . . . 71322.1.1 LEDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71322.1.2 CGAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71422.1.3 Boost Graph Library . . . . . . . . . . . . . . . . . . . . . 71422.1.4 Netlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71422.1.5 Collected Algorithms of the ACM . . . . . . . . . . . . . 71522.1.6 GitHub and SourceForge . . . . . . . . . . . . . . . . . . . 71522.1.7 The Stanford GraphBase . . . . . . . . . . . . . . . . . . 71522.1.8 Combinatorica . . . . . . . . . . . . . . . . . . . . . . . . 71622.1.9 Programs from Books . . . . . . . . . . . . . . . . . . . . 71622.2 Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71722.3 Online Bibliographic Resources . . . . . . . . . . . . . . . . . . . 71822.4 Professional Consulting Services . . . . . . . . . . . . . . . . . . 71823 Bibliography 719Index 771

    2 in stock

    £58.49

  • The Rust Programming Language: 2nd Edition

    No Starch Press,US The Rust Programming Language: 2nd Edition

    15 in stock

    Book SynopsisWith over 50,000 copies sold, The Rust Programming Language is the quintessential guide to programming in Rust. Thoroughly updated to Rust's latest version, this edition is considered the language's official documentation. The Rust Programming Language, 2nd Edition is the official language guide for Rust 2021, and the best way to get started with Rust. The new edition includes a quick-reference section on organizing code with modules, and improved closure examples of captures, the move keyboard, and Fn traits. From web apps to operating systems, Rust is the safe, fast, reliable programming language used for an expansive variety of applications. Revised and updated by the original authors, the second edition of The Rust Programming Language shows readers how to take full advantage of Rust 2021 features, from installation to creating robust and scalable programs. It begins with the basics, like creating functions and binding variables, then moves on to more advanced concepts, like errorTrade Review"The Rust Programming Language has always been, and continues to be, the first place I point anyone looking to learn Rust. It's referred to simply as "The Book", and with good reason -- it's comprehensive and elaborate, yet friendly and thoughtful, and serves as a guide not only to the language itself, but to the principles and mental models that Rust encourages its users to adopt. The 2nd edition is a reflection of the ongoing love for the book in the community, and ensures that it will remain a solid introduction to the best Rust has to offer for years to come."—Jon Gjengset, author of Rust for Rustaceans "The Rust Programming Language, 2nd Edition has been improved, refined, and still remains *the book* to get started with learning Rust. Whether an experienced or a new Rustacean it's an invaluable resource on how Rust works." —Michael Gattozzi, Senior Software Engineer at Fastly "A great resource for mastering Rust's fundamentals. Rust is a language that rewards a deep understanding of its features, from ownership rules to pattern matching, and this book is an excellent tool to achieve that. . . . If you're thinking about seriously learning Rust, this book is for you."—Adam Vartanian, Engineering Manager at Cord"From a person who read the first edition front to back, the second edition of The Rust Programming Language met and exceeded my expectations! It's well-written and formatted to help introduce the reader to all the concepts of Rust. . . . Overall, this edition won't disappoint and is an excellent addition to a programmer's personal library." —Jared Wolff, Owner, Circuit Dojo LLC"Verdict: Recommended"—Paul Floyd, CVu MagazineTable of ContentsForewordPrefaceAcknowledgmentsIntroductionChapter 1: Getting StartedChapter 2: Programming a Guessing GameChapter 3: Common Programming ConceptsChapter 4: Understanding OwnershipChapter 5: Using Structs to Structure Related DataChapter 6: Enums and Pattern MatchingChapter 7: Managing Growing Projects with Packages, Crates, and ModulesChapter 8: Common CollectionsChapter 9: Error HandlingChapter 10: Generic Types, Traits, and LifetimesChapter 11: Writing Automated TestsChapter 12: An I/O Project: Building a Command Line ProgramChapter 13: Functional Language Features: Iterators and Closures Chapter 14: More About Cargo and Crates.ioChapter 15: Smart PointersChapter 16: Fearless ConcurrencyChapter 17: Object-Oriented Programming FeaturesChapter 18: Patterns and MatchingChapter 19: Advanced FeaturesChapter 20: Final Project: Building a Multithreaded Web ServerAppendix A: KeywordsAppendix B: Operators and SymbolsAppendix C: Derivable TraitsAppendix D: Useful Development Tools Appendix E: EditionsIndex

    15 in stock

    £35.99

  • Evading Edr: The Definitive Guide to Defeating

    No Starch Press,US Evading Edr: The Definitive Guide to Defeating

    7 in stock

    Book SynopsisNearly every enterprise uses an Endpoint Detection and Response (EDR) agent to monitor the devices on their network for signs of an attack. But that doesn't mean security defenders grasp how these systems actually work. This book demystifies EDR, taking you on a deep dive into how EDRs detect adversary activity. Chapter by chapter, you'll learn that EDR is not a magical black box - it's just a complex software application built around a few easy-to-understand components. The author uses his years of experience as a red team operator to investigate each of the most common sensor components, discussing their purpose, explaining their implementation, and showing the ways they collect various data points from the Microsoft operating system. In addition to covering the theory behind designing an effective EDR, each chapter also reveals documented evasion strategies for bypassing EDRs that red teamers can use in their engagements.Trade Review"A great book for red and blue [people]! It is a great resource for anyone who wants to learn more about how EDRs work and Windows internals with a security perspective."—Olaf Hartong, @olafhartong, researcher at FalconForce"If you spend any time around EDR's, or are just interested in how they work... this book is an invaluable addition to your collection."—Adam Chester, @_xpn_, RedTeamer at TrustedSec"A masterclass in understanding EDR internals...a very relevant handbook for both attackers and defenders to learn about the strengths, but also limitations and blind spots of EDR software."—Arris Huijgen, @bitsadminTable of ContentsIntroductionChapter 1: EDR-chitectureChapter 2: Function-Hooking DLLsChapter 3: Thread and Process NotificationsChapter 4: Object NotificationsChapter 5: Image-Load and Registry NotificationsChapter 6: MinifiltersChapter 7: Network Filter DriversChapter 8: Event Tracing for WindowsChapter 9: ScannersChapter 10: Anti-Malware Scan InterfaceChapter 11: Early Launch Anti-Malware DriversChapter 12: Microsoft-Windows-Threat-IntelligenceChapter 13: A Detection-Aware AttackAppendix

    7 in stock

    £42.74

  • Bayesian Statistics The Fun Way

    No Starch Press,US Bayesian Statistics The Fun Way

    7 in stock

    Book SynopsisBayesian Statistics the Fun Way gets you understanding the theory behind data analysis without making you slog through a load of dry concepts first - with no programming experience necessary. You'll learn about probability with LEGO, statistics through Star Wars, distributions with bomb fuses, estimation through precipitation, and come away with some strong mathematical reasoning skills. This is a super approachable book for people who need to do data science and probability work in their lives, but never got a good grip on the underlying theory.Trade Review"An excellent introduction to subjects critical to all data scientists."—Inside Big Data"The author uses great examples to clarify key concepts . . . I would highly recommend as a supplement for any stats student or professional looking to refresh on Bayesian statistics." —Stan T., Design Collective

    7 in stock

    £28.04

  • Arduino For Dummies

    John Wiley & Sons Inc Arduino For Dummies

    15 in 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

    15 in stock

    £17.59

© 2025 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