Computer programming / software engineering Books
Manning Publications Nim in Action
Book SynopsisDESCRIPTION Nim is a new general-purpose programming language that offers support for systems programming, object oriented programming, procedural programming, functional programming, and more. Nim combines the speed of C with the expressiveness of Python and the flexibility of Lisp and it compiles to C as well as C++, Objective C, and even JavaScript. Nim's features make it perfect for developing anything from web applications to operating systems. Nim in Action introduces the Nim programming language and teaches readers how to write native software applications and libraries, web applications, embedded device software, and programs that communicate over the internet. This book is full of hands-on examples that teach how to test, debug, document, and package Nim applications. It also reveals how to interface with foreign languages such as C and C++ and how to use metaprogramming features to write domain specific languages. This book demonstrates how to implement a fully-functioning chat server, a Twitter clone, and many other software projects. It provides readers with a solid knowledge of Nim and the ability to use it to write powerful, portable and efficient applications. KEY FEATURES • Teaches how to write portable and efficient applications in Nim • Written by one of the main contributors to the Nim language • Lots of practical, real world examples • Full of hands on code samples and projects • Compile to C, C++, Objective C, and even JavaScript AUDIENCE This book assumes you’re a working developer proficient with another language like Java, Ruby, Python, C#, or C++. ABOUT THE TECHNOLOGY Nim is a new programming language that allows developers to write efficient software using a compiler, which produces native binaries with zero dependencies via compilation to the C programming language. It is the only programming language which combines the speed of C with the expressiveness of Python and the flexibility of Lisp.
£37.99
Manning Publications Haskell in Depth
Book SynopsisTurn the corner from “Haskell student” to “Haskell developer.” Haskell in Depth explores the important language features and programming skills you’ll need to build production-quality software using Haskell. And along the way, you’ll pick up some interesting insights into why Haskell looks and works the way it does. Get ready to go deep! Haskell in Depth is the perfect second book on Haskell. After a quick refresher on Haskell basics, this hands-on guide dives into examples and application scenarios designed to teach how Haskell works and how to apply it correctly. You’ll learn about managing projects with Cabal and Stack, tackle error-handling and testing, and package programs and libraries for production deployment. Key Features · Organizing your projects with Cabal and Stack · Testing and profiling · Working with data · Building web services and networking apps · Using the sophisticated libraries like lens, vinyl, and servant Written for developers familiar with Haskell basics. About the technology As software becomes more complex, it’s essential to program efficiently using tools and techniques that guarantee your applications will run correctly, grow easily, and last a long time. Haskell is a functional programming language that blends a mathematically-rigorous approach to software design with a tested ecosystem of tools and libraries you can use to build deployable applications. Since 2008, Vitaly Bragilevsky has been teaching Haskell and functional programming to undergraduate students at the Southern Federal University located in Rostov-on-Don, Russia. He is a member of the Haskell 2020 Committee, and has worked on the source code of the Glasgow Haskell Compiler (GHC) and the Idris compiler, both of which are implemented in Haskell.
£45.59
Manning Publications Data Science at Scale with Python and Dask
Book SynopsisLarge datasets tend to be distributed, non-uniform, and prone to change. Dask simplifies the process of ingesting, filtering, and transforming data, reducing or eliminating the need for a heavyweight framework like Spark. Data Science at Scale with Python and Dask teaches readers how to build distributed data projects that can handle huge amounts of data. The book introduces Dask Data Frames and teaches helpful code patterns to streamline the reader’s analysis. Key Features Working with large structured datasets Writing DataFrames Cleaningand visualizing DataFrames Machine learning with Dask-ML Working with Bags and Arrays Written for data engineers and scientists with experience using Python. Knowledge of the PyData stack (Pandas, NumPy, and Scikit-learn) will be helpful. No experience with low-level parallelism is required. About the technology Dask is a self-contained, easily extendible library designed to query, stream, filter, and consolidate huge datasets. Jesse Daniel has five years of experience writing applications in Python, including three years working with in the PyData stack (Pandas, NumPy, SciPy, Scikit-Learn). Jesse joined the faculty of the University of Denver in 2016 as an adjunct professor of business information and analytics, where he currently teaches a Python for Data Science course.
£37.99
Manning Publications Terraform in Action
Book SynopsisTerraform is a provisioning tool for building, changing, and combining cloud infrastructure safely and efficiently. By defining infrastructure as code, Terraform empowers its users to deploy their entire stack to the cloud at the touch of a button. • Cloud architecture with Terraform • Sharing Terraform modules and the private module registry • Running Terraform securely in a multitenant environment • Strategies for performing Blue/Green deployments with Terraform By treating your infrastructure as a codeable application, you can instantaneously create and launch new components and respond efficiently to changes in demand and other use requirements. Terraform in Action introduces the Infrastructure-as-Code model using the amazing Terraform automation tool, teaching readers how to design and manage servers that can be provisioned, shared, changed, tested, and deployed at the touch of a button. Readers will unlock the full potential of Terraform to manage your infrastructure as easily as they manage their codebase. Written for readers experienced with major cloud platforms such as AWS or Google Cloud. Examples are in the Go language.
£36.09
Manning Publications Azure Infrastructure as Code
Book SynopsisAzure Infrastructure as Code is a comprehensive guide to seamlessly managing your application infrastructure with Azure's native IaC tools. The book is aimed at supporting collaboration between operations professionals and software developers, to help speed up and improve the quality of software delivery. After you master the basics, you'll dive into niche and advanced topics such as testing, reusing templates between multiple teams, and how you can define policy as code. Discover cutting-edge Deployment Stacks, and how they can help you clean up unused resources, group resources in logical containers to help visualize potential changes, and build starting plateaus for other teams to work on. About the Technology Infrastructure as code does away with time-consuming manual tasks—no more detailed scripts for creating the correct database or virtual machine. Instead, Azure's native IaC tools create infrastructure from a declarative specification in JSON (ARM) or a domain-specific language (Bicep). They empower users to create or recreate complete infrastructures with just a line of code, as well as take advantage of automation tools like Github Actions or Azure Pipelines.Trade Review"Nothing else on the market covers ARM templates like "Azure Infrastructure as Code." Stephen Goodman "I wish I had had this book when we started using Azure but its still been very useful to confirm and sometimes expand my knowledge of Azure DEVOps, I will be requiring my team to read it." Sebastian Rogers "If you're getting started with native Azure IaC tools, this is a great resource to learn fast." Radhakrishna MV "If you are an infrastructure engineer/application architect primarily workingwith Azure, this is for you. If you do stuff that touches Azure, the first few chapters will help you understand how Azure works." Amanda Debler
£41.39
Manning Publications Effective Platform Engineering
£41.39
Pearson Education F in Action
Book SynopsisIsaac Abraham is an experienced .NET developer and trainer. He's an F# MVP for his contributions to the .NET community.
£41.39
No Starch Press,US Real-world Python: A Hacker's Guide to Solving
Book SynopsisReal World Python is a collection of worked projects for readers who know some basic Python and want to do something with their knowledge. The book's short projects all teach thought processes and problem-solving as well as coding syntax. Readers learn to think their way through challenges like predicting the location of sailors lost at sea, discovering new planets, determining the author of a novel, selecting candidate landing sites for a Mars rover, programming a robot sentry gun to detect and shoot aliens (not humans), and more.Trade Review"Python programmers with a little bit of experience, looking for a fun challenge that relates to real-world examples, should read [this book]."—Geek Tech Stuff"I recommend this book for all Python learners!" —Kelly Paredes, Teaching Python podcast"This is the most amazing book anyone could pick up if they are unsure about what machine learning job they should focus on."—Ian Mizer, Atlanta Python Programmers Group"Read this book and do the work. You will find yourself building programs that address real-world problems and readying yourself to attack similarly challenging problems in whatever field you are working." —Sandra Henry-Stocker, Linux journalist, NetworkWorld (IDG)Table of ContentsIntroductionChapter 1: Saving Shipwrecked Sailors with Bayes’ RuleChapter 2: Attributing Authorship with StylometryChapter 3: Summarizing SpeechesChapter 4: Sending Super Secret MessagesChapter 5: Finding PlutoChapter 6: Winning the Moon Race with Apollo 8Chapter 7: Selecting Martian Landing SitesChapter 8: Detecting Distant ExoplanetsChapter 9: Identifying Friend or FoeChapter 10: Finding a Safe SpaceChapter 11: Charting ExoplanetsChapter 12: Are we Living in an Alien Simulation?Appendix: Answers to the practice problemsIndex
£26.39
No Starch Press,US Poc Or Gtfo Volume 3
Book SynopsisThe international journal of Proof-of-Concept or Get the Fuck Out is a celebrated collection of short essays on computer security, reverse engineering and retro-computing topics by many of the world's most famous hackers. Topics include how to dump the ROM from one of the most secure Sega Genesis games ever created; how to create a PDF that is also a Git repository; how to extract the Game Boy Advance BIOS ROM; how to sniff Bluetooth Low communications with the BCC Micro:Bit; how to conceal ZIP Files in NES Cartridges; how to remotely exploit a TetriNET Server; and more.Table of ContentsIntroduction 14 High Five to the Heavens 14:02 Z-Ring Phreaking by Vicki Pfau 14:03 Concerning Desert Studies by Manul Laphroaig 14:04 Texting with Flush+Reload by Taylor Hornby 14:05 Anti-Keylogging with Noise by Mike Myers 14:06 Random NOPs in ARM by Timmers and Spruyt 14:07 Ethernet Over GDB by Micah Elizabeth Scott 14:08 Control Panel Vulnerabilities by Geoff Chappell 14:09 Hash Function Pseudo-Fixpoints by Greg Kopf 14:10 A PDF That Shows Its Own MD5 by Mako 14:11 A GIF shows its own MD5! by Kristoffer “spq” Janke 14:12 MD5 NES Polyglot by Evan Sultanik and Evan Teran 15 I Slipped a Little 15:02 Pier Solar and the Great Reverser by Brandon L. Wilson 15:03 The Alternator Sermon by Manul Laphroaig 15:04 Text2Com by Saumil Shah 15:05 RISC-V Shellcode by Don A. Bailey 15:06 Cracking Gumball by 4am and Peter Ferrie 15:07 A PDF that is a Git Repo by Evan Sultanik 15:08 Zero Overhead Networking by Robert Graham 15:09 Detecting MIPS16 Emulation by Goodspeed and Speers 15:10 Tracing Race Conditions by BSDaemon and NadavCh 15:11 x86 without Data Fetches by Chris Domas 15:12 Java Key Store’s Coffin by Tobias “floyd” Ospelt 15:13 The PNG Gamma Trick by Hector Martin ‘marcan’ 16 Laphroaig Races the Runtime Relinker 16:02 Sapere aude! by Manul Laphroaig 16:03 Emulating my Chevy by Brandon L. Wilson 16:04 Wafer Thin Locks by Deviant Ollam 16:05 Uses for Useless Bugs by EA 16:06 Fragmented Chunks by Yannay Livneh 16:07 Executing Unmapped Thumb by Maribel Hearn 16:08 Naming Network Interfaces by Cornelius Diekmann 16:09 Obfuscation via Symbolic Regression by JBS 16:10 Stack Return Addresses from Canaries by Matt Davis 16:11 Rescuing Orphans in Thumb2 by T. Goodspeed 16:12 This PDF Reverse Engineers Itself by Evan Sultanik 17 It’s damned cold outside 17:02 AES-CBC Shellcode by Spruyt and Timmers 17:03 Tall Tales of Science and Fiction by PML 17:04 Sniffing BTLE with the Micro:Bit by Damien Cauquil 17:05 Bit-Banging Ethernet by Andrew Zonenberg 17:06 The DIP Flip Whixr Trick by Joe Grand 17:07 Injecting Shared Objects on FreeBSD by Shawn Webb 17:08 Murder on the USS Table by Soldier of Fortran 17:09 Infect to Protect by Leandro Pereira 18 Montessori Soldering School 18:02 An 8 Kilobyte Mode 7 Demo by Vincent Weaver 18:03 Exploits for Kids with Scratch! by Kev Sheldrake 18:04 Concealing ZIP Files in NES Cartridges by Vi Grey 18:05 House of Fun by Yannay Livneh 18:06 Read Only Relocations for Static ELF by Ryan O’Neill 18:07 Remotely Exploiting Tetrinet by Laky and Hanslovan 18:08 KLEE Internals by Julien Vanegue 18:09 Reversing DDR3 Scrambling by Nico Heijningen 18:10 SHA-1 Collisions with PDFLaTeX by Ange Albertini Useful Tables Index Colophon
£28.49
No Starch Press,US Practical Iot Hacking: The Definitive Guide to
Book SynopsisGeared towards security researchers, IT teams, and penetration testers, application testers, developers, and IT administrators, this book teaches readers how to get started with hacking Internet connected devices. Readers dig deep into technical (and related legal) issues, as they learn what kinds of devices to use as hacking tools and which make the best targets. The authors, all experts in the field, cover the kinds of vulnerabilities found in IoT devices, explain how to exploit their network protocols, and how to leverage security flaws and certain hardware interfaces found in the physical devices themselves.Trade Review“I recommend this book to anyone technical who manufactures IoT devices or anyone with IoT devices in their homes or enterprise. At a time when securing our systems and protecting our information has never been more important, this book hits the mark.”—Dave Kennedy, founder of TrustedSec, Binary Defense“This book is everything you would want to learn from the subject masters—it is an authoritative and a precious resource that both IoT security researchers and developers will want keep close by. I recommend this book for anyone interested in making IoT more secure.”—John Moor, Managing Director, IoT Security Foundation“The authors provide a simple, effective and structured approach to hacking IoT, covering the major attack surface of the ecosystem.”—Aseem Jakhar, Author of EXPLIoT Framework and Co-Founder Payatu“Practical IoT Hacking is an essential guide to get an understanding on how the world around you works. This is a must have book to add to your hardware hacking arsenal.”—Craig Smith, author of the Car Hacker's Handbook“Practical IoT Hacking gracefully takes on the herculean task of introducing an organized approach to IoT device security with an end to end, accessible and actionable set of guidance and tool recommendations. A wide range of stakeholders in IoT product development and manufacturing would benefit from applying this knowledge early and often. I would recommend this book as a required reference for anyone involved in IoT device design, or even for personal awareness of data privacy and security for technically oriented users.”—J. Metzger, Director of Cybersecurity, implanted and wireless data medical device manufacturer“What I really like about this book is that it is useful for a wide ranging audience: students interested in IT security, people who are interested in securing their home network, and professionals who want to learn how to hack and secure new IoT devices for their colleagues or customers. This book deserves a place on your (digital) bookshelf.” —Stef van Dop, KPN REDteam"I'm so thrilled to see this book available to people to take the high level 'IoT security is important' and turn it into a practical guide to hack these devices in an effort to expose the security issues we must address as a community. The authors are immediately credible on the topic, the content is superbly approachable, and it's obvious this book and its readers will have a meaningful positive impact on the topic."—Robert M. Lee, CEO and Co-Founder of Dragos, Inc. and Senior SANS Instructor“This incredible resource provides comprehensive, hands-on information on everything from security nuances in IoT devices and ecosystems, to ethical disclosure of vulnerabilities, and even the application of anti-hacking laws. We may joke about the absurdity of Internet-connected toasters and dog dishes, but lack of IoT security can mean real physical consequences. For those who would test and secure the rising tide of digitally-enabled physical objects, this is the book for you.”—Harley Geiger, Senior Director of Public Policy, Rapid 7“Practical IoT Hacking is an exciting book and a fantastic resource for anyone interested in hardware hacking—from amateur to professional. Chapter by chapter, the authors peel away layers of complexity and demonstrate the tools and techniques used to assess the security of IoT systems. Most importantly, the book introduces an IoT testing framework that walks readers through not only the technical 'how' but the context of 'what' and 'why' as well.”—T. Miklas, Head of Penetration Testing at a global bank"As attack surfaces go, IoT presents the most dynamic, rapid, and intimate expansion of the cyber domain into our daily and professional lives. This book recognizes the opportunities and risks of this expansion and delivers a comprehensive resource to address them. Practically laid out into progressive areas of exploration and focus, this book will be a learning blueprint for IoT security newcomers, a reference for those already working in it day-to-day, and a security roadmap for those working in IoT design and defense. Highly recommended!"—Casey Ellis, Founder/Chairman/CTO, BugCrowd "Wonderful depth and breadth in the book; I hope you all consider pre-ordering if you're keen on IoT security & research!"—Mark Stanislav, Information Security Architect at Cisco"Presented in a thorough and comprehensive fashion, this book is approachable by readers with a wide range of technical abilities. By shining much needed light on the wide attack surface and many technical aspects involved in hacking all connected things, the foundation of knowledge provided by this book should help in ensuring future devices are built to be secure by design. This book should be required reading for anyone interested in connected device security.”—Marc Rogers, Security Researcher“Whether you’re deploying, defending or learning to attack IoT devices, this book provides valuable insight into the tactics and techniques attackers use to compromise these devices.”—CEO, BRK Security"An excellent book to get you started on IoT hacking . . . definitely a must-read." —Electronic Cats "The best resource that is currently available to get you from zero knowledge to a competent IoT security researcher. . . . this is the most complete IoT hacking book to get someone with no knowledge of the domain or even a seasoned professional, and elevate them to level where they won’t just feel comfortable performing IoT security research, but they’d also have all the required skills to do so." —Xorl "I really recommend it, both for those who 'play' with IoT devices in their homes, and for those who must audit these devices as part of their work." —Jaime Andrés Restrepo - CEO, DragonJAR.org "It’s a comprehensive book, and it’s an important topic. . . . full of useful examples." —Robert Vamosi, The Hacker Mind"Filled with tutorials and technical knowledge, this is a must-have resource for organizations who want to [improve] their IoT security readiness."—Daniel Hein, Solutions Review“For someone who wants to take a breath of fresh air and do something interesting.”—Cristi Vlad, YouTuber"All of the authors contribute their considerable expertise in cybersecurity to this book, which helps you reconceptualize threats to the IoT."—Solutions Review"Practical IoT Hacking is full of great information. The book covers a very diverse set of technologies and crosses fluidly between the domains of hardware, software, networking, and RF."—Craig Young, Principal Security Researcher, Tripwire"Practical IoT Hacking is definitely a book I would recommend to anyone involved with IoT, especially those working in any type of cybersecurity role as well as any type of IoT developer."—Lane Thames, Principal Security Researcher, Tripwire"Practical IoT Hacking is a sharp well designed book that first takes readers by the hand through the IoT landscape. It reveals why IoT security is important and the multiple threat models and processes that can be used in a simple but effective way"—Matt Jerzewski, Security Researcher, Tripwire"Practical IoT Hacking provides quite the range of information from looking for security issues at the application layer to physical access."—Andrew Swoboda, Senior Security Researcher, Tripwire"An excellent book. It's written in an understandable way, and uses real life experiences and examples from the authors' working lives to demonstrate both the risks and how to mitigate them. If you have responsibility for IoT devices or applications that use them either in your working or personal life, it's worth reading."—Kay Ewbank, I-ProgrammerTable of ContentsPrefaceForewordPart One: The IoT Threat LandscapeChapter 1: The IoT Security WorldChapter 2: Threat ModelingChapter 3: A Security Testing MethodologyPart Two: Network HackingChapter 4: Network AssessmentsChapter 5: Analyzing Network ProtocolsChapter 6: Exploiting Zero-configuration NetworkingPart Three: Hardware HackingChapter 7: UART, JTAG, and SWD ExploitationChapter 8: Hacking SPI and I2CChapter 9: Firmware HackingPart Four: Radio HackingChapter 10: Abusing RFIDChapter 11: Exploiting Bluetooth Low EnergyChapter 12: Wi-Fi HackingChapter 13: Exploiting LPWANPart Five: Targeting the IoT EcosystemChapter 14: Attacking Mobile ApplicationsChapter 15: Hacking the “Smart” HomeAppendix A: Tools for IoT Hacking
£35.99
Penguin Random House Group Data Structures and Algorithms in JavaScript
Book Synopsis
£35.99
No Starch Press,US Black Hat Graphql: Attacking Next Generation APIs
Book SynopsisWeb applications are increasingly using the query language GraphQL to share data, but the security of these useful APIs is lagging behind. Authored by the developers of widely used GraphQL security-testing tools, Black Hat GraphQL will teach you how to find and exploit flaws in this technology. Early chapters provide in-depth knowledge of GraphQL and its query language, as well as its potential security pitfalls. Readers will then be guided through setting up a hacking lab for targeting GraphQL applications using specialized GraphQL security tools. They will learn how to conduct offensive security tests against production GraphQL systems by gleaning information from GraphQL implementations during reconnaissance and probing them for vulnerabilities, like injections, information disclosure, and Denial of Service.Trade Review"Black Hat GraphQL is the best resource for anyone looking to test GraphQL for vulnerabilities. Not only did Aleks and Farhi write the book, but they also created the vulnerable application used in the books labs and created a suite of tools specially designed for analyzing weaknesses within GraphQL APIs. This is a must-read book for those in API security." —Corey Ball, author of Hacking APIs "This book brought me from zero to ‘incredibly dangerous’ in ten chapters. The authors break down complex topics, making them easy to understand, as well as outlining pros and cons of each feature, tool, and tactic. The book also has quite a bit of foreshadowing, mentioning how certain parts of GraphQL work, and how they will be exploited later. The authors share not only several hands-on labs, but several tools they created themselves and open-sourced for all to use. If you are going to be PenTesting GraphQL systems, or are charged with protecting such a system, this book is a must-have." —Tanya Janca, founder of We Hack Purple “With the increasing number of web platforms built on top of GraphQL, this book is an essential resource for all security practitioners. By covering both the basics and advanced topics, Nick and Dolev have created the ultimate guide to hacking GraphQL.”—Luca Carettoni, Doyensec "Knowing how to secure GraphQL is often the first question most users have after they have that "ah ha!" moment about how cool it is. While Apollo and others have written a lot of great documentation on best security practices, Black Hat GraphQL is the most comprehensive look from the other side. This is not just a book for red teamers or penetration testers. Any GraphQL developer will learn a lot here." —Tad Whitaker, Apollo GraphQL "I study my way up in cybersecurity, in part, through books. While many of the books I use don't actually bring something new to the table, Black Hat GraphQL is definitely an exception. My copy, believe it or not, is oversaturated with highlights. And that probably says it all." —Cristi Vlad, @CristiVlad25, cybersecurity researcherTable of ContentsForewordAcknowledgmentsIntroductionChapter 1: A Primer on GraphQLChapter 2: Setting Up a GraphQL Security LabChapter 3: The GraphQL Attack SurfaceChapter 4: ReconnaissanceChapter 5: Denial of ServiceChapter 6: Information DisclosureChapter 7: Authentication and Authorization BypassesChapter 8: InjectionChapter 9: Request Forgery and HijackingChapter 10: Disclosed Vulnerabilities and ExploitsAppendix A: GraphQL API Testing ChecklistAppendix B: GraphQL Security ResourcesIndex
£42.74
Penguin Random House Group Kotlin from Scratch
Book Synopsis
£42.74
No Starch Press,US Introduction to System Programming in Linux
£67.49
No Starch Press,US Math for Programming
Book SynopsisThis book summarizes all the core mathematical topics a typical professional software engineer needs to know. In condensing the various concepts covered in an undergraduate computer science program into a single volume, it provides an excellent starting point for independent study, or a refresher for those who haven''t been in a classroom for years. Early chapters cover preliminary subjects like number representation systems, set theory, and Boolean algebra, followed by a dive into the field of discrete mathematics, including functions, induction proofs, number theory, combinatorics, graphs, and trees. Later sections examine essential topics in probability, statistics, linear algebra, and calculus. Rather than confine itself to abstract theory, the book focuses on practical applications and numerical methods at the level typically encountered by working software developers. In addition, hands-on code examples in Python and C make the topics concrete.
£33.74
£37.49
£49.49
Princeton University Press The Essence of Software
Book SynopsisTrade Review"Finalist for the PROSE Award in Computing and Information Sciences, Association of American Publishers""This book gives new answers to old questions, offering a fresh perspective on software design, with examples from over 100 familiar apps. It’s accessible to anyone—strategist, marketer, manager, designer, or programmer—who wants software that is more empowering, dependable, and delightful to use." * MIT News *
£18.00
Pearson Education (US) The Professional Agile Leader
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
£24.69
Pearson Education (US) Strategic Monoliths and Microservices
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
£26.99
Manning Publications Kubernetes for Developers
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
£36.09
Pearson Education We Programmers
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.
£28.79
Pearson Education (US) Scrum Field Guide The
Book SynopsisMitch Lacey, founder of Mitch Lacey & Associates, Inc., helps companies reach their maximum potential by building high-performing organizations through the adoption of agile practices, including Scrum and XP. Mitch's rich, practical experience and his pragmatic approach are trusted by many companies including Adobe Systems, Aera Energy, Bio-Rad, EchoStar, Microsoft, Oracle, Qualcomm, Salem Hospital, SAP, Sony, and more. He is a CST, a PMI Project Management Professional (PMP), and an Agile Certified Practitioner (ACP). Mitch has served on the board of directors for the Agile Alliance and the Scrum Alliance. Learn more at www.MitchLacey.com. Table of ContentsChapter 1: Scrum: Simple, Not Easy Part I: Getting Prepared Chapter 2: Getting People on Board Chapter 3: Using Team Consultants to Optimize Team Performance Chapter 4: Predicting Team Velocity Chapter 5: Implementing the Scrum Roles Chapter 6: Determining Sprint Length Chapter 7: How Do You Know You're Done? Chapter 8: The Case for a Full-Time ScrumMaster Part II: Field Basics Chapter 9: Why Engineering Practices Are Important in Scrum Chapter 10: Core Hours Chapter 11: Release Planning Chapter 12: Decomposing Stories and Tasks Chapter 13: Keeping Defects in Check Chapter 14: Sustained Engineering and Scrum Chapter 15: The Sprint Review Chapter 16: Retrospectives Part III: First Aid Chapter 17: Facilitating a Productive Daily Scrum Chapter 18: The Fourth Question in Scrum Chapter 19: Keeping People Engaged with Pair Programming Chapter 20: Adding New Team Members Chapter 21: When Cultures Collide Chapter 22: Sprint Emergency Procedures Part IV: Advanced Survival Techniques Chapter 23: Sustainable Pace Chapter 24: Delivering Working Software Chapter 25: Optimizing and Measuring Value Chapter 26: Up-Front Project Costing Chapter 27: Documentation in Scrum Projects Chapter 28: Outsourcing and Offshoring Chapter 29: Prioritizing and Estimating Large Backlogs–The Big Wall Chapter 30: Writing Contracts Part V: Wilderness Essentials Chapter 31: Driving to Done through Collaboration Chapter 32: How Story Points Relate to Hours Chapter 33: Immersive Interviewing and Hiring Chapter 34: Aligning Incentives with Outcomes Chapter 35: Risk Management in Scrum Appendix: Scrum Framework Index
£33.72
Oxford University Press Web Browser Engineering
Book Synopsis
£38.00
The Pragmatic Programmers A Scrum Book
Book SynopsisBuilding a successful product usually involves teams of people, and many choose the Scrum approach to aid in creating products that deliver the highest possible value. Implementing Scrum gives teams a collection of powerful ideas they can assemble to fit their needs and meet their goals. The ninety-four patterns contained within are elaborated nuggets of insight into Scruma (TM)s building blocks, how they work, and how to use them. They offer novices a roadmap for starting from scratch, yet they help intermediate practitioners fine-tune or fortify their Scrum implementations. Experienced practitioners can use the patterns and supporting explanations to get a better understanding of how the parts of Scrum complement each other to solve common problems in product development. The patterns are written in the well-known Alexandrian form, whose roots in architecture and design have enjoyed broad application in the software world. The form organizes each pattern so you can navigate directly to organizational design tradeoffs or jump to the solution or rationale that makes the solution work. The patterns flow together naturally through the context sections at their beginning and end. Learn everything you need to know to master and implement Scrum one step at a time'the agile way.
£49.39
MIT Press Algorithms for Decision Making
Book Synopsis
£81.00
O'Reilly Media Python in a Nutshell
Book SynopsisCarefully curated by recognized experts in Python, this updated fourth edition focuses on version 3.10, bringing this seminal work on the Python language fully up to date on five releases, including preview coverage of upcoming 3.11 features.
£53.99
CRC Press Architectural Approach to Level Design
Book SynopsisWritten by a game developer and professor trained in architecture, An Architectural Approach to Level Design is one of the first books to integrate architectural and spatial design theory with the field of level design. It explores the principles of level design through the context and history of architecture. Now in its second edition, An Architectural Approach to Level Design presents architectural techniques and theories for you to use in your own work. The author connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with that space. It also addresses industry issues like how to build interesting tutorial levels and how to use computer-generated level design systems without losing the player-focused design of handmade levels. Throughout the text, you will learn skills for spatial layout, evoking emotion through gamespaces, and cTable of ContentsChapter 1 A Brief History of Architecture and Level Design. Chapter 2 Drawing for Level Designers. Chapter 3 Level Design Workflows. Chapter 4 Basic Gamespaces. Chapter 5 Communicating through Environment Art. Chapter 6 Building exciting levels with dangerous architecture. Chapter 7 Rewards in Gamespaces. Chapter 8 Level 1-1: The Tutorial Level . Chapter 9 Storytelling in Gamespaces. Chapter 10 Possibility Spaces and Worldbuilding. Chapter 11 Working with Procedurally Generated Levels. Chapter 12 Influencing Social Interaction with Level Design. Chapter 13 Sound and Music in Level Design .
£123.50
Pearson Education Mastering the Requirements Process
Book SynopsisJames Robertson and Suzanne Robertson are two of the most respected names in business analysis and requirements discovery. During the Robertsons' careers, their books, templates, training, and consulting have helped hundreds of companies to upgrade their requirements discovery process. The Robertsons have written numerous books, among others the three previous editions of this book, Business Analysis Agility, and with their co-authors at the Atlantic Systems Guild, the acclaimed Adrenaline Junkies and Template Zombies. James and Suzanne live in London and France.
£39.59
Elsevier Science API Design for C
Book SynopsisThe design of application programming interfaces can affect the behavior, capabilities, stability, and ease of use of end-user applications. This book helps you learn how to design a good API for large-scale long-term projects. With C++ code to illustrate each concept, it covers the various strategies of API development.Trade Review"Martin Reddy draws from his experience on large scale, collaborative software projects to present patterns and practices that provide real value to individual developers as well as organizations. API Design for C++ explores often overlooked issues, both technical and non- technical, contributing to successful design decisions that produce high quality, robust, and long-lived APIs." --Eric Gregory, Software Architect, Pixar Animation Studios"Intended for programmers with intermediate to advanced skills in the C++ programming language, this guide to the building of useful and robust application programming interfaces (APIs) provides practical instruction for software engineers developing systems on which downstream software engineers depend. The work provides a methodical approach to API design covering solution based API design, performance, versioning, documentation, testing, scripting, extensibility and libraries. The work includes numerous illustrations and code examples and access to additional online resources is provided. Reddy is a software development consultant." --Book News, Reference & ResearchTable of ContentsIntroduction 1. Qualities 2. Patterns 3. Design 4. Styles 5. C++ Usage 6. Performance 7. Versioning 8. Documentation 9. Testing 10. Scripting 11. Extensibility Appendix A: Libraries Bibliography Index
£47.49
Elsevier Science & Technology Computer Organization and Design ARM Edition
Book SynopsisTable of Contents1 Computer Abstractions and Technology 2 Instructions: Language of the Computer 3 Arithmetic for Computers 4 The Processor 5 Large and Fast: Exploiting Memory Hierarchy 6 Parallel Processors from Client to Cloud A The Basics of Logic Design B Graphics and Computing GPUs C Mapping Control to Hardware D A Survey of RISC Architectures
£67.49
Oxford University Press Parallel Scientific Computation 2e A Structured
Book SynopsisParallel Scientific Computation presents a methodology for designing parallel algorithms and writing parallel computer programs for modern computer architectures with multiple processors.Trade ReviewThe author presents a detailed study describing how parallel computation can be applied to a collection of numerical problems. He considers LU decomposition of dense matrices, the fast Fourier transform (FFT), multiplication of a sparse matrix by a dense vector, as well as matching vertices in a sparse graph and sorting. He uses these to teach design and implementation of well-structured efficient parallel algorithms...The book is best suited for a graduate course in parallel scientific processing for mathematics or computer science students. * Bill Satzer, MAA Reviews *
£43.69
Oxford University Press Web Browser Engineering
Book SynopsisA working or budding software engineer always benefits from deeply understanding the platform their code runs on, and web browsers are the most common and widely-used platform there is. This book is the essential description of how they work and how that impacts web developers and other software engineers whose work touches the web.Readers of Web Browser Engineering will join the authors in building their own web browser, including rich visual effects, multithreaded architecture, JavaScript APIs, and comprehensive security policies. Web browser engines are filled with unique challenges, interesting algorithms, and clever optimizations. Building a browser is both easy and incredibly hard, both intentional and accidental, and everywhere you look, you see the evolution and history of the web wrapped up in one codebase. It''s both fun, and endlessly interesting.This interactive and engaging book will be a unique source for any software engineer, computer scientist, web developer, or simply anyone with an interest in web browsers and how they work.This is an open access title available under the terms of a CC BY-NC-ND 4.0 International licence. It is free to read on the Oxford Academic platform and offered as a free PDF download from OUP and selected open access locations.
£114.00
MIT Press Ltd The Games Design Reader A Rules of Play
Book SynopsisClassic and cutting-edge writings on games, spanning nearly 50 years of game analysis and criticism, by game designers, game journalists, game fans, folklorists, sociologists, and media theorists.The Game Design Reader is a one-of-a-kind collection on game design and criticism, from classic scholarly essays to cutting-edge case studies. A companion work to Katie Salen and Eric Zimmerman's textbook Rules of Play: Game Design Fundamentals, The Game Design Reader is a classroom sourcebook, a reference for working game developers, and a great read for game fans and players.Thirty-two essays by game designers, game critics, game fans, philosophers, anthropologists, media theorists, and others consider fundamental questions: What are games and how are they designed? How do games interact with culture at large? What critical approaches can game designers take to create game stories, game spaces, game communities, and new forms of play?Salen and Zim
£999.99
Pearson Education Requirements Analysis and Systems Design
a huge range and FREE tracked UK delivery on ALL orders.
£78.99
Wiley Software Design for Six Sigma
a huge range and FREE tracked UK delivery on ALL orders.
£115.16
Penguin Putnam Inc The Ascent of Information
Book Synopsis
£999.99
CRC Press Conquering JavaScript
Book SynopsisHave you ever considered how these visuals and games are shown in a web browser? What technology is at the heart of it? Of course, employing HTML and CSS alone will not be sufficient. Three.js is a free JavaScript toolkit for displaying images, 3D, and 2D objects in web browsers that enables you to render graphics and 3D objects on a canvas in the web browser using your GPU (Graphics Processing Unit).Conquering JavaScript: Three.js helps the reader master the Three.js framework for faster and robust development. The book is a detailed guide that will help developers and coders do more with Three.js. It covers the basics in brief, and then moves on to more advanced and detailed exercises to help readers quickly gain the required knowledge.
£37.99
Taylor & Francis Ltd Data Science
Book SynopsisData Science: A First Introduction with Python focuses on using the Python programming language in Jupyter notebooks to perform data manipulation and cleaning, create effective visualizations, and extract insights from data using classification, regression, clustering, and inference. It emphasizes workflows that are clear, reproducible, and shareable, and includes coverage of the basics of version control. Based on educational research and active learning principles, the book uses a modern approach to Python and includes accompanying autograded Jupyter worksheets for interactive, self-directed learning. The text will leave readers well-prepared for data science projects. It is designed for learners from all disciplines with minimal prior knowledge of mathematics and programming. The authors have honed the material through years of experience teaching thousands of undergraduates at the University of British Columbia.Key Features:Includes autograded worksheet
£54.99
O'Reilly Media Modern Mainframe Development
Book Synopsis
£47.99
O'Reilly Media A Functional Approach to Java
Book SynopsisIf you're interested in applying FP concepts to your Java code, this book is for you. You'll learn how, when, and why to use FP concepts such as immutability and pure functions to write more concise, reasonable, and future-proof code.
£44.99
O'Reilly Learning DevSecOps
Book Synopsis
£35.99
O'Reilly Media AINative Software Delivery
Book Synopsis
£41.99
Cambridge University Press Learning Scientific Programming with Python
Book SynopsisLearn to master basic programming tasks from scratch with real-life, scientifically relevant examples and solutions drawn from both science and engineering. Students and researchers at all levels are increasingly turning to the powerful Python programming language as an alternative to commercial packages and this fast-paced introduction moves from the basics to advanced concepts in one complete volume, enabling readers to gain proficiency quickly. Beginning with general programming concepts such as loops and functions within the core Python 3 language, and moving on to the NumPy, SciPy and Matplotlib libraries for numerical programming and data visualization, this textbook also discusses the use of Jupyter Notebooks to build rich-media, shareable documents for scientific analysis. The second edition features a new chapter on data analysis with the pandas library and comprehensive updates, and new exercises and examples. A final chapter introduces more advanced topics such as floating-pTable of ContentsAcknowledgments; 1. Introduction; 2. The core Python language I; 3. Interlude: simple plots and charts; 4. The core Python language II; 5. IPython and Jupyter Notebook; 6. NumPy; 7. Matplotlib; 8. SciPy; 9. Data analysis with pandas; 10. General scientific programming; Appendix A. Solutions; Appendix B. Differences between Python versions 2 and 3; Appendix C. SciPy's odeint ordinary differential equation solver; Glossary; Index.
£36.09
John Wiley & Sons Inc Professional Clojure
Book SynopsisClear, practical Clojure for the professional programmer Professional Clojure is the experienced developer's guide to functional programming using the Clojure language.Trade Review"A book that makes you think, from the first chapter's dive into thoughtful code-led examples, and covers web services, testing and performance. Brings you closer to functional thinking." (MagPi, October 2016)Table of ContentsINTRODUCTION xv CHAPTER 1: HAVE A BEGINNER’S MIND 1 Functional Thinking 2 Value Oriented 2 Thinking Recursively 5 Higher Order Functions 8 Embracing Laziness 11 When You Really Do Need to Mutate 12 Nil Punning 15 The Functional Web 16 Doing Object-Oriented Better 16 Polymorphic Dispatch with defmulti 18 Defining Types with deftype and defrecord 20 Protocols 21 Reify 22 Persistent Data Structures 23 Shaping the Language 27 Summary 29 CHAPTER 2: RAPID FEEDBACK CYCLES WITH CLOJURE 31 REPL-Driven Development 32 Basic REPL Usage with Leiningen 32 Remote REPLs with nREPL 34 REPL Usage with a Real Application 35 Connecting Your Editor to a REPL 39 Reloading Code 40 Reloading Code from the REPL 40 Automatically Reloading Code 43 Writing Reloadable Code 49 Summary 51 CHAPTER 3: WEB SERVICES 53 Project Overview 53 Namespace Layout 54 Elements of a Web Service 55 Libraries, Not Frameworks 55 HTTP 55 Routing 64 JSON Endpoints 70 Example Service 74 Create the Project 75 Additional Namespaces 75 Default Middleware 77 The Storage Protocol 78 Handlers 83 Middleware 88 Routes 89 Deployment 94 Using Leiningen 94 Compiling an Uberjar or Uberwar 95 Hosting 96 Summary 97 CHAPTER 4: TESTING 99 Testing Basics with clojure.test 100 with-test 101 deftest 101 are 102 Using Fixtures 103 Testing Strategies 104 Tests Against DB 104 Testing Ring Handlers 106 Mocking/Stubbing Using with-redefs 108 Redefining Dynamic Vars 110 Record/Replay with VCR 111 Measuring Code Quality 112 Code Coverage with Cloverage 112 Static Analysis with kibit and bikeshed 114 Keeping Dependencies Under Control 116 Testing Framework Alternatives 119 Expectations 119 Speclj 119 Cucumber 120 Kerodon 126 Summary 127 CHAPTER 5: REACTIVE WEB PAGES IN CLOJURESCRIPT 129 ClojureScript Is a Big Deal 129 A First Brush with ClojureScript 131 Starting a New ClojureScript Project 132 Getting Fast Feedback with Figwheel 132 Creating Components 134 Modeling the Data 135 Responding to Events and Handling State Change 136 Understanding Errors and Warnings 137 Namespace Layout 141 Styling 141 Form Inputs and Form Handling 142 Navigation and Routes 145 HTTP Calls: Talking to a Server 147 Drag and Drop 149 Publishing 150 Reagent in Depth 151 Form 1: A Function That Returns a Vector 151 Form 2: A Function That Returns a Component 152 Form 3: A Function That Returns a Class 153 Sequences and Keys 154 Custom Markup 155 Reactions 156 A Note on Style 158 Testing Components with Devcards 159 Interop with JavaScript 162 One Language, One Idiom, Many Platforms 164 Things to Know About the Closure Compiler and Library 164 Modeling State with DataScript 165 Go Routines in Your Browser with core.async 166 Summary 167 CHAPTER 6: THE DATOMIC DATABASE 169 Datomic Basics 170 Why Datomic? 170 The Datomic Data Model 172 Querying 175 Transactions 181 Indexes Really Tie Your Data Together 183 Datomic’s Unique Architecture 187 Modeling Application Data 188 Example Schema for Task Tracker App 188 Entity ids and Partitions 196 Datomic’s Clojure API 197 Basic Setup 197 Experimenting in the REPL 200 Building Applications with Datomic 206 User Functions 206 Account Functions 209 Task Functions 210 Deployment 213 The Limitations 214 Summary 215 CHAPTER 7: PERFORMANCE 217 What Is Performance? 219 Choosing the Right Data Structure Is a Prerequisite for Performance 219 Benchmarking 221 Timing Slow Things 221 Use Criterium for Timing Fast Things 223 Use Test Selectors for Performance Tests 225 Parallelism 225 Memoization 226 Inlining 227 Persistent Data Structures 228 Safe Mutation with Transients 228 Profi ling 229 Avoiding Reflection with Type Hinting 230 Java Flags 232 Math 232 Summary 232 INDEX 235
£36.09
John Wiley & Sons Inc BiteSize Python
Book SynopsisIntroduce children to the popular Python programming language through relatable examples and fun projects! Python has now surpassed Java as the most commonly used programming language. As the language rises in popularity, this complete guide can teach basic Python concepts to kids with its simple, friendly format. Bite-Size Python: An Introduction to Python Programming provides children with a foundation in the Python language. This unique book shares knowledge through easy-to-understand examples, fast exercises, and fun projects! As children learn, their parents, caregivers, and instructors can also join in their discoveries. Bite-Size Python is ideal for those who are new to programming, giving kids ages 9 and up a beginners' approach to learning one of the most important programming languages. Gives an overview of Python Provides exciting programming projects Offers instruction on how to download and install PythonTable of Contents1 What is Python? 3 2 Install Python 9 3 IDLE 15 4 Variables 23 5 Numbers 39 6 Strings 51 7 Conditionals and Control Flow 69 8 Lists 83 9 for Loops 97 10 while Loops 117 11 Functions 133 12 Dictionaries 161 13 Modules 187 14 Next Steps 205 Appendix 213 Index 219
£18.69
John Wiley & Sons Inc Practical Go
Book SynopsisYOUR PRACTICAL, HANDS-ON GUIDE TO WRITING APPLICATIONS USING GO Google announced the Go programming language to the public in 2009, with the version 1.0 release announced in 2012. Since its announcement to the community, and the compatibility promise of the 1.0 release, the Go language has been used to write scalable and high-impact software programs ranging from command-line applications and critical infrastructure tools to large-scale distributed systems. It's speed, simplicity, and reliability make it a perfect choice for developers working in various domains. In Practical Go - Building Scalable Network + Non-Network Applications, you will learn to use the Go programming language to build robust, production-ready software applications. You will learn just enough to building command line tools and applications communicating over HTTP and gRPC. This practical guide will cover: Writing command line applications Writing a HTTP Table of ContentsIntroduction xvii Getting Started xxi Chapter 1 Writing Command-Line Applications 1 Your First Application 1 Writing Unit Tests 8 Using the Flag Package 14 Testing the Parsing Logic 20 Improving the User Interface 22 Removing Duplicate Error Messages 23 Customizing Usage Message 24 Accept Name via a Positional Argument 25 Updating the Unit Tests 28 Summary 32 Chapter 2 Advanced Command-Line Applications 33 Implementing Sub-commands 33 An Architecture for Sub-command-Driven Applications 37 Testing the Main Package 43 Testing the Cmd Package 45 Making Your Applications Robust 47 User Input with Deadlines 48 Handling User Signals 52 Summary 56 Chapter 3 Writing HTTP Clients 57 Downloading Data 57 Testing the Data Downloader 59 Deserializing Received Data 61 Sending Data 66 Working with Binary Data 72 Summary 80 Chapter 4 Advanced HTTP Clients 81 Using a Custom HTTP Client 81 Downloading from an Overloaded Server 81 Testing the Time-Out Behavior 85 Configuring the Redirect Behavior 88 Customizing Your Requests 91 Implementing Client Middleware 92 Understanding the RoundTripper Interface 93 A Logging Middleware 94 Add a Header to All Requests 96 Connection Pooling 99 Configuring the Connection Pool 103 Summary 104 Chapter 5 Building HTTP Servers 105 Your First HTTP Server 105 Setting Up Request Handlers 108 Handler Functions 109 Testing Your Server 112 The Request Struct 114 Method 115 Url 115 Proto, ProtoMajor, and ProtoMinor 116 Header 116 Host 116 Body 116 Form, PostForm 116 MultipartForm 117 Attaching Metadata to a Request 118 Processing Streaming Requests 121 Streaming Data as Responses 126 Summary 132 Chapter 6 Advanced HTTP Server Applications 133 The Handler Type 133 Sharing Data across Handler Functions 134 Writing Server Middleware 139 Custom HTTP Handler Technique 139 The HandlerFunc Technique 140 Chaining Middleware 142 Writing Tests for Complex Server Applications 147 Code Organization 147 Testing the Handler Functions 153 Testing the Middleware 155 Testing the Server Startup 157 Summary 159 Chapter 7 Production- Ready HTTP Servers 161 Aborting Request Handling 161 Strategies to Abort Request Processing 165 Handling Client Disconnects 169 Server-Wide Time- Outs 173 Implement a Time- Out for All Handler Functions 173 Implementing Server Time- Out 174 Implementing Graceful Shutdown 179 Securing Communication with TLS 184 Configuring TLS and HTTP/2 184 Testing TLS Servers 188 Summary 192 Chapter 8 Building RPC Applications with gRPC 193 gRPC and Protocol Buffers 193 Writing Your First Service 197 Writing the Server 198 Writing a Client 203 Testing the Server 207 Testing the Client 211 A Detour into Protobuf Messages 214 Marshalling and Unmarshalling 214 Forward and Backward Compatibility 219 Multiple Services 220 Error Handling 226 Summary 228 Chapter 9 Advanced gRPC Applications 229 Streaming Communication 229 Server- Side Streaming 230 Client- Side Streaming 237 Bidirectional Streaming 239 Receiving and Sending Arbitrary Bytes 247 Implementing Middleware Using Interceptors 256 Client- Side Interceptors 257 Server- Side Interceptors 263 Wrapping Streams 269 Chaining Interceptors 271 Summary 272 Chapter 10 Production- Ready gRPC Applications 275 Securing Communication with TLS 275 Robustness in Servers 278 Implementing Health Checks 278 Handling Runtime Errors 286 Aborting Request Processing 289 Robustness in Clients 297 Improving Connection Setup 298 Handling Transient Failures 300 Setting Time- Outs for Method Calls 305 Connection Management 306 Summary 309 Chapter 11 Working with Data Stores 311 Working with Object Stores 312 Integration with Package Server 313 Testing Package Uploads 323 Accessing Underlying Driver Types 325 Working with Relational Databases 327 Integration with Package Server 328 Testing Data Storage 339 Data Type Conversions 343 Using Database Transactions 346 Summary 348 Appendix A Making Your Applications Observable 349 Logs, Metrics, and Traces 349 Emitting Telemetry Data 352 Command- Line Applications 352 HTTP Applications 360 gRPC Applications 364 Summary 366 Appendix B Deploying Applications 367 Managing Configuration 367 Distributing Your Application 370 Deploying Server Applications 372 Summary 373 Index 375
£24.79
O'Reilly Media Learning Agile
Book SynopsisAgile revolutionized the way people think about developing software, but there are literally dozens of ways that you can go agile. This book demystifies agile methodologies: why they're designed the way they are, what problems they address, and the values, principles, and ideas they embody
£29.99